From 1812fa885156717a2dc649b423c875112a570dd0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 12 Jul 2018 10:41:14 -0600 Subject: [PATCH] Update Status model --- app/Status.php | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/app/Status.php b/app/Status.php index fe3fc26d2..50487e465 100644 --- a/app/Status.php +++ b/app/Status.php @@ -2,7 +2,7 @@ namespace App; -use Storage; +use Auth, Storage; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; @@ -71,15 +71,39 @@ class Status extends Model return $this->hasMany(Like::class); } + public function liked() : bool + { + $profile = Auth::user()->profile; + return Like::whereProfileId($profile->id)->whereStatusId($this->id)->count(); + } + public function comments() { return $this->hasMany(Status::class, 'in_reply_to_id'); } + public function bookmarked() + { + $profile = Auth::user()->profile; + return Bookmark::whereProfileId($profile->id)->whereStatusId($this->id)->count(); + } + + public function shares() + { + return $this->hasMany(Status::class, 'reblog_of_id'); + } + + public function shared() : bool + { + $profile = Auth::user()->profile; + return Status::whereProfileId($profile->id)->whereReblogOfId($this->id)->count(); + } + public function parent() { - if(!empty($this->in_reply_to_id)) { - return Status::findOrFail($this->in_reply_to_id); + $parent = $this->in_reply_to_id ?? $this->reblog_of_id; + if(!empty($parent)) { + return Status::findOrFail($parent); } } @@ -100,6 +124,23 @@ class Status extends Model ); } + public function mentions() + { + return $this->hasManyThrough( + Profile::class, + Mention::class, + 'status_id', + 'id', + 'id', + 'profile_id' + ); + } + + public function reportUrl() + { + return route('report.form') . "?type=post&id={$this->id}"; + } + public function toActivityStream() { $media = $this->media;