From 5bd108c8fbe8cb9c3ae041782f178ce7a90d44b9 Mon Sep 17 00:00:00 2001 From: rexy712 Date: Sat, 27 Jul 2019 12:34:31 -0700 Subject: [PATCH] added upgrade function to room --- include/matrix/room_url_list.hpp | 2 ++ include/matrix/roomcxn.hpp | 1 + src/matrix/room_url_list.cpp | 7 ++++++- src/matrix/roomcxn.cpp | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/include/matrix/room_url_list.hpp b/include/matrix/room_url_list.hpp index 8340c4c..3b7875d 100644 --- a/include/matrix/room_url_list.hpp +++ b/include/matrix/room_url_list.hpp @@ -34,6 +34,7 @@ namespace matrix{ raii::string m_unban; raii::string m_invite; raii::string m_members; + raii::string m_upgrade; 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); const raii::string& join_room(void)const; @@ -47,6 +48,7 @@ namespace matrix{ const raii::string& unban(void)const; const raii::string& invite(void)const; const raii::string& room_members(void)const; + const raii::string& upgrade(void)const; void repopulate(const raii::string_base& homeserver, const raii::string_base& access_token, const raii::string_base& userid, const raii::string_base& roomid); void invalidate_accesstoken(void); diff --git a/include/matrix/roomcxn.hpp b/include/matrix/roomcxn.hpp index 4b9cb1d..33f9557 100644 --- a/include/matrix/roomcxn.hpp +++ b/include/matrix/roomcxn.hpp @@ -71,6 +71,7 @@ namespace matrix{ //meta stuff void regenerate_urls(void); + raii::rjp_string upgrade(int version)const; private: raii::rjp_string _send_message(const raii::string_base& msg)const; diff --git a/src/matrix/room_url_list.cpp b/src/matrix/room_url_list.cpp index f56b95b..7b9e582 100644 --- a/src/matrix/room_url_list.cpp +++ b/src/matrix/room_url_list.cpp @@ -28,7 +28,8 @@ namespace matrix{ 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_invite(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/invite?access_token=" + access_token), - m_members(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/members?access_token=" + access_token){} + m_members(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/members?access_token=" + access_token), + m_upgrade(s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/upgrade?access_token=" + access_token){} const raii::string& room_url_list::join_room(void)const{ return m_join; } @@ -65,6 +66,9 @@ namespace matrix{ const raii::string& room_url_list::room_members(void)const{ return m_members; } + const raii::string& room_url_list::upgrade(void)const{ + return m_upgrade; + } 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; @@ -74,6 +78,7 @@ namespace matrix{ 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_members = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/members?access_token=" + access_token; + m_upgrade = s_proto + homeserver + "/_matrix/client/r0/rooms/" + roomid + "/upgrade?access_token=" + access_token; } } diff --git a/src/matrix/roomcxn.cpp b/src/matrix/roomcxn.cpp index 94e5100..af40cd6 100644 --- a/src/matrix/roomcxn.cpp +++ b/src/matrix/roomcxn.cpp @@ -165,6 +165,9 @@ namespace matrix{ void roomcxn::regenerate_urls(void){ m_urls.repopulate(m_ses->homeserver, m_ses->access_token, m_ses->userid, m_roomid); } + 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(), "replacement_room"_ss); + } raii::rjp_string roomcxn::_send_message(const raii::string_base& msg)const{ return send_custom_event(msg, "m.room.message"_ss);