/** * 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; }
/** * 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(); }