Skip to content
Snippets Groups Projects
Commit e90cef99 authored by Konstantinos Sideris's avatar Konstantinos Sideris
Browse files

Use type aliases for callbacks to decrease verbosity

parent c533b0ba
No related branches found
No related tags found
No related merge requests found
......@@ -184,7 +184,7 @@ Client::setup_auth(std::shared_ptr<Session> session, bool auth)
void
Client::login(const std::string &user,
const std::string &password,
std::function<void(const mtx::responses::Login &response, RequestErr err)> callback)
Callback<mtx::responses::Login> callback)
{
mtx::requests::Login req;
req.user = user;
......@@ -206,7 +206,7 @@ Client::login(const std::string &user,
}
void
Client::logout(std::function<void(const mtx::responses::Logout &response, RequestErr)> callback)
Client::logout(Callback<mtx::responses::Logout> callback)
{
mtx::requests::Logout req;
......@@ -225,7 +225,7 @@ Client::logout(std::function<void(const mtx::responses::Logout &response, Reques
}
void
Client::set_avatar_url(const std::string &avatar_url, std::function<void(RequestErr err)> callback)
Client::set_avatar_url(const std::string &avatar_url, ErrCallback callback)
{
mtx::requests::AvatarUrl req;
req.avatar_url = avatar_url;
......@@ -235,7 +235,7 @@ Client::set_avatar_url(const std::string &avatar_url, std::function<void(Request
}
void
Client::set_displayname(const std::string &displayname, std::function<void(RequestErr)> callback)
Client::set_displayname(const std::string &displayname, ErrCallback callback)
{
mtx::requests::DisplayName req;
req.displayname = displayname;
......@@ -246,7 +246,7 @@ Client::set_displayname(const std::string &displayname, std::function<void(Reque
void
Client::get_profile(const mtx::identifiers::User &user_id,
std::function<void(const mtx::responses::Profile &, RequestErr)> callback)
Callback<mtx::responses::Profile> callback)
{
get<mtx::responses::Profile>("/client/r0/profile/" + user_id.to_string(),
[callback](const mtx::responses::Profile &res,
......@@ -256,7 +256,7 @@ Client::get_profile(const mtx::identifiers::User &user_id,
void
Client::get_avatar_url(const mtx::identifiers::User &user_id,
std::function<void(const mtx::responses::AvatarUrl &, RequestErr)> callback)
Callback<mtx::responses::AvatarUrl> callback)
{
get<mtx::responses::AvatarUrl>("/client/r0/profile/" + user_id.to_string() + "/avatar_url",
[callback](const mtx::responses::AvatarUrl &res,
......@@ -266,15 +266,14 @@ Client::get_avatar_url(const mtx::identifiers::User &user_id,
void
Client::create_room(const mtx::requests::CreateRoom &room_options,
std::function<void(const mtx::responses::CreateRoom &, RequestErr)> callback)
Callback<mtx::responses::CreateRoom> callback)
{
post<mtx::requests::CreateRoom, mtx::responses::CreateRoom>(
"/client/r0/createRoom", room_options, callback);
}
void
Client::join_room(const mtx::identifiers::Room &room_id,
std::function<void(const nlohmann::json &, RequestErr)> callback)
Client::join_room(const mtx::identifiers::Room &room_id, Callback<nlohmann::json> callback)
{
auto api_path = "/client/r0/rooms/" + room_id.to_string() + "/join";
......@@ -282,8 +281,7 @@ Client::join_room(const mtx::identifiers::Room &room_id,
}
void
Client::join_room(const std::string &room,
std::function<void(const nlohmann::json &, RequestErr)> callback)
Client::join_room(const std::string &room, Callback<nlohmann::json> callback)
{
auto api_path = "/client/r0/join/" + room;
......@@ -291,8 +289,7 @@ Client::join_room(const std::string &room,
}
void
Client::leave_room(const mtx::identifiers::Room &room_id,
std::function<void(const nlohmann::json &, RequestErr)> callback)
Client::leave_room(const mtx::identifiers::Room &room_id, Callback<nlohmann::json> callback)
{
auto api_path = "/client/r0/rooms/" + room_id.to_string() + "/leave";
......@@ -302,7 +299,7 @@ Client::leave_room(const mtx::identifiers::Room &room_id,
void
Client::invite_user(const mtx::identifiers::Room &room_id,
const std::string &user_id,
std::function<void(const mtx::responses::RoomInvite &, RequestErr)> callback)
Callback<mtx::responses::RoomInvite> callback)
{
mtx::requests::RoomInvite req;
req.user_id = user_id;
......@@ -317,7 +314,7 @@ Client::sync(const std::string &filter,
const std::string &since,
bool full_state,
uint16_t timeout,
std::function<void(const nlohmann::json &, RequestErr)> callback)
Callback<nlohmann::json> callback)
{
std::map<std::string, std::string> params;
......@@ -339,7 +336,7 @@ Client::sync(const std::string &filter,
}
void
Client::versions(std::function<void(const mtx::responses::Versions &, RequestErr)> callback)
Client::versions(Callback<mtx::responses::Versions> callback)
{
get<mtx::responses::Versions>("/client/versions",
[callback](const mtx::responses::Versions &res,
......@@ -351,7 +348,7 @@ void
Client::upload(const std::string &data,
const std::string &content_type,
const std::string &filename,
std::function<void(const mtx::responses::ContentURI &res, RequestErr err)> cb)
Callback<mtx::responses::ContentURI> cb)
{
std::map<std::string, std::string> params = {{"filename", filename}};
......@@ -390,9 +387,7 @@ Client::download(const std::string &server,
}
void
Client::start_typing(const mtx::identifiers::Room &room_id,
uint64_t timeout,
std::function<void(RequestErr)> callback)
Client::start_typing(const mtx::identifiers::Room &room_id, uint64_t timeout, ErrCallback callback)
{
const auto api_path =
"/client/r0/rooms/" + room_id.to_string() + "/typing/" + user_id_.to_string();
......@@ -405,7 +400,7 @@ Client::start_typing(const mtx::identifiers::Room &room_id,
}
void
Client::stop_typing(const mtx::identifiers::Room &room_id, std::function<void(RequestErr)> callback)
Client::stop_typing(const mtx::identifiers::Room &room_id, ErrCallback callback)
{
const auto api_path =
"/client/r0/rooms/" + room_id.to_string() + "/typing/" + user_id_.to_string();
......@@ -423,7 +418,7 @@ Client::messages(const mtx::identifiers::Room &room_id,
PaginationDirection dir,
uint16_t limit,
const std::string &filter,
std::function<void(const mtx::responses::Messages &res, RequestErr err)> callback)
Callback<mtx::responses::Messages> callback)
{
std::map<std::string, std::string> params;
......@@ -447,8 +442,7 @@ Client::messages(const mtx::identifiers::Room &room_id,
}
void
Client::upload_filter(const nlohmann::json &j,
std::function<void(const mtx::responses::FilterId, RequestErr err)> callback)
Client::upload_filter(const nlohmann::json &j, Callback<mtx::responses::FilterId> callback)
{
const auto api_path = "/client/r0/user/" + user_id_.to_string() + "/filter";
......@@ -458,7 +452,7 @@ Client::upload_filter(const nlohmann::json &j,
void
Client::read_event(const mtx::identifiers::Room &room_id,
const mtx::identifiers::Event &event_id,
std::function<void(RequestErr err)> callback)
ErrCallback callback)
{
const auto api_path = "/client/r0/rooms/" + room_id.to_string() + "/read_markers";
......@@ -474,7 +468,7 @@ Client::read_event(const mtx::identifiers::Room &room_id,
void
Client::registration(const std::string &user,
const std::string &pass,
std::function<void(const mtx::responses::Register &, RequestErr)> callback)
Callback<mtx::responses::Register> callback)
{
nlohmann::json req = {{"username", user}, {"password", pass}};
......@@ -482,10 +476,9 @@ Client::registration(const std::string &user,
}
void
Client::flow_register(
const std::string &user,
const std::string &pass,
std::function<void(const mtx::responses::RegistrationFlows &, RequestErr)> callback)
Client::flow_register(const std::string &user,
const std::string &pass,
Callback<mtx::responses::RegistrationFlows> callback)
{
nlohmann::json req = {{"username", user}, {"password", pass}};
......@@ -498,7 +491,7 @@ Client::flow_response(const std::string &user,
const std::string &pass,
const std::string &session,
const std::string &flow_type,
std::function<void(const mtx::responses::Register &, RequestErr)> callback)
Callback<mtx::responses::Register> callback)
{
nlohmann::json req = {{"username", user},
{"password", pass},
......@@ -511,7 +504,7 @@ void
Client::send_to_device(const std::string &event_type,
const std::string &txid,
const nlohmann::json &body,
std::function<void(RequestErr)> callback)
ErrCallback callback)
{
const auto api_path = "/client/r0/sendToDevice/" + event_type + "/" + txid;
put<nlohmann::json>(api_path, body, callback);
......@@ -522,18 +515,16 @@ Client::send_to_device(const std::string &event_type,
//
void
Client::upload_keys(
const mtx::requests::UploadKeys &req,
std::function<void(const mtx::responses::UploadKeys &res, RequestErr err)> callback)
Client::upload_keys(const mtx::requests::UploadKeys &req,
Callback<mtx::responses::UploadKeys> callback)
{
post<mtx::requests::UploadKeys, mtx::responses::UploadKeys>(
"/client/r0/keys/upload", req, callback);
}
void
Client::query_keys(
const mtx::requests::QueryKeys &req,
std::function<void(const mtx::responses::QueryKeys &res, RequestErr err)> callback)
Client::query_keys(const mtx::requests::QueryKeys &req,
Callback<mtx::responses::QueryKeys> callback)
{
post<mtx::requests::QueryKeys, mtx::responses::QueryKeys>(
"/client/r0/keys/query", req, callback);
......@@ -543,7 +534,7 @@ Client::query_keys(
void
Client::claim_keys(const mtx::identifiers::User &user,
const std::vector<std::string> &devices,
std::function<void(const mtx::responses::ClaimKeys &res, RequestErr err)> cb)
Callback<mtx::responses::ClaimKeys> cb)
{
mtx::requests::ClaimKeys req;
......@@ -558,10 +549,9 @@ Client::claim_keys(const mtx::identifiers::User &user,
}
void
Client::key_changes(
const std::string &from,
const std::string &to,
std::function<void(const mtx::responses::KeyChanges &res, RequestErr err)> callback)
Client::key_changes(const std::string &from,
const std::string &to,
Callback<mtx::responses::KeyChanges> callback)
{
std::map<std::string, std::string> params;
......@@ -579,7 +569,7 @@ Client::key_changes(
void
Client::enable_encryption(const mtx::identifiers::Room &room,
std::function<void(const mtx::responses::EventId &, RequestErr)> callback)
Callback<mtx::responses::EventId> callback)
{
using namespace mtx::events;
state::Encryption event;
......
......@@ -38,7 +38,15 @@ to_string(PaginationDirection dir)
return "f";
}
using RequestErr = const boost::optional<mtx::client::errors::ClientError> &;
using RequestErr = const boost::optional<mtx::client::errors::ClientError> &;
using HeaderFields = const boost::optional<boost::beast::http::fields> &;
using ErrCallback = std::function<void(RequestErr)>;
template<class Response>
using Callback = std::function<void(const Response &, RequestErr)>;
template<class Response>
using HeadersCallback = std::function<void(const Response &, HeaderFields, RequestErr)>;
//! The main object that the user will interact.
class Client : public std::enable_shared_from_this<Client>
......@@ -65,68 +73,59 @@ public:
//! Generate a new transaction id.
std::string generate_txn_id() { return utils::random_token(32, false); }
using HeaderFields = const boost::optional<boost::beast::http::fields> &;
//! Perfom login.
void login(const std::string &username,
const std::string &password,
std::function<void(const mtx::responses::Login &response, RequestErr err)>);
Callback<mtx::responses::Login> cb);
//! Register by not expecting a registration flow.
void registration(const std::string &user,
const std::string &pass,
std::function<void(const mtx::responses::Register &, RequestErr)>);
Callback<mtx::responses::Register> cb);
//! Register through a registration flow.
void flow_register(
const std::string &user,
const std::string &pass,
std::function<void(const mtx::responses::RegistrationFlows &, RequestErr)>);
void flow_register(const std::string &user,
const std::string &pass,
Callback<mtx::responses::RegistrationFlows> cb);
//! Complete the flow registration.
void flow_response(const std::string &user,
const std::string &pass,
const std::string &session,
const std::string &flow_type,
std::function<void(const mtx::responses::Register &, RequestErr)>);
Callback<mtx::responses::Register> cb);
//! Perform logout.
void logout(std::function<void(const mtx::responses::Logout &response, RequestErr err)>);
void logout(Callback<mtx::responses::Logout> cb);
//! Change avatar.
void set_avatar_url(const std::string &avatar_url, std::function<void(RequestErr err)>);
void set_avatar_url(const std::string &avatar_url, ErrCallback cb);
//! Change displayname.
void set_displayname(const std::string &displayname, std::function<void(RequestErr err)>);
void set_displayname(const std::string &displayname, ErrCallback cb);
//! Get user profile.
void get_profile(const mtx::identifiers::User &user_id,
std::function<void(const mtx::responses::Profile &, RequestErr)> callback);
Callback<mtx::responses::Profile> cb);
//! Get user avatar URL.
void get_avatar_url(
const mtx::identifiers::User &user_id,
std::function<void(const mtx::responses::AvatarUrl &, RequestErr)> callback);
void get_avatar_url(const mtx::identifiers::User &user_id,
Callback<mtx::responses::AvatarUrl> cb);
//! Create a room with the given options.
void create_room(
const mtx::requests::CreateRoom &room_options,
std::function<void(const mtx::responses::CreateRoom &response, RequestErr err)>);
void create_room(const mtx::requests::CreateRoom &room_options,
Callback<mtx::responses::CreateRoom> cb);
//! Join a room by its room_id.
void join_room(const mtx::identifiers::Room &room_id,
std::function<void(const nlohmann::json &res, RequestErr err)>);
void join_room(const mtx::identifiers::Room &room_id, Callback<nlohmann::json> cb);
//! Join a room by an alias or a room_id.
void join_room(const std::string &room,
std::function<void(const nlohmann::json &res, RequestErr err)>);
void join_room(const std::string &room, Callback<nlohmann::json> cb);
//! Leave a room by its room_id.
void leave_room(const mtx::identifiers::Room &room_id,
std::function<void(const nlohmann::json &res, RequestErr err)>);
void leave_room(const mtx::identifiers::Room &room_id, Callback<nlohmann::json> cb);
//! Invite a user to a room.
void invite_user(
const mtx::identifiers::Room &room_id,
const std::string &user_id,
std::function<void(const mtx::responses::RoomInvite &res, RequestErr err)>);
void invite_user(const mtx::identifiers::Room &room_id,
const std::string &user_id,
Callback<mtx::responses::RoomInvite> cb);
//! Perform sync.
void sync(const std::string &filter,
const std::string &since,
bool full_state,
uint16_t timeout,
std::function<void(const nlohmann::json &res, RequestErr err)>);
Callback<nlohmann::json> cb);
//! Paginate through room messages.
void messages(const mtx::identifiers::Room &room_id,
......@@ -135,25 +134,24 @@ public:
PaginationDirection dir,
uint16_t limit,
const std::string &filter,
std::function<void(const mtx::responses::Messages &res, RequestErr err)>);
Callback<mtx::responses::Messages> cb);
//! Get the supported versions from the server.
void versions(std::function<void(const mtx::responses::Versions &res, RequestErr err)>);
void versions(Callback<mtx::responses::Versions> cb);
//! Mark an event as read.
void read_event(const mtx::identifiers::Room &room_id,
const mtx::identifiers::Event &event_id,
std::function<void(RequestErr err)>);
ErrCallback cb);
//! Upload a filter
void upload_filter(const nlohmann::json &j,
std::function<void(const mtx::responses::FilterId, RequestErr err)>);
void upload_filter(const nlohmann::json &j, Callback<mtx::responses::FilterId> cb);
//! Upload data to the content repository.
void upload(const std::string &data,
const std::string &content_type,
const std::string &filename,
std::function<void(const mtx::responses::ContentURI &res, RequestErr err)> cb);
Callback<mtx::responses::ContentURI> cb);
//! Retrieve data from the content repository.
void download(const std::string &server,
const std::string &media_id,
......@@ -162,51 +160,44 @@ public:
const std::string &original_filename,
RequestErr err)> cb);
//! Send typing notifications to the room.
void start_typing(const mtx::identifiers::Room &room_id,
uint64_t timeout,
std::function<void(RequestErr err)> cb);
void start_typing(const mtx::identifiers::Room &room_id, uint64_t timeout, ErrCallback cb);
//! Remove typing notifications from the room.
void stop_typing(const mtx::identifiers::Room &room_id,
std::function<void(RequestErr err)> cb);
void stop_typing(const mtx::identifiers::Room &room_id, ErrCallback cb);
//! Send a room message with auto-generated transaction id.
template<class Payload, mtx::events::EventType Event>
void send_room_message(
const mtx::identifiers::Room &room_id,
const Payload &payload,
std::function<void(const mtx::responses::EventId &, RequestErr)> callback);
void send_room_message(const mtx::identifiers::Room &room_id,
const Payload &payload,
Callback<mtx::responses::EventId> cb);
//! Send a room message by providing transaction id.
template<class Payload, mtx::events::EventType Event>
void send_room_message(
const mtx::identifiers::Room &room_id,
const std::string &txn_id,
const Payload &payload,
std::function<void(const mtx::responses::EventId &, RequestErr)> callback);
void send_room_message(const mtx::identifiers::Room &room_id,
const std::string &txn_id,
const Payload &payload,
Callback<mtx::responses::EventId> cb);
//! Send a state event by providing the state key.
template<class Payload, mtx::events::EventType Event>
void send_state_event(
const mtx::identifiers::Room &room_id,
const std::string &state_key,
const Payload &payload,
std::function<void(const mtx::responses::EventId &, RequestErr)> callback);
void send_state_event(const mtx::identifiers::Room &room_id,
const std::string &state_key,
const Payload &payload,
Callback<mtx::responses::EventId> cb);
//! Send a state event with an empty state key.
template<class Payload, mtx::events::EventType Event>
void send_state_event(
const mtx::identifiers::Room &room_id,
const Payload &payload,
std::function<void(const mtx::responses::EventId &, RequestErr)> callback);
void send_state_event(const mtx::identifiers::Room &room_id,
const Payload &payload,
Callback<mtx::responses::EventId> cb);
//! Send send-to-device events to a set of client devices with a specified transaction id.
void send_to_device(const std::string &event_type,
const std::string &txid,
const nlohmann::json &body,
std::function<void(RequestErr)> callback);
ErrCallback cb);
//! Send send-to-device events to a set of client devices with a generated transaction id.
void send_to_device(const std::string &event_type,
const nlohmann::json &body,
std::function<void(RequestErr)> callback)
ErrCallback cb)
{
send_to_device(event_type, generate_txn_id(), body, callback);
send_to_device(event_type, generate_txn_id(), body, cb);
}
//
......@@ -214,38 +205,33 @@ public:
//
//! Upload identity keys & one time keys.
void upload_keys(
const mtx::requests::UploadKeys &req,
std::function<void(const mtx::responses::UploadKeys &res, RequestErr err)> cb);
void upload_keys(const mtx::requests::UploadKeys &req,
Callback<mtx::responses::UploadKeys> cb);
//! Returns the current devices and identity keys for the given users.
void query_keys(
const mtx::requests::QueryKeys &req,
std::function<void(const mtx::responses::QueryKeys &res, RequestErr err)> cb);
void query_keys(const mtx::requests::QueryKeys &req,
Callback<mtx::responses::QueryKeys> cb);
//! Claims one-time keys for use in pre-key messages.
void claim_keys(
const mtx::identifiers::User &user,
const std::vector<std::string> &devices,
std::function<void(const mtx::responses::ClaimKeys &res, RequestErr err)> cb);
void claim_keys(const mtx::identifiers::User &user,
const std::vector<std::string> &devices,
Callback<mtx::responses::ClaimKeys> cb);
//! Gets a list of users who have updated their device identity keys
//! since a previous sync token.
void key_changes(
const std::string &from,
const std::string &to,
std::function<void(const mtx::responses::KeyChanges &res, RequestErr err)> cb);
void key_changes(const std::string &from,
const std::string &to,
Callback<mtx::responses::KeyChanges> cb);
//! Enable encryption in a room by sending a `m.room.encryption` state event.
void enable_encryption(
const mtx::identifiers::Room &room,
std::function<void(const mtx::responses::EventId &res, RequestErr err)>);
void enable_encryption(const mtx::identifiers::Room &room,
Callback<mtx::responses::EventId> cb);
private:
template<class Request, class Response>
void post(const std::string &endpoint,
const Request &req,
std::function<void(const Response &, RequestErr)>,
Callback<Response> cb,
bool requires_auth = true,
const std::string &content_type = "application/json");
......@@ -253,23 +239,22 @@ private:
template<class Request, class Response>
void put(const std::string &endpoint,
const Request &req,
std::function<void(const Response &, RequestErr)>,
Callback<Response> cb,
bool requires_auth = true);
template<class Request>
void put(const std::string &endpoint,
const Request &req,
std::function<void(RequestErr err)>,
ErrCallback cb,
bool requires_auth = true);
template<class Response>
void get(const std::string &endpoint,
std::function<void(const Response &res, HeaderFields fields, RequestErr err)>,
HeadersCallback<Response> cb,
bool requires_auth = true);
template<class Response>
std::shared_ptr<Session> create_session(
std::function<void(const Response &res, HeaderFields fields, RequestErr err)> callback);
std::shared_ptr<Session> create_session(HeadersCallback<Response> callback);
//! Setup http header with the access token if needed.
void setup_auth(std::shared_ptr<Session> session, bool auth);
......@@ -344,7 +329,7 @@ template<class Request, class Response>
void
mtx::client::Client::post(const std::string &endpoint,
const Request &req,
std::function<void(const Response &, RequestErr)> callback,
Callback<Response> callback,
bool requires_auth,
const std::string &content_type)
{
......@@ -373,7 +358,7 @@ template<class Request, class Response>
void
mtx::client::Client::put(const std::string &endpoint,
const Request &req,
std::function<void(const Response &, RequestErr)> callback,
Callback<Response> callback,
bool requires_auth)
{
std::shared_ptr<Session> session = create_session<Response>(
......@@ -401,7 +386,7 @@ template<class Request>
void
mtx::client::Client::put(const std::string &endpoint,
const Request &req,
std::function<void(RequestErr)> callback,
ErrCallback callback,
bool requires_auth)
{
mtx::client::Client::put<Request, mtx::responses::Empty>(
......@@ -414,7 +399,7 @@ mtx::client::Client::put(const std::string &endpoint,
template<class Response>
void
mtx::client::Client::get(const std::string &endpoint,
std::function<void(const Response &, HeaderFields, RequestErr)> callback,
HeadersCallback<Response> callback,
bool requires_auth)
{
std::shared_ptr<Session> session = create_session<Response>(callback);
......@@ -436,8 +421,7 @@ mtx::client::Client::get(const std::string &endpoint,
template<class Response>
std::shared_ptr<mtx::client::Session>
mtx::client::Client::create_session(
std::function<void(const Response &, HeaderFields, RequestErr)> callback)
mtx::client::Client::create_session(HeadersCallback<Response> callback)
{
boost::asio::ssl::context ssl_ctx{boost::asio::ssl::context::sslv23_client};
......@@ -533,21 +517,19 @@ mtx::client::Client::create_session(
template<class Payload, mtx::events::EventType Event>
void
mtx::client::Client::send_room_message(
const mtx::identifiers::Room &room_id,
const Payload &payload,
std::function<void(const mtx::responses::EventId &, RequestErr)> callback)
mtx::client::Client::send_room_message(const mtx::identifiers::Room &room_id,
const Payload &payload,
Callback<mtx::responses::EventId> callback)
{
send_room_message<Payload, Event>(room_id, generate_txn_id(), payload, callback);
}
template<class Payload, mtx::events::EventType Event>
void
mtx::client::Client::send_room_message(
const mtx::identifiers::Room &room_id,
const std::string &txn_id,
const Payload &payload,
std::function<void(const mtx::responses::EventId &, RequestErr)> callback)
mtx::client::Client::send_room_message(const mtx::identifiers::Room &room_id,
const std::string &txn_id,
const Payload &payload,
Callback<mtx::responses::EventId> callback)
{
const auto api_path = "/client/r0/rooms/" + room_id.to_string() + "/send/" +
mtx::events::to_string(Event) + "/" + txn_id;
......@@ -557,11 +539,10 @@ mtx::client::Client::send_room_message(
template<class Payload, mtx::events::EventType Event>
void
mtx::client::Client::send_state_event(
const mtx::identifiers::Room &room_id,
const std::string &state_key,
const Payload &payload,
std::function<void(const mtx::responses::EventId &, RequestErr)> callback)
mtx::client::Client::send_state_event(const mtx::identifiers::Room &room_id,
const std::string &state_key,
const Payload &payload,
Callback<mtx::responses::EventId> callback)
{
const auto api_path = "/client/r0/rooms/" + room_id.to_string() + "/state/" +
mtx::events::to_string(Event) + "/" + state_key;
......@@ -571,10 +552,9 @@ mtx::client::Client::send_state_event(
template<class Payload, mtx::events::EventType Event>
void
mtx::client::Client::send_state_event(
const mtx::identifiers::Room &room_id,
const Payload &payload,
std::function<void(const mtx::responses::EventId &, RequestErr)> callback)
mtx::client::Client::send_state_event(const mtx::identifiers::Room &room_id,
const Payload &payload,
Callback<mtx::responses::EventId> callback)
{
send_state_event<Payload, Event>(room_id, "", payload, callback);
}
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