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