Update Status model, refactor liked and shared methods to fix cache invalidation bug

This commit is contained in:
Daniel Supernault 2021-02-14 22:35:31 -07:00
parent 2598520bbe
commit f05c3b66fc
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -144,15 +144,16 @@ class Status extends Model
public function liked() : bool public function liked() : bool
{ {
if(Auth::check() == false) { if(!Auth::check()) {
return false; return false;
} }
$user = Auth::user();
$id = $this->id; $pid = Auth::user()->profile_id;
return Cache::remember('status:'.$this->id.':likedby:userid:'.$user->id, now()->addHours(30), function() use($user, $id) {
$profile = $user->profile; return Like::select('status_id', 'profile_id')
return Like::whereProfileId($profile->id)->whereStatusId($id)->count(); ->whereStatusId($this->id)
}); ->whereProfileId($pid)
->exists();
} }
public function likedBy() public function likedBy()
@ -189,15 +190,15 @@ class Status extends Model
public function shared() : bool public function shared() : bool
{ {
if(Auth::check() == false) { if(!Auth::check()) {
return false; return false;
} }
$user = Auth::user(); $pid = Auth::user()->profile_id;
$id = $this->id;
return Cache::remember('status:'.$this->id.':sharedby:userid:'.$user->id, now()->addHours(30), function() use($user, $id) { return $this->select('profile_id', 'reblog_of_id')
$profile = $user->profile; ->whereProfileId($pid)
return self::whereProfileId($profile->id)->whereReblogOfId($id)->count(); ->whereReblogOfId($this->id)
}); ->exists();
} }
public function sharedBy() public function sharedBy()