private function addLikes($mediaItem) { $noUsers = SiteUser::count(); if ($noUsers <= 0) { $this->command->info("Can't add likes. No users!"); return; } $noToCreate = rand(0, 10); if ($noToCreate > 0) { $users = SiteUser::take($noToCreate)->get(); for ($i = 0; $i < $noToCreate; $i++) { $like = new MediaItemLike(array("is_like" => rand(0, 1))); $user = $users[rand(0, count($users) - 1)]; $like->siteUser()->associate($user); $like->mediaItem()->associate($mediaItem); $like->save(); } } }
private function registerLikeDislike($siteUser, $isLike) { return DB::transaction(function () use(&$isLike, &$siteUser) { $like = $this->likes()->where("site_user_id", $siteUser->id)->first(); if (is_null($like)) { $like = new MediaItemLike(array("is_like" => $isLike)); $like->siteUser()->associate($siteUser); $this->likes()->save($like); return true; } else { if ((bool) $like->is_like !== $isLike) { $like->is_like = $isLike; $like->save(); return true; } } return false; }); }