示例#1
0
 /**
  * @EXT\Route(
  *     "/card/{card}/suspend/{suspend}",
  *     name="claroline_suspend_card"
  * )
  *
  * @param Card $card
  * @param $suspend
  *
  * @return JsonResponse
  */
 public function suspendCardAction(Card $card, $suspend)
 {
     $this->assertCanOpen($card->getNote()->getDeck());
     $user = $this->tokenStorage->getToken()->getUser();
     $cardLearning = $this->cardLearningMgr->getCardLearning($card, $user);
     $cardLearning->setPainful($suspend);
     $this->cardLearningMgr->save($cardLearning);
     return new JsonResponse($card->getId());
 }
示例#2
0
 /**
  * @EXT\Route(
  *     "/note/create/deck/{deck}/note_type/{noteType}",
  *     name="claroline_create_note"
  * )
  * @EXT\Method("POST")
  *
  * @param Request  $request
  * @param Deck     $deck
  * @param NoteType $noteType
  *
  * @return JsonResponse
  */
 public function createNoteAction(Request $request, Deck $deck, NoteType $noteType)
 {
     $fields = $request->request->get('fields', false);
     $response = new JsonResponse();
     $this->assertCanCreate($deck);
     if ($fields) {
         $note = new Note();
         $note->setDeck($deck);
         $note->setNoteType($noteType);
         foreach ($fields as $field) {
             if ($field['fieldValue']['type'] === 'text') {
                 $fieldValue = new FieldValueText();
                 $fieldValue->setValue($field['fieldValue']['value']);
             }
             if ($field['fieldValue']['type'] === 'image') {
                 $fieldValue = new FieldValueImage();
                 $fieldValue->setValue($field['fieldValue']['value']);
                 $fieldValue->setAlt($field['fieldValue']['alt']);
             }
             $fieldValue->setFieldLabel($noteType->getFieldLabel($field['id']));
             $fieldValue->setNote($note);
             $note->addFieldValue($fieldValue);
         }
         foreach ($noteType->getCardTypes() as $cardType) {
             $card = new Card();
             $card->setCardType($cardType);
             $card->setNote($note);
             $note->addCard($card);
         }
         $note = $this->manager->create($note);
         $context = new SerializationContext();
         $context->setGroups('api_flashcard_deck');
         $response->setData(json_decode($this->serializer->serialize($note, 'json', $context)));
     } else {
         $response->setData('Field "fields" is missing');
         $response->setStatusCode(422);
     }
     return $response;
 }