/** * @param Mark $mark * @param null $oldMark */ public function __construct(Mark $mark, $oldMark = null) { $result = $mark->getResult(); $receiverUser = $mark->getUser(); $details = ['receiverUser' => ['firstName' => $receiverUser->getFirstName(), 'lastName' => $receiverUser->getLastName(), 'username' => $receiverUser->getUsername()], 'result' => $mark->getValue(), 'update' => $oldMark !== null, 'mark' => ['id' => $mark->getId(), 'value' => $mark->getValue(), 'oldValue' => $oldMark]]; parent::__construct($result->getResourceNode(), $details); $this->setReceiver($receiverUser); }
/** * @EXT\Route("/marks/{id}", name="claro_edit_mark") * @EXT\Method("PUT") * * @param Request $request * @param Mark $mark * * @return JsonResponse */ public function editMarkAction(Request $request, Mark $mark) { $this->assertCanEdit($mark->getResult()); $newValue = $request->request->get('value', false); $response = new JsonResponse(); if ($newValue !== false) { if (!$this->manager->isValidMark($mark->getResult(), $newValue)) { $response->setData('Mark is not valid'); $response->setStatusCode(422); } else { $this->manager->updateMark($mark, $newValue); $response->setStatusCode(204); } } else { $response->setData('Field "value" is missing'); $response->setStatusCode(422); } return $response; }