/** * @param ChatPostMessageRequest $request * @return mixed */ public function processPostMessage(ChatPostMessageRequest $request) : ChatMessage { $me = $this->container->get("core.service.security")->getUserIfCredentialsIsOk($request, $this->getRequestError()); $this->container->get('core.handler.user')->banUserIfIpIsBanned($me, true); if ($me->isBanned()) { $this->getRequestError()->addError("user", "You are banned")->throwException(ResponseStatusCode::FORBIDDEN); } $chatMessage = $this->createEntity(); $chatMessage->setType(ChatMessageType::COMMON())->setMessage($request->getMessage())->setUser($me); $this->manager->persist($chatMessage); $this->manager->flush(); return $chatMessage; }
/** * @param GamePostAddmessageRequest $request * @return Game */ public function processPostAddmessage(GamePostAddmessageRequest $request) : Game { $me = $this->container->get("core.service.security")->getUserIfCredentialsIsOk($request, $this->getRequestError()); $game = $this->repository->find($request->getId()); if (!$game instanceof Game) { $this->getRequestError()->addError("id", "Game is not found"); $this->getRequestError()->throwException(ResponseStatusCode::NOT_FOUND); } $chatMessage = $this->container->get("core.handler.chat")->createEntity()->setMessage($request->getMessage())->setUser($me)->setType(ChatMessageType::GAME()); $game->addChatMessage($chatMessage); $this->manager->persist($chatMessage); $this->saveEntity($game); return $this->getUserGame($game, $me); }
/** * @param ChatMessageType $type * @return ChatMessage */ public function setType(ChatMessageType $type) { $this->type = $type->getValue(); return $this; }