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 { $feedback = $this->feedbackService->getFeedbackById($request->getAttribute('feedbackId')); $responseBuilder->setStatusSuccess()->setJson(['entity' => $feedback->toJSON()]); } catch (FeedbackNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $this->feedbackService->deleteFeedback($request->getAttribute('feedbackId')); $responseBuilder->setStatusSuccess(); } catch (FeedbackNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e->getMessage()); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $community = $this->communityService->getCommunityById($request->getAttribute('communityId')); $responseBuilder->setStatusSuccess()->setJson(['entity' => $this->communityFormatter->format($community)]); } catch (CommunityNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $collection = $this->collectionService->getCollectionById($request->getAttribute('collectionId')); $responseBuilder->setStatusSuccess()->setJson(['entity' => $collection->toJSON()]); } catch (CollectionNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $profileId = (int) $request->getAttribute('profileId'); $profile = $this->profileService->getProfileById($profileId); return $responseBuilder->setStatusSuccess()->setJson(['entity' => $this->profileExtendedFormatter->format($profile)])->build(); } catch (ProfileNotFoundException $e) { return $responseBuilder->setStatusNotFound()->setError($e)->build(); } }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { $currentProfile = $this->currentAccountService->getCurrentAccount()->getCurrentProfile(); try { $community = $this->communityService->getCommunityById($request->getAttribute('communityId')); $this->subscribeService->subscribeCommunity($currentProfile, $community); return $responseBuilder->setStatusSuccess()->build(); } catch (CommunityNotFoundException $e) { return $responseBuilder->setStatusNotFound()->build(); } }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { $currentProfile = $this->currentAccountService->getCurrentAccount()->getCurrentProfile(); try { $theme = $this->themeService->getThemeById($request->getAttribute('themeId')); $this->subscribeService->unSubscribeTheme($currentProfile, $theme); return $responseBuilder->setStatusSuccess()->build(); } catch (ThemeNotFoundException $e) { return $responseBuilder->setStatusNotFound()->build(); } }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $this->feedbackService->markAsRead($request->getAttribute('feedbackId')); $responseBuilder->setStatusSuccess(); } catch (FeedbackNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e); } catch (FeedbackHasNoAnswerException $e) { $responseBuilder->setStatusConflict()->setError($e); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $this->collectionService->setPublicOptions($request->getAttribute('collectionId'), (new SetPublicOptionsRequest($request))->getParameters()); $responseBuilder->setStatusSuccess(); } catch (InvalidCollectionOptionsException $e) { $responseBuilder->setStatusConflict()->setError($e); } catch (CollectionNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $body = $request->getParsedBody(); $profileId = $request->getAttribute('profileId'); $profile = $this->profileService->getProfileById($profileId); $seek = new Seek(100, (int) $body['offset'], (int) $body['limit']); $entities = $this->subscribeService->listSubscribedCollections($profile, $seek); return $responseBuilder->setJson(['entities' => $entities])->setStatusSuccess()->build(); } catch (ProfileNotFoundException $e) { return $responseBuilder->setStatusNotFound()->build(); } }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $communityId = $request->getAttribute('communityId'); $featureCode = $request->getAttribute('feature'); $community = $this->communityService->getCommunityById($communityId); $isActivated = $this->communityFeatureService->isFeatureActivated($featureCode, $community); $responseBuilder->setStatusSuccess()->setJson(['is_feature_activated' => $isActivated]); } catch (CommunityNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { $provider = $this->getOAuth2Provider(); if (isset($_GET['code'])) { // TODO:: fix; $this->preventCSRFAttack(); $accessToken = $provider->getAccessToken('authorization_code', ['code' => $_GET['code']]); $registrationRequest = $this->makeRegistrationRequest($provider, $accessToken); try { $account = $this->authService->signInOauth2($registrationRequest); $responseBuilder->setStatusSuccess()->setJson(["api_key" => $account->getAPIKey()]); header('Location: /'); exit; } catch (AccountNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e); } catch (InvalidCredentialsException $e) { $responseBuilder->setStatusNotFound()->setError($e); } } else { $this->moveToAuth($provider); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { /** @var Backdrop $backdrop */ $backdrop = $this->perform($request); $responseBuilder->setStatusSuccess()->setJson(['backdrop' => $backdrop->toJSON()]); } catch (ProfileNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e); } catch (BackdropUploadException $e) { $responseBuilder->setStatusConflict()->setError($e); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $request = new SignInRequest($request); $account = $this->authService->signIn($request->getParameters()); $frontline = $this->frontlineService->fetch(new IncludeFilter([FrontlineScript::TAG_IS_AUTHENTICATED])); $responseBuilder->setStatusSuccess()->setJson($this->signInFormatter->format($account, $frontline)); } catch (AccountNotFoundException $e) { $responseBuilder->setStatusNotFound()->setError($e); } catch (InvalidCredentialsException $e) { $responseBuilder->setStatusNotAllowed()->setError($e); } return $responseBuilder->build(); }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $profileId = (int) $request->getAttribute('profileId'); $profile = $this->profileService->getProfileById($profileId); $this->validation->validateIsProfileOwnedByAccount($this->currentAccountService->getCurrentAccount(), $profile); $this->profileService->deleteProfile($profileId); $responseBuilder->setStatusSuccess()->setJson(['current_profile_id' => $this->currentAccountService->getCurrentAccount()->getCurrentProfile()->getId()]); } catch (LastProfileException $e) { $responseBuilder->setStatusConflict()->setError($e); } catch (ProfileNotFoundException $e) { $responseBuilder->setStatusNotFound()->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 { $bodyJson = json_decode($request->getBody()->getContents(), true); $seek = new Seek(MessageRepository::MAX_MESSAGES_LIMIT, $bodyJson['offset'], $bodyJson['limit']); $sourceProfile = $this->currentAccountService->getCurrentAccount()->getCurrentProfile(); $targetProfileId = $request->getAttribute('profileId'); try { $targetProfile = $this->profileService->getProfileById($targetProfileId); $messages = $this->messageService->getMessagesToProfile($sourceProfile, $targetProfile, $seek); return $responseBuilder->setStatusSuccess()->setJson(['success' => true, 'total' => count($messages), 'entities' => array_map(function (Message $message) { return $message->toJSON(); }, $messages)])->build(); } catch (ProfileNotFoundException $e) { return $responseBuilder->setStatusNotFound()->setError($e->getMessage())->setJson(['success' => false])->build(); } catch (\Exception $e) { return $responseBuilder->setStatusInternalError()->setError($e->getMessage())->setJson(['success' => false])->build(); } }
public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { $body = json_decode($request->getBody()->getContents(), true); $content = $body['content']; $sourceProfile = $this->currentAccountService->getCurrentAccount()->getCurrentProfile(); $roomId = $request->getAttribute('roomId'); try { $message = new Message(); $message->setSourceType(Message::SOURCE_TYPE_PROFILE)->setSourceId($sourceProfile->getId())->setTargetType(Message::TARGET_TYPE_ROOM)->setTargetId($roomId)->setContent($content); $message2 = $this->messageService->createMessage($message); if ($message) { return $responseBuilder->setStatusSuccess()->setJson(['success' => true, 'entity' => $message2->toJSON()])->build(); } } catch (ProfileNotFoundException $e) { return $responseBuilder->setStatusNotFound()->setError($e->getMessage())->setJson(['success' => false])->build(); } catch (\Exception $e) { return $responseBuilder->setStatusInternalError()->setError($e)->setJson(['success' => false])->build(); } }