/** This file is a part of rexy's matrix client Copyright (C) 2019 rexy712 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ #include "matrix/rest/room_url_list.hpp" #include "raii/util.hpp" namespace matrix{ room_url_list::room_url_list(const session_info& session, const raii::string_base& roomid): m_typing(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/typing/" + session.userid + "?access_token=" + session.access_token), m_kick(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/kick?access_token=" + session.access_token), m_ban(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/ban?access_token=" + session.access_token), m_unban(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/unban?access_token=" + session.access_token), m_invite(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/invite?access_token=" + session.access_token), m_members(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/joined_members?access_token=" + session.access_token){} raii::string room_url_list::join(const session_info& session, const raii::string_base& roomid)const{ return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/leave?access_token=" + session.access_token); } raii::string room_url_list::leave(const session_info& session, const raii::string_base& roomid)const{ return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/join?access_token=" + session.access_token); } raii::string room_url_list::forget(const session_info& session, const raii::string_base& roomid)const{ return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/forget?access_token=" + session.access_token); } raii::string room_url_list::upgrade(const session_info& session, const raii::string_base& roomid)const{ return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/upgrade?access_token=" + session.access_token); } raii::string room_url_list::read_receipt(const session_info& session, const raii::string_base& roomid, const raii::string_base& eventid)const{ return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/receipt/m.read/" + eventid + "?access_token=" + session.access_token); } raii::string room_url_list::send(const session_info& session, const raii::string_base& roomid, const raii::string_base& eventtype)const{ return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/send/" + eventtype + "?access_token=" + session.access_token); } raii::string room_url_list::redact(const session_info& session, const raii::string_base& roomid, const raii::string_base& eventid)const{ return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/redact/" + eventid + "/0?access_token=" + session.access_token); } raii::string room_url_list::event(const session_info& session, const raii::string_base& roomid, const raii::string_base& eventid)const{ return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/event/" + eventid + "?access_token=" + session.access_token); } raii::string room_url_list::power_level(const session_info& session, const raii::string_base& roomid)const{ return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/state/m.room.power_levels?access_token=" + session.access_token); } const raii::string& room_url_list::typing(void)const{ return m_typing; } const raii::string& room_url_list::kick(void)const{ return m_kick; } const raii::string& room_url_list::ban(void)const{ return m_ban; } const raii::string& room_url_list::unban(void)const{ return m_unban; } const raii::string& room_url_list::invite(void)const{ return m_invite; } const raii::string& room_url_list::room_members(void)const{ return m_members; } raii::string room_url_list::messages(const session_info& session, const raii::string_base& roomid, const raii::string_base& from, const raii::string_base& to, const raii::string_base& dir, int limit)const { if(to) return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/messages?from=" + from + "&to=" + to + "&limit=" + raii::itostr(limit) + "&dir=" + dir + "&access_token=" + session.access_token); else return raii::string(s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/messages?from=" + from + "&limit=" + raii::itostr(limit) + "&dir=" + dir + "&access_token=" + session.access_token); } void room_url_list::repopulate(const session_info& session, const raii::string_base& roomid){ m_typing = s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/typing/" + session.userid + "?access_token=" + session.access_token; m_kick = s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/kick?access_token=" + session.access_token; m_ban = s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/ban?access_token=" + session.access_token; m_unban = s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/unban?access_token=" + session.access_token; m_invite = s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/invite?access_token=" + session.access_token; m_members = s_proto + session.homeserver + "/_matrix/client/r0/rooms/" + roomid + "/joined_members?access_token=" + session.access_token; } }