1#include <string>
2
3#include <nlohmann/json.hpp>
4
5#include "mtx/events/canonical_alias.hpp"
6
7using json = nlohmann::json;
8
9namespace mtx {
10namespace events {
11namespace state {
12
13void
14from_json(const json &obj, CanonicalAlias &canonical_alias)
15{
16 if (obj.find(key: "alias") != obj.end() && !obj.at(key: "alias").is_null())
17 canonical_alias.alias = obj.at(key: "alias").get<std::string>();
18 if (obj.contains(key: "alt_aliases") && obj.at(key: "alt_aliases").is_array())
19 canonical_alias.alt_aliases =
20 obj.at(key: "alt_aliases").get<decltype(canonical_alias.alt_aliases)>();
21}
22
23void
24to_json(json &obj, const CanonicalAlias &canonical_alias)
25{
26 if (!canonical_alias.alias.empty())
27 obj["alias"] = canonical_alias.alias;
28 if (!canonical_alias.alt_aliases.empty())
29 obj["alt_aliases"] = canonical_alias.alt_aliases;
30}
31
32} // namespace state
33} // namespace events
34} // namespace mtx
35