Edit File: LikeService.php
<?php namespace App\Services\User; use App\Models\{User , Like}; class LikeService { public function index($pagination) { return auth()->user()->likedUsers() ->selectRaw('liked_user_id as id, first_name, last_name, image, bio') ->paginate($pagination); } //------------------------------------------------------------------------------------------------------------------------- public function switchLike($liked_user_id) { $user = auth()->user(); $likedUser = User::find($liked_user_id); // Check if the user has liked the likedUser before $liked = $user->isLikedBefore($liked_user_id); // Toggle like status if ($liked) { $this->removeLike($user, $likedUser); $msg = __('apis.user_unliked'); } else { $this->addLike($user, $likedUser); $msg = __('apis.user_liked'); } return [ 'key' => 'success', 'msg' => $msg, 'data' => !$liked, // return opposite ]; } //------------------------------------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------------------------------- //helpers //------------------------------------------------------------------------------------------------------------------------- // Helper method to add a like protected function addLike($user, $likedUser) { // use the model to create the like and obserrver works Like::create(['user_id' => $user->id, 'liked_user_id' => $likedUser->id]); } // Helper method to remove a like protected function removeLike($user, $likedUser) { $user->likedUsers()->detach($likedUser->id); } }
Back to File Manager