/** * @param User $user * @return JsonResponse * * @Route("/secured/users/{slug}/projects.json", name="user_projects") * @Route("/users/{slug}/projects.json", name="public_user_projects") * @Method({"GET"}) */ public function getProjectsAction(User $user) { $visibilityPolicy = [2]; if ($this->getUser() instanceof User) { $visibilityPolicy[] = 1; if ($this->getUser() === $user) { $visibilityPolicy[] = 0; } } $projects = $this->getDoctrine()->getRepository('Project:Project')->findBy(['user' => $user->getId(), 'visibility' => $visibilityPolicy]); if (empty($projects)) { return $this->errorResponse('No project found', 404); } return $projects; }