json([ 'ok' => true, 'service' => 'game-api', 'ts' => date('c'), ]); } #[Route('/check-finished/{session}', name: 'check_finished', methods: ['POST'])] public function checkFinished(Session $session): JsonResponse { $now = (new \DateTime())->getTimestamp(); $isFinished = false; if ($session->getStatus() === SessionStatus::PLAYING) { if ($session->getTimer() !== null && $now >= $session->getTimer()) { $session->setStatus(SessionStatus::LOST); $this->entityManager->persist($session); $this->entityManager->flush(); $isFinished = true; } } elseif ($session->getStatus() === SessionStatus::LOST || $session->getStatus() === SessionStatus::WON) { $isFinished = true; } return $this->json([ 'ok' => true, 'finished' => $isFinished, 'status' => $session->getStatus()->value, ]); } #[Route('/message', name: 'message', methods: ['POST'])] public function message(Request $request): JsonResponse { $raw = (string) $request->getContent(); $data = null; if ($raw !== '') { $data = $this->gameResponseService->getGameResponse($raw); } return $this->json([ 'ok' => true, 'result' => $data, 'ts' => date('c'), ]); } }