/** * Ajoute un nouveau commentaire pour une activité * * @param Requests\PostActivityRequest $request * @return JsonResponse */ public function store(Requests\PostActivityRequest $request) { $activity = Activity::findOrFail($request->input('activity_id')); $this->authorize('comment', $activity); $comment = $activity->comments()->create(['user_id' => $request->user()->id, 'content' => $request->input('content')]); return view('activities.comment', compact('comment')); }
/** * Met à jour une activité * * @param Requests\postActivityRequest $request * @param $activity * @return JsonResponse */ public function update(Requests\PostActivityRequest $request, $activity) { $activity = Activity::findOrFail($activity); $this->authorize('update', $activity); $activity->update(['content' => $request->input('content')]); return new JsonResponse(['status' => 'success', 'id' => $activity->id, 'content' => $activity->content]); }
/** * Permet d'aimer une publication * * @param $id * @return JsonResponse */ public function likeActivity($id) { $activity = Activity::findOrFail($id); if (Auth::user()->id != $activity->user->id && !Auth::user()->isFriendWith($activity->user)) { return new UnauthorizedException(); } // On check que l'utilisateur n'a pas liké la publication if (Auth::user()->hasLikedActivity($activity)) { $likeToRemove = $this->repository->getLikeByActivityId(Auth::user(), $activity); $removeLike = Like::findOrFail($likeToRemove->id); $removeLike->delete(); $type = 'remove'; } else { /* $like = $activity->likes()->create([]); Auth::user()->likes()->save($like); */ $activity->likes()->create(['user_id' => Auth::user()->id]); $type = 'add'; } return new JsonResponse(['status' => 'success', 'type' => $type]); }