Skip to content
Snippets Groups Projects
Commit 76677cdb authored by kamathmanu's avatar kamathmanu
Browse files

Fix bugs and pass JSON tests for responses

parent 5bcc5098
No related branches found
No related tags found
No related merge requests found
......@@ -53,7 +53,7 @@ struct PublicRoomsChunk
//! Aliases of the room. May be empty.
std::vector<std::string> aliases;
//! The canonical alias of the room, if any.
std::string canonical_alias;
std::string canonical_alias = "";
//! The name of the room, if any.
std::string name;
//! **Required.** The number of members joined to the room.
......
......@@ -7,7 +7,7 @@ namespace mtx {
namespace responses {
void
from_json(const nlohmann::json &obj, RoomVisibilityResponse &res)
from_json(const nlohmann::json &obj, RoomVisibility &res)
{
res.visibility = stringToVisibility(obj.at("visibility").get<std::string>());
}
......@@ -15,23 +15,23 @@ from_json(const nlohmann::json &obj, RoomVisibilityResponse &res)
void
from_json(const nlohmann::json &obj, PublicRoomsChunk &res)
{
res.aliases = obj.at("aliases").get<std::vector<std::string>>();
res.aliases = obj.value("aliases", std::vector<std::string>{});
res.canonical_alias = obj.at("canonical_alias").get<std::string>();
res.canonical_alias = obj.value("canonical_alias", std::string{});
res.name = obj.at("name").get<std::string>();
res.name = obj.value("name", std::string{});
res.num_joined_members = obj.at("num_joined_members").get<int>();
res.room_id = obj.at("room_id").get<std::string>();
res.topic = obj.at("topic").get<std::string>();
res.topic = obj.value("topic", std::string{});
res.world_readable = obj.at("world_readable").get<bool>();
res.guest_can_join = obj.at("guest_can_join").get<bool>();
res.avatar_url = obj.at("avatar_url").get<std::string>();
res.avatar_url = obj.value("avatar_url", std::string{});
}
void
......@@ -40,11 +40,17 @@ from_json(const nlohmann::json &obj, PublicRooms &publicRooms)
// PublicRoomsChunk is CopyConstructible & DefaultConstructible
publicRooms.chunk = obj.at("chunk").get<std::vector<PublicRoomsChunk>>();
publicRooms.next_batch = obj.at("next_batch").get<std::string>();
if (obj.count("next_batch")) {
publicRooms.next_batch = obj.at("next_batch").get<std::string>();
}
publicRooms.prev_batch = obj.at("prev_batch").get<std::string>();
if (obj.count("prev_batch")) {
publicRooms.prev_batch = obj.at("prev_batch").get<std::string>();
}
publicRooms.total_room_count_estimate = obj.at("total_room_count_estimate").get<int>();
if (obj.count("prev_batch")) {
publicRooms.total_room_count_estimate = obj.at("total_room_count_estimate").get<int>();
}
}
} // namespace responses
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment