/**
  * @EXT\Route(
  *     "user/{user}/infos/request",
  *     name="claro_user_infos_request",
  *     options = {"expose"=true}
  * )
  */
 public function userInfosRequestAction(User $user)
 {
     $datas = array('id' => $user->getId(), 'firstName' => $user->getFirstName(), 'lastName' => $user->getLastName(), 'username' => $user->getUsername(), 'mail' => $user->getMail(), 'phone' => $user->getPhone(), 'picture' => $user->getPicture());
     return new JsonResponse($datas, 200);
 }
 /**
  * @ApiDoc(
  *     description="Returns a user",
  *     views = {"user"}
  * )
  * @Get("/user/{user}/public", name="get_public_user", options={ "method_prefix" = false })
  */
 public function getPublicUserAction(User $user)
 {
     $settingsProfile = $this->facetManager->getVisiblePublicPreference();
     $publicUser = [];
     foreach ($settingsProfile as $property => $isViewable) {
         if ($isViewable || $user === $this->container->get('security.token_storage')->getToken()->getUser()) {
             switch ($property) {
                 case 'baseData':
                     $publicUser['lastName'] = $user->getLastName();
                     $publicUser['firstName'] = $user->getFirstName();
                     $publicUser['username'] = $user->getUsername();
                     $publicUser['picture'] = $user->getPicture();
                     $publicUser['description'] = $user->getAdministrativeCode();
                     break;
                 case 'email':
                     $publicUser['mail'] = $user->getMail();
                     break;
                 case 'phone':
                     $publicUser['phone'] = $user->getPhone();
                     break;
                 case 'sendMail':
                     $publicUser['mail'] = $user->getMail();
                     $publicUser['allowSendMail'] = true;
                     break;
                 case 'sendMessage':
                     $publicUser['allowSendMessage'] = true;
                     $publicUser['id'] = $user->getId();
                     break;
             }
         }
     }
     return $publicUser;
 }