| 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 |