Cavoke  1.1.0
A Platform for creating and hosting multiplayer turn-based board games
Loading...
Searching...
No Matches
gamesubmissions_controller.h
1#ifndef CAVOKE_GAMESUBMISSIONS_CONTROLLER_H
2#define CAVOKE_GAMESUBMISSIONS_CONTROLLER_H
3
4#include <drogon/HttpController.h>
5#include <nlohmann/json.hpp>
6#include "sql-models/Gamesubmissions.h"
7#include "utils.h"
8
9namespace cavoke::server::controllers {
10
12 : public drogon::HttpController<GameSubmissionsController, true> {
13public:
14 METHOD_LIST_BEGIN
15 ADD_METHOD_TO(GameSubmissionsController::submit_game,
16 "/submit_game",
17 drogon::Post,
18 drogon::Options);
19 METHOD_LIST_END
20
22 std::string game_id;
23 std::string display_name;
24 std::string description;
25 std::string package_type;
26 std::string git_repo;
27
28 auto to_orm(const std::string &id) {
29 drogon_model::cavoke_orm::Gamesubmissions res;
30 res.setId(id);
31 res.setGameId(game_id);
32 res.setPackageType(package_type);
33 res.setGitRepo(git_repo);
34 res.setDisplayName(display_name);
35 return res;
36 }
37 };
38
39protected:
40 void submit_game(
41 const drogon::HttpRequestPtr &req,
42 std::function<void(const drogon::HttpResponsePtr &)> &&callback);
43
44private:
45 MAPPER_TYPE(drogon_model::cavoke_orm::Gamesubmissions)
46 mp_submissions = MAPPER_FOR(drogon_model::cavoke_orm::Gamesubmissions);
47};
48
49NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(GameSubmissionsController::GameSubmissionReq,
50 game_id,
51 display_name,
52 description,
53 package_type,
54 git_repo);
55
56} // namespace cavoke::server::controllers
57
58#endif // CAVOKE_GAMESUBMISSIONS_CONTROLLER_H