Ejemplo n.º 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();
 }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
 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();
 }
Ejemplo n.º 4
0
 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();
 }
Ejemplo n.º 5
0
 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();
 }
Ejemplo n.º 6
0
 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();
     }
 }
Ejemplo n.º 8
0
 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();
     }
 }
Ejemplo n.º 9
0
 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();
 }
Ejemplo n.º 10
0
 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();
     }
 }
Ejemplo n.º 12
0
 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();
 }
Ejemplo n.º 13
0
 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();
 }
Ejemplo n.º 14
0
 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();
 }
Ejemplo n.º 15
0
 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();
 }
Ejemplo n.º 16
0
 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();
 }
Ejemplo n.º 17
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();
 }
Ejemplo n.º 18
0
 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();
     }
 }
Ejemplo n.º 19
0
 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();
     }
 }