getUser(); return new DataResponse([ 'username' => $user->getUsername(), 'roles' => $user->getRoles(), 'projects' => $user->getProjects()->map(function($project) { return [ 'id' => $project->getId(), 'name' => $project->getName(), ]; })->toArray(), 'requests' => $user->getRequests()->map(function($request) { return [ 'id' => $request->getId(), 'title' => $request->getTitle(), ]; })->toArray(), ]); } /** * @Route("/api/v1/users", name="api_v1_list_users", methods={"GET"}) * @IsGranted("ROLE_DEVELOPER") */ public function listUsers() { /** @var array */ $users = $this->getDoctrine() ->getRepository(User::class) ->findAll() ; $results = []; foreach($users as $u) { $results[] = [ 'id' => $u->getId(), 'username' => $u->getUsername(), ]; } return new DataResponse([ 'users' => $results, ]); } /** * @Route("/api/v1/users/{userId}", name="api_v1_get_user", methods={"GET"}, requirements={"userId"="\d+"}) * @IsGranted("ROLE_DEVELOPER") */ public function showUser($userId) { /** @var User */ $user = $this->getDoctrine() ->getRepository(User::class) ->find($userId) ; return new DataResponse([ 'user' => [ 'id' => $user->getId(), 'username' => $user->getUsername(), ] ]); } }