1#ifndef EILE_MIT_WEILE_CLIENTREQUEST_HPP
2#define EILE_MIT_WEILE_CLIENTREQUEST_HPP
5#include <unordered_map>
8#include "rapidjson/document.h"
9#include "common/serialization/serializable.hpp"
10#include "common/exceptions/EileMitWeileException.hpp"
11#include "common/serialization/uuid_generator.hpp"
12#include "common/serialization/json_utils.hpp"
44 [[nodiscard]] std::string
GetReqId()
const;
45 [[nodiscard]] std::string
GetGameId()
const;
48 void WriteIntoJson(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator)
const override;
RequestType
Identifier for the different request types.
Definition ClientRequest.hpp:22
Base class for all requests that are being sent from the client to the server.
Definition ClientRequest.hpp:38
static BaseClassProperties CreateBaseClassProperties(RequestType type, std::string req_id, std::string &player_id, std::string &game_id)
Definition ClientRequest.cpp:59
std::string _req_id
Definition ClientRequest.hpp:71
static const std::unordered_map< RequestType, std::string > _request_type_to_string
Definition ClientRequest.hpp:43
std::string GetReqId() const
Definition ClientRequest.cpp:7
std::string GetPlayerId() const
Definition ClientRequest.cpp:15
std::string GetGameId() const
Definition ClientRequest.cpp:11
static const std::unordered_map< std::string, RequestType > _string_to_request_type
Definition ClientRequest.hpp:35
std::string _game_id
Definition ClientRequest.hpp:73
static BaseClassProperties ExtractBaseClassProperties(const rapidjson::Value &json)
Definition ClientRequest.cpp:74
void WriteIntoJson(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override
Definition ClientRequest.cpp:19
std::string _player_id
Definition ClientRequest.hpp:72
RequestType GetType() const
Definition ClientRequest.cpp:3
RequestType _type
Definition ClientRequest.hpp:70
ClientRequest(const BaseClassProperties &)
Definition ClientRequest.cpp:52
Abstract Base Class for a serializable object.
Definition serializable.hpp:17
Holds the properties that are common to all ClientRequest subclasses.
Definition ClientRequest.hpp:63
std::string _player_id
Definition ClientRequest.hpp:66
RequestType _type
Definition ClientRequest.hpp:64
std::string _game_id
Definition ClientRequest.hpp:67
std::string _req_id
Definition ClientRequest.hpp:65