public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $qp = $request->getQueryParams(); $options = ['profileId' => null, 'seek' => ['limit' => $request->getAttribute('limit'), 'offset' => $request->getAttribute('offset')], 'filter' => []]; if (isset($qp['profileId'])) { $options['profileId'] = (int) $qp['profileId']; } else { $options['profileId'] = $this->currentAccountService->getCurrentAccount()->getCurrentProfile()->getId(); } if (isset($qp['read'])) { $options['filter']['read'] = QueryBoolean::extract($qp['read']); } if (isset($qp['answer'])) { $options['filter']['answer'] = QueryBoolean::extract($qp['answer']); } $feedbackEntities = $this->feedbackService->getFeedbackEntities($options); $responseBuilder->setStatusSuccess()->setJson(['entities' => array_map(function (Feedback $feedback) { return $feedback->toJSON(); }, $feedbackEntities)]); } catch (ProfileNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e); } catch (SeekException $e) { $responseBuilder->setStatusBadRequest()->setError($e); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $request = new SignUpRequest($request); $account = $this->authService->signUp($request->getParameters()); $frontline = $this->frontlineService->fetch(new IncludeFilter([FrontlineScript::TAG_IS_AUTHENTICATED])); $responseBuilder->setStatusSuccess()->setJson($this->signInFormatter->format($account, $frontline)); } catch (MissingRequiredFieldException $e) { $responseBuilder->setStatusNotFound()->setError($e); } catch (DuplicateAccountException $e) { $responseBuilder->setStatusConflict()->setError($e); } catch (ValidationException $e) { $responseBuilder->setStatusBadRequest()->setError($e); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { /** @var UploadedFile $file */ $file = $request->getUploadedFiles()["file"]; $filename = $file->getClientFilename(); if (!strlen($filename)) { $filename = GenerateRandomString::gen(self::AUTO_GENERATE_FILE_NAME_LENGTH); } if ($file->getError() !== 0) { throw new FileNotUploadedException('Failed to upload file'); } $entity = $this->attachmentService->uploadAttachment($file->getStream()->getMetadata('uri'), $filename); $responseBuilder->setStatusSuccess()->setJson(['entity' => $entity->toJSON()]); } catch (FileTooBigException $e) { $responseBuilder->setStatus(409)->setError($e); } catch (FileTooSmallException $e) { $responseBuilder->setStatus(409)->setError($e); } catch (AttachmentFactoryException $e) { $responseBuilder->setStatusBadRequest()->setError($e); } return $responseBuilder->build(); }