-
CH Chethan Reddy authored
Merge device_verification from Chethan2k1/mtxclient * Fix build Issue in the crypto_bot.cpp * Add Linting * Change the location of DeviceEventVistor * Fix to_device test * Remove iostream header * Fix Remaining Tests * Remove Sender and Type in KeyRequest * Add endpoint to construct to_device messages * Add new endpoint new_send_to_device * Made Changes in new to_device_send * Wait for carl's access_token
CH Chethan Reddy authoredMerge device_verification from Chethan2k1/mtxclient * Fix build Issue in the crypto_bot.cpp * Add Linting * Change the location of DeviceEventVistor * Fix to_device test * Remove iostream header * Fix Remaining Tests * Remove Sender and Type in KeyRequest * Add endpoint to construct to_device messages * Add new endpoint new_send_to_device * Made Changes in new to_device_send * Wait for carl's access_token
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
requests.cpp 3.16 KiB
#include "mtx/requests.hpp"
#include "mtx/events/collections.hpp"
#include "mtx/events/encrypted.hpp"
#include <iostream>
using json = nlohmann::json;
using namespace mtx::events::collections;
namespace mtx {
namespace requests {
std::string
visibilityToString(Visibility visibility)
{
if (visibility == Visibility::Private) {
return "private";
}
return "public";
}
std::string
presetToString(Preset preset)
{
switch (preset) {
case Preset::PrivateChat:
return "private_chat";
break;
case Preset::PublicChat:
return "public_chat";
break;
case Preset::TrustedPrivateChat:
return "trusted_private_chat";
break;
}
return "private_chat";
}
void
to_json(json &obj, const CreateRoom &request)
{
if (!request.name.empty())
obj["name"] = request.name;
if (!request.topic.empty())
obj["topic"] = request.topic;
if (!request.room_alias_name.empty())
obj["room_alias_name"] = request.room_alias_name;
if (request.invite.size() != 0)
obj["invite"] = request.invite;
obj["is_direct"] = request.is_direct;
obj["preset"] = presetToString(request.preset);
obj["visibility"] = visibilityToString(request.visibility);
}
void
to_json(json &obj, const Login &request)
{
if (!request.medium.empty())
obj["medium"] = request.medium;
if (!request.address.empty())
obj["address"] = request.address;
if (!request.token.empty())
obj["token"] = request.token;
if (!request.password.empty())
obj["password"] = request.password;
if (!request.device_id.empty())
obj["device_id"] = request.device_id;
if (!request.initial_device_display_name.empty())
obj["initial_device_display_name"] = request.initial_device_display_name;
obj["user"] = request.user;
obj["type"] = request.type;
}
void
to_json(json &obj, const AvatarUrl &request)
{
obj["avatar_url"] = request.avatar_url;
}
void
to_json(json &obj, const DisplayName &request)
{
obj["displayname"] = request.displayname;
}
void
to_json(json &obj, const RoomMembershipChange &request)
{
obj["user_id"] = request.user_id;
if (!request.reason.empty())
obj["reason"] = request.reason;
}
void
to_json(json &obj, const TypingNotification &request)
{
obj["typing"] = request.typing;
obj["timeout"] = request.timeout;
}
void
to_json(json &obj, const UploadKeys &request)
{
obj = json::object();
if (!request.device_keys.user_id.empty())
obj["device_keys"] = request.device_keys;
if (!request.one_time_keys.empty())
obj["one_time_keys"] = request.one_time_keys;
}
void
to_json(json &obj, const QueryKeys &request)
{
obj["timeout"] = request.timeout;
obj["device_keys"] = request.device_keys;
obj["token"] = request.token;
}
} // namespace requests
} // namespace mtx