/** This file is a part of rexy's matrix client Copyright (C) 2019-2020 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 . */ #ifndef MATRIX_REST_CLIENT_URL_LIST_HPP #define MATRIX_REST_CLIENT_URL_LIST_HPP #include "matrix/session_info.hpp" #include #include "matrix/rest/urls_common.hpp" namespace matrix::rest{ class client_url_list { private: rexy::string m_create_room; rexy::string m_file_upload; rexy::string m_room_list; rexy::string m_alias_lookup; rexy::string m_profile_picture; public: client_url_list(void) = default; client_url_list(const session_info&); client_url_list(const client_url_list&) = default; client_url_list(client_url_list&&) = default; client_url_list& operator=(const client_url_list&) = default; client_url_list& operator=(client_url_list&&) = default; const rexy::string& create_room(void)const; const rexy::string& file_upload(void)const; const rexy::string& room_list(void)const; const rexy::string& alias_lookup(void)const; const rexy::string& profile_picture(void)const; rexy::string displayname(const session_info& session, const rexy::string_base& userid)const; rexy::string file_download(const session_info& session, const rexy::string_base& mediaid); rexy::string file_thumbnail(const session_info& session, const rexy::string_base& fileurl, int width, int height, const rexy::string_base& method)const; rexy::string presence(const session_info& session, const rexy::string_base& userid)const; rexy::string sync(const session_info& session, const raii::rjp_string& batch, const rexy::string& timeout); void repopulate(const session_info&); void invalidate(void); private: static rexy::string get_server_media_string(const rexy::string_base& url); }; } #endif