/** * Handle the view trick event. * * @param \Tricks\Trick $trick * * @return void */ public function handle($trick) { if (!$this->hasViewedTrick($trick)) { $trick = $this->tricks->incrementViews($trick); $this->storeViewedTrick($trick); } }
/** * Increment the view count on the given trick. * * @param \Trick $trick * @return \Trick */ private function incrementViews($trick) { $viewed = Session::get('viewed_tricks', []); if (!array_key_exists($trick->id, $viewed)) { $trick = $this->tricks->incrementViews($trick); } $viewed[$trick->id] = time(); Session::put('viewed_tricks', $viewed); return $trick; }