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(); } }