コード例 #1
0
 /**
  * @EXT\Route(
  *     "/api/cursus/{cursus}/edit",
  *     name="api_put_cursus_edition",
  *     options = {"expose"=true}
  * )
  * @EXT\ParamConverter("user", converter="current_user")
  *
  * Edits a cursus
  *
  * @return \Symfony\Component\HttpFoundation\JsonResponse
  */
 public function putCursusEditionAction(Cursus $cursus)
 {
     $cursusDatas = $this->request->request->get('cursusDatas', false);
     $cursus->setTitle($cursusDatas['title']);
     $cursus->setCode($cursusDatas['code']);
     $cursus->setDescription($cursusDatas['description']);
     $cursus->setBlocking((bool) $cursusDatas['blocking']);
     $color = $cursusDatas['color'];
     $details = ['color' => $color];
     $cursus->setDetails($details);
     if ($cursusDatas['workspace']) {
         $worskpace = $this->workspaceManager->getWorkspaceById($cursusDatas['workspace']);
         $cursus->setWorkspace($worskpace);
     }
     if ($this->request->files->get('cursusDatas')['icon']) {
         $icon = $this->cursusManager->saveIcon($this->request->files->get('cursusDatas')['icon']);
         $cursus->setIcon($icon);
     }
     $this->cursusManager->persistCursus($cursus);
     $event = new LogCursusEditEvent($cursus);
     $this->eventDispatcher->dispatch('log', $event);
     $serializedCursus = $this->serializer->serialize($cursus, 'json', SerializationContext::create()->setGroups(['api_workspace_min']));
     return new JsonResponse($serializedCursus, 200);
 }
コード例 #2
0
 public function createCursus($title, $code, Cursus $parent = null, Course $course = null, $description = null, $blocking = false, $icon = null, $color = null, Workspace $workspace = null)
 {
     $cursus = new Cursus();
     $cursus->setTitle($title);
     $cursus->setCode($code);
     $cursus->setParent($parent);
     $cursus->setCourse($course);
     $cursus->setDescription($description);
     $cursus->setBlocking((bool) $blocking);
     $cursus->setIcon($icon);
     $cursus->setWorkspace($workspace);
     $cursus->setDetails(['color' => $color]);
     $orderMax = is_null($parent) ? $this->getLastRootCursusOrder() : $this->getLastCursusOrderByParent($parent);
     $order = is_null($orderMax) ? 1 : intval($orderMax) + 1;
     $cursus->setCursusOrder($order);
     $this->persistCursus($cursus);
     $event = new LogCursusCreateEvent($cursus);
     $this->eventDispatcher->dispatch('log', $event);
     return $cursus;
 }