1#include <nlohmann/json.hpp>
2#include <string>
3
4#include "mtx/events/guest_access.hpp"
5
6using json = nlohmann::json;
7
8namespace mtx {
9namespace events {
10namespace state {
11
12std::string
13accessStateToString(AccessState state)
14{
15 if (state == AccessState::CanJoin)
16 return "can_join";
17
18 return "forbidden";
19}
20
21AccessState
22stringToAccessState(const std::string &state)
23{
24 if (state == "can_join")
25 return AccessState::CanJoin;
26
27 return AccessState::Forbidden;
28}
29
30void
31from_json(const json &obj, GuestAccess &guest_access)
32{
33 guest_access.guest_access = stringToAccessState(state: obj.value(key: "guest_access", default_value: ""));
34}
35
36void
37to_json(json &obj, const GuestAccess &guest_access)
38{
39 obj["guest_access"] = accessStateToString(state: guest_access.guest_access);
40}
41
42} // namespace state
43} // namespace events
44} // namespace mtx
45