1 | #include "mtx/responses/login.hpp" |
---|---|
2 | |
3 | #include <nlohmann/json.hpp> |
4 | |
5 | namespace mtx { |
6 | namespace responses { |
7 | |
8 | void |
9 | from_json(const nlohmann::json &obj, Login &response) |
10 | { |
11 | using namespace mtx::identifiers; |
12 | response.user_id = obj.at(key: "user_id").get<User>(); |
13 | |
14 | response.access_token = obj.at(key: "access_token").get<std::string>(); |
15 | |
16 | if (obj.count(key: "device_id") != 0) |
17 | response.device_id = obj.at(key: "device_id").get<std::string>(); |
18 | |
19 | if (obj.count(key: "well_known") != 0 && obj.at(key: "well_known").is_object()) |
20 | response.well_known = obj.at(key: "well_known").get<WellKnown>(); |
21 | } |
22 | |
23 | void |
24 | from_json(const nlohmann::json &obj, IdentityProvider &response) |
25 | { |
26 | response.brand = obj.value(key: "brand", default_value: ""); |
27 | response.icon = obj.value(key: "icon", default_value: ""); |
28 | response.id = obj.at(key: "id").get<std::string>(); |
29 | response.name = obj.at(key: "name").get<std::string>(); |
30 | } |
31 | |
32 | void |
33 | from_json(const nlohmann::json &obj, LoginFlow &response) |
34 | { |
35 | response.type = obj.at(key: "type").get<std::string>(); |
36 | response.identity_providers = obj.value(key: "identity_providers", default_value: std::vector<IdentityProvider>{}); |
37 | } |
38 | void |
39 | from_json(const nlohmann::json &obj, LoginFlows &response) |
40 | { |
41 | response.flows = obj.at(key: "flows").get<std::vector<LoginFlow>>(); |
42 | } |
43 | } |
44 | } |
45 |