/**
  * Handle the event.
  *
  * @param  PostWasUnvoted  $event
  * @return void
  */
 public function handle(PostWasUnvoted $event)
 {
     $eventName = $event->value == 1 ? 'post.vote.like' : 'post.vote.dislike';
     $this->activity->deleteByComposite($event->user, $event->post, $eventName);
     $likes = $this->activity->countActivities($event->user, 'post.vote.like');
     $dislikes = $this->activity->countActivities($event->user, 'post.vote.dislike');
     $this->user->update($event->user, ['likes' => $likes, 'dislikes' => $dislikes]);
 }
 /**
  * Handle the event.
  *
  * @param  CommentWasCreated  $event
  * @return void
  */
 public function handle(CommentWasCreated $event)
 {
     $this->activity->create($event->user, $event->post, 'post.comment');
     $comments = $this->activity->countActivities($event->user, 'post.comment');
     $this->user->update($event->user, ['comments' => $comments]);
 }
 /**
  * Find activities for user
  *
  * @param User $user
  * @param null $eventName
  * @param int $perPage
  * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
  */
 public function findActivities(User $user, $eventName = null, $perPage = 10)
 {
     return $this->activityRepo->findByUser($user, $eventName, $perPage);
 }
 /**
  * Handle the event.
  *
  * @param  PostWasCreated  $event
  * @return void
  */
 public function handle(PostWasCreated $event)
 {
     $this->activity->create($event->user, $event->post, 'post.create');
     $this->user->update($event->user, ['posts' => $this->activity->countActivities($event->user, 'post.create')]);
 }