1#ifndef CAVOKE_STATE_CONTROLLER_H
2#define CAVOKE_STATE_CONTROLLER_H
4#include <drogon/HttpController.h>
5#include "filters/AuthFilter.h"
6#include "model/games/games_storage.h"
7#include "model/logic/game_logic_manager.h"
8#include "model/sessions/sessions_storage.h"
10namespace cavoke::server::controllers {
13 std::shared_ptr<model::GamesStorage> m_games_storage;
14 std::shared_ptr<model::GameLogicManager> m_game_logic_manager;
15 std::shared_ptr<model::GameStateStorage> m_game_state_storage;
16 std::shared_ptr<model::SessionsStorage> m_participation_storage;
20 std::shared_ptr<model::GamesStorage> mGamesStorage,
21 std::shared_ptr<model::GameLogicManager> mGameLogicManager,
22 std::shared_ptr<model::GameStateStorage> mGameStateStorage,
23 std::shared_ptr<model::SessionsStorage> mParticipationStorage);
27 ADD_METHOD_TO(StateController::send_move,
28 "/play/{session_id}/send_move",
31 ADD_METHOD_TO(StateController::get_state,
32 "/play/{session_id}/get_state",
39 const drogon::HttpRequestPtr &req,
40 std::function<
void(
const drogon::HttpResponsePtr &)> &&callback,
41 const std::string &session_id);
44 const drogon::HttpRequestPtr &req,
45 std::function<
void(
const drogon::HttpResponsePtr &)> &&callback,
46 const std::string &session_id);