Add forget to roomcxn

This commit is contained in:
rexy712 2019-10-27 09:02:09 -07:00
parent dfff8fca0a
commit 76df53d003
6 changed files with 24 additions and 25 deletions

View File

@ -22,7 +22,6 @@ matrix:
3:filters 3:filters
room: room:
3:message query filters 3:message query filters
2:forget room
1:send custom html messages 1:send custom html messages
1:set new room alias 1:set new room alias
2:delete room alias 2:delete room alias

View File

@ -26,19 +26,18 @@ namespace matrix{
class room_url_list class room_url_list
{ {
private: private:
raii::string m_join;
raii::string m_leave;
raii::string m_typing; raii::string m_typing;
raii::string m_kick; raii::string m_kick;
raii::string m_ban; raii::string m_ban;
raii::string m_unban; raii::string m_unban;
raii::string m_invite; raii::string m_invite;
raii::string m_members; raii::string m_members;
raii::string m_upgrade;
public: public:
room_url_list(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& userid); room_url_list(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& userid);
const raii::string& join_room(void)const; raii::string join(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const;
const raii::string& leave_room(void)const; raii::string leave(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const;
raii::string forget(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const;
raii::string upgrade(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const;
raii::string read_receipt(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventid)const; raii::string read_receipt(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventid)const;
raii::string send(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventtype)const; raii::string send(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventtype)const;
raii::string redact(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventid)const; raii::string redact(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventid)const;
@ -48,7 +47,6 @@ namespace matrix{
const raii::string& unban(void)const; const raii::string& unban(void)const;
const raii::string& invite(void)const; const raii::string& invite(void)const;
const raii::string& room_members(void)const; const raii::string& room_members(void)const;
const raii::string& upgrade(void)const;
raii::string messages(const raii::string_base& homeserver, const raii::string_base& access_token, raii::string messages(const raii::string_base& homeserver, const raii::string_base& access_token,
const raii::string_base& roomid, const raii::string_base& from, const raii::string_base& to, const raii::string_base& roomid, const raii::string_base& from, const raii::string_base& to,
const raii::string_base& dir, int limit)const; const raii::string_base& dir, int limit)const;

View File

@ -51,6 +51,7 @@ namespace matrix{
//membership //membership
netreturn<void> join(void)const; netreturn<void> join(void)const;
netreturn<void> leave(void)const; netreturn<void> leave(void)const;
netreturn<void> forget(void)const;
[[deprecated("Use roomcxn::join_room instead")]] [[deprecated("Use roomcxn::join_room instead")]]
netreturn<void> accept_invite(void)const; netreturn<void> accept_invite(void)const;
[[deprecated("Use roomcxn::leave_room instead")]] [[deprecated("Use roomcxn::leave_room instead")]]

View File

@ -22,20 +22,23 @@
namespace matrix{ namespace matrix{
room_url_list::room_url_list(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& userid): room_url_list::room_url_list(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& userid):
m_join(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/join?access_token=" + access_token),
m_leave(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/leave?access_token=" + access_token),
m_typing(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/typing/" + userid + "?access_token=" + access_token), m_typing(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/typing/" + userid + "?access_token=" + access_token),
m_kick(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/kick?access_token=" + access_token), m_kick(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/kick?access_token=" + access_token),
m_ban(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/ban?access_token=" + access_token), m_ban(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/ban?access_token=" + access_token),
m_unban(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/unban?access_token=" + access_token), m_unban(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/unban?access_token=" + access_token),
m_invite(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/invite?access_token=" + access_token), m_invite(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/invite?access_token=" + access_token),
m_members(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/joined_members?access_token=" + access_token), m_members(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/joined_members?access_token=" + access_token){}
m_upgrade(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/upgrade?access_token=" + access_token){} raii::string room_url_list::join(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{
const raii::string& room_url_list::join_room(void)const{ return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/leave?access_token=" + access_token);
return m_join;
} }
const raii::string& room_url_list::leave_room(void)const{ raii::string room_url_list::leave(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{
return m_leave; return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/join?access_token=" + access_token);
}
raii::string room_url_list::forget(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{
return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/forget?access_token=" + access_token);
}
raii::string room_url_list::upgrade(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid)const{
return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/upgrade?access_token=" + access_token);
} }
raii::string room_url_list::read_receipt(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventid)const{ raii::string room_url_list::read_receipt(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& roomid, const raii::string_base& eventid)const{
return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/receipt/m.read/" + eventid + "?access_token=" + access_token); return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/receipt/m.read/" + eventid + "?access_token=" + access_token);
@ -67,9 +70,6 @@ namespace matrix{
const raii::string& room_url_list::room_members(void)const{ const raii::string& room_url_list::room_members(void)const{
return m_members; return m_members;
} }
const raii::string& room_url_list::upgrade(void)const{
return m_upgrade;
}
raii::string room_url_list::messages(const raii::string_base& homeserver, const raii::string_base& access_token, raii::string room_url_list::messages(const raii::string_base& homeserver, const raii::string_base& access_token,
const raii::string_base& roomid, const raii::string_base& from, const raii::string_base& to, const raii::string_base& roomid, const raii::string_base& from, const raii::string_base& to,
const raii::string_base& dir, int limit)const const raii::string_base& dir, int limit)const
@ -80,15 +80,12 @@ namespace matrix{
return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/messages?from=" + from + "&limit=" + raii::itostr(limit) + "&dir=" + dir + "&access_token=" + access_token); return raii::string(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/messages?from=" + from + "&limit=" + raii::itostr(limit) + "&dir=" + dir + "&access_token=" + access_token);
} }
void room_url_list::repopulate(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& userid, const raii::string_base& roomid){ void room_url_list::repopulate(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& userid, const raii::string_base& roomid){
m_join = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/join?access_token=" + access_token;
m_leave = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/leave?access_token=" + access_token;
m_typing = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/typing/" + userid + "?access_token=" + access_token; m_typing = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/typing/" + userid + "?access_token=" + access_token;
m_kick = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/kick?access_token=" + access_token; m_kick = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/kick?access_token=" + access_token;
m_ban = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/ban?access_token=" + access_token; m_ban = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/ban?access_token=" + access_token;
m_unban = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/unban?access_token=" + access_token; m_unban = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/unban?access_token=" + access_token;
m_invite = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/invite?access_token=" + access_token; m_invite = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/invite?access_token=" + access_token;
m_members = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/joined_members?access_token=" + access_token; m_members = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/joined_members?access_token=" + access_token;
m_upgrade = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/upgrade?access_token=" + access_token;
} }
} }

View File

@ -35,11 +35,15 @@ namespace matrix{
m_urls(ses->homeserver, ses->access_token, m_curl.encode(m_roomid), ses->userid){} m_urls(ses->homeserver, ses->access_token, m_curl.encode(m_roomid), ses->userid){}
netreturn<void> roomcxn::join(void)const{ netreturn<void> roomcxn::join(void)const{
raii::string response = _post_curl(raii::string(), m_urls.join_room(), raii::curl_llist()); raii::string response = _post_curl(raii::string(), m_urls.join(m_ses->homeserver, m_ses->access_token, m_roomid), raii::curl_llist());
return _create_netreturn(response, http_status()); return _create_netreturn(response, http_status());
} }
netreturn<void> roomcxn::leave(void)const{ netreturn<void> roomcxn::leave(void)const{
raii::string response = _post_curl(raii::string(), m_urls.leave_room(), raii::curl_llist()); raii::string response = _post_curl(raii::string(), m_urls.leave(m_ses->homeserver, m_ses->access_token, m_roomid), raii::curl_llist());
return _create_netreturn(response, http_status());
}
netreturn<void> roomcxn::forget(void)const{
raii::string response = _post_curl(raii::string(), m_urls.forget(m_ses->homeserver, m_ses->access_token, m_roomid), raii::curl_llist());
return _create_netreturn(response, http_status()); return _create_netreturn(response, http_status());
} }
netreturn<void> roomcxn::accept_invite(void)const{ netreturn<void> roomcxn::accept_invite(void)const{
@ -168,7 +172,7 @@ namespace matrix{
m_urls.repopulate(m_ses->homeserver, m_ses->access_token, m_ses->userid, m_roomid); m_urls.repopulate(m_ses->homeserver, m_ses->access_token, m_ses->userid, m_roomid);
} }
netreturn<raii::rjp_string> roomcxn::upgrade(int version)const{ netreturn<raii::rjp_string> roomcxn::upgrade(int version)const{
return _post_and_find(raii::string("{\"new_version\":\""_ss + raii::itostr(version) + "\"}"_ss), m_urls.upgrade(), raii::curl_llist(), "event_id"_ss); return _post_and_find(raii::string("{\"new_version\":\""_ss + raii::itostr(version) + "\"}"_ss), m_urls.upgrade(m_ses->homeserver, m_ses->access_token, m_roomid), raii::curl_llist(), "event_id"_ss);
} }
netreturn<raii::rjp_string> roomcxn::_send_message(const raii::string_base& msg)const{ netreturn<raii::rjp_string> roomcxn::_send_message(const raii::string_base& msg)const{

View File

@ -76,7 +76,7 @@ namespace matrix{
raii::rjp_ptr root(rjp_parse(reply)); raii::rjp_ptr root(rjp_parse(reply));
netreturn<void> retval = _create_netreturn(root, http_status()); netreturn<void> retval = _create_netreturn(root, http_status());
if(!root) if(!root)
return retvl; return retval;
//attempt to change password via username/password login //attempt to change password via username/password login
RJP_search_res res = rjp_search_member(root.get(), "session", 0); RJP_search_res res = rjp_search_member(root.get(), "session", 0);