Example #1
0
 /**
  * Create a Event from the submitted data.<br/>
  *
  * @ApiDoc(
  *   resource = true,
  *   description = "Creates a new event from the submitted data.",
  *   statusCodes = {
  *     201 = "Returned when successful",
  *     400 = "Returned when the form has errors"
  *   }
  * )
  *
  * @param int $id id
  *
  * @param ParamFetcher $paramFetcher Paramfetcher
  *
  * @RequestParam(name="title", nullable=false, strict=true, description="Title.")
  * @RequestParam(name="description", nullable=false, strict=true, description="Description.")
  * @RequestParam(name="startDateTime", nullable=false, strict=true, description="Date de début.")
  * @RequestParam(name="endDateTime", nullable=false, strict=true, description="Date de fin.")
  *
  * @return View
  */
 public function postProjectEventAction($id, ParamFetcher $paramFetcher)
 {
     $eventRepository = $this->getDoctrine()->getRepository('ReservationBundle:Event');
     $projectRepository = $this->getDoctrine()->getRepository('CustomFosUserBundle:Project');
     $project = $projectRepository->find($id);
     $event = new Event();
     $event->setTitle($paramFetcher->get('title'));
     $event->setDescription($paramFetcher->get('description'));
     $event->setUser($this->getUser());
     $event->setCreationDateTime();
     $event->setStartDateTime($paramFetcher->get('startDateTime'));
     $event->setEndDateTime($paramFetcher->get('endDateTime'));
     $event->setProject($project);
     $view = View::create();
     $errors = $this->get('validator')->validate($event, array('Registration'));
     if (count($errors) == 0) {
         $em = $this->getDoctrine()->getManager();
         $em->persist($event);
         $em->flush();
         $view->setData($event)->setStatusCode(201);
         return $view;
     } else {
         $view = $this->getErrorsView($errors);
         return $view;
     }
 }