Beispiel #1
0
 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();
 }
Beispiel #2
0
 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();
 }
Beispiel #3
0
 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();
 }