/**
  * edit un  user
  *
  * @ApiDoc(
  *   resource = true,
  *   description = "modifie un  user",
  *   statusCodes = {
  *     200 = "Returned when successful",
  *     404 = "Returned when the user is not found"
  *   }
  * )
  * @RequestParam(name="id", nullable=false, strict=true, description="Identifiant user")
  * @RequestParam(name="email", nullable=false, strict=true, description="Email.")
  * @RequestParam(name="nomUser", nullable=false, strict=true, description="nom.")
  * @RequestParam(name="prenomUser", nullable=true, strict=true, description="prenom.")
  * @RequestParam(name="quartier", nullable=true, strict=true, description="le quartier")
  * @RequestParam(name="telephone", nullable=true, strict=true, description="le numero de telephone.")
  * @RequestParam(name="siteWeb", nullable=true, strict=true, description="Le site web.")
  * @Route("/api/users/{id}", name="nicetruc_edit_user")
  * @Method({"PUT"})
  * @return View
  */
 public function putUserAction($id, ParamFetcher $paramFetcher)
 {
     $view = View::create();
     $em = $this->getDoctrine()->getManager();
     $user = $em->getRepository('AppBundle:User')->findOneBy(array('id' => $id));
     if (!$user) {
         return MessageResponse::message('User introuvable', 'danger', 404);
     }
     $userManager = $this->container->get('fos_user.user_manager');
     $user = $userManager->findUserByUsername($user->getUsername());
     if ($paramFetcher->get('email')) {
         $user->setUsername($paramFetcher->get('email'));
         $user->setEmail($paramFetcher->get('email'));
     }
     if ($paramFetcher->get('nomUser')) {
         $user->setNomUser($paramFetcher->get('nomUser'));
     }
     if ($paramFetcher->get('prenomUser')) {
         $user->setPrenomUser($paramFetcher->get('prenomUser'));
     }
     //        if($paramFetcher->get('telephone')){ $user->setTelephone($paramFetcher->get('telephone'));}
     $user->setTelephone($paramFetcher->get('telephone'));
     if ($paramFetcher->get('siteWeb')) {
         $user->setSiteWeb($paramFetcher->get('siteWeb'));
     }
     if ($paramFetcher->get('quartier')) {
         $quartier = $em->getRepository('AppBundle:Quartier')->find($paramFetcher->get('quartier'));
         if (!$quartier) {
             return MessageResponse::message('Le quartier inconnu,veuillez le creer', 'danger', 404);
         }
         $user->setQuartier($quartier);
     }
     $errors = $this->get('validator')->validate($user, array('Update'));
     if (count($errors) == 0) {
         $userManager->updateUser($user);
         return MessageResponse::message('Utilisateur modifié avec succès', 'success', 200, array('user' => $user));
     } else {
         $view = $this->getErrorsView($errors);
         return $view;
     }
 }
Beispiel #2
0
 /**
  * Definir ou non une voiture en vedette
  *
  * @ApiDoc(
  *   resource = true,
  *   description = "Definir ou non une voiture en vedette",
  *   statusCodes = {
  *     200 = "Returned when successful",
  *     404 = "Returned when the user is not found"
  *   }
  * )
  * @RequestParam(name="isVedette", nullable=false)
  * @Route("api/voitures/vedette/{id}", name="nicetruc_voiture_en_vedette", options={"expose"=true})
  * @Method({"PUT"})
  * @Security("has_role('ROLE_ADMIN')")
  */
 public function putVoitureEnVedetteAction($id, ParamFetcher $paramFetcher)
 {
     $em = $this->getDoctrine()->getManager();
     $message = new MessageResponse(View::create());
     $voiture = $em->getRepository('AppBundle:Voiture')->find($id);
     if (!$voiture) {
         $message->config("Voiture introuvable", 'danger', 404);
         return $message->getView();
     }
     $nbreVedette = $em->getRepository('AppBundle:Voiture')->countVedette();
     if ($paramFetcher->get('isVedette')) {
         if ($nbreVedette > $this->getParameter('limiteVedette')) {
             return $this->view()->setData('Vous ne pouvez depasser ' . $this->getParameter('limiteVedette') . ' vedettes')->setStatusCode(423);
         }
         $voiture->setIsVedette(true);
     } else {
         $voiture->setIsVedette(false);
     }
     $em->persist($voiture);
     $em->flush();
     $view = $this->view()->setData('Modification vedette effectuée ')->setStatusCode(200);
     return $view;
 }
 /**
  * desactiver un postulant à une voiture
  *
  * @ApiDoc(
  *   resource = true,
  *   description = "Desactiver un postulant à une voiture",
  *   statusCodes = {
  *     200 = "success",
  *     404 = "Returned when the voiture is not found"
  *   }
  * )
  * @Route("api/postulants/{idPostulant}/disabled",name="nicetruc_disabled_postulant", options={"expose"=true})
  * @Method({"PUT"})
  */
 public function disabledPostulantAction($idPostulant)
 {
     $user = $this->getUser();
     $em = $this->getDoctrine()->getManager();
     $postulant = $em->getRepository('AppBundle:Postulant')->find($idPostulant);
     if (!$postulant) {
         return MessageResponse::message('Postulant introuvable', 'danger', 404);
     }
     if ($postulant->getVoiture()->getUser() !== $user) {
         return MessageResponse::message('Vous n\'êtes pas autorisé à acceder à cette ressource', 'danger', 401);
     }
     $postulant->setDisabled(true);
     $em->persist($postulant);
     $em->flush();
     return MessageResponse::message('Postulant desactivé avec success', 'success', 200);
 }
 /**
  * supprime une image d'une voiture
  *
  * @ApiDoc(
  *   resource = true,
  *   description = "supprime une image d'une voiture",
  *   statusCodes = {
  *     200 = "Returned when successful",
  *     404 = "Returned when the user is not found"
  *   }
  * )
  * @Route("/api/images/{id}",name="nicetruc_image_delete", options={"expose"=true})
  * @Rest\View()
  * @Method({"DELETE"})
  */
 public function deleteImageAction($id)
 {
     $em = $this->getDoctrine()->getManager();
     $message = new MessageResponse(View::create());
     $image = $em->getRepository('AppBundle:Image')->find($id);
     if (!$image) {
         $message->config("Cette image n'existe pas", 'danger', 404);
         return $message->getView();
     }
     if ($image->getVoiture()->getImagePrincipale() === $image) {
         $image->getVoiture()->setImagePrincipale(null);
     }
     $em->remove($image);
     $em->flush();
     $message->config("Image supprimée avec succes", 'success', 200);
     return $message->getView();
 }