/**
  * Return if the post is liked by the input user
  *
  * @return bool
  */
 public function isLiked()
 {
     if (!is_null($this->isLiked)) {
         return $this->isLiked;
     }
     if (!$this->object->likes->isEmpty()) {
         $this->object->likes->each(function ($like) {
             if ($like->user_id == $this->user->getPrimaryId()) {
                 return $this->isLiked = true;
             }
         });
     }
     if ($this->isLiked) {
         return true;
     }
     return $this->isLiked = false;
 }
 /**
  * Check if the post is new to input user
  *
  * @return bool
  */
 public function isNew()
 {
     // Check if the user is seeing a post of another mb
     if ($this->object->user_id != $this->user->getPrimaryId()) {
         return false;
     }
     // Check if a isNew value is already stored
     if (!is_null($this->isNew)) {
         return $this->isNew;
     }
     // Confront the user lastView with the post child_datetime
     if (is_null($this->lastView)) {
         return $this->isNew = true;
     } elseif ($this->object->child_datetime > $this->user->mbLastView->datetime) {
         return $this->isNew = true;
     } else {
         return $this->isNew = false;
     }
 }
 /**
  * Return input user page link for the view.
  *
  * @param  MbUserInterface  $user
  * @return string
  */
 protected function getUserLink(MbUserInterface $user)
 {
     return link_to_route($this->app['config']->get('ma_messageboard.user_named_route'), e($user->getUsername()), [$user->getPrimaryId()], []);
 }