From 232b669d448567f17d074eaaffe3cf174281debb Mon Sep 17 00:00:00 2001 From: rexy712 Date: Thu, 2 Jan 2020 15:24:38 -0800 Subject: [PATCH] Work on standard strings namespaces --- include/matrix/json_targets.hpp | 230 ++++++++++++++++++++++++-------- src/matrix/client.cpp | 14 +- src/matrix/fat_strings.cpp | 126 ++++++++--------- src/matrix/roomcxn.cpp | 10 +- src/matrix/session.cpp | 8 +- 5 files changed, 254 insertions(+), 134 deletions(-) diff --git a/include/matrix/json_targets.hpp b/include/matrix/json_targets.hpp index 227fd3f..e586457 100644 --- a/include/matrix/json_targets.hpp +++ b/include/matrix/json_targets.hpp @@ -8,70 +8,190 @@ namespace matrix::json{ constexpr raii::static_string True(void){return "true"_ss;} constexpr raii::static_string False(void){return "false"_ss;} constexpr raii::static_string reason(void){return "reason"_ss;} + constexpr raii::static_string error(void){return "error"_ss;} + constexpr raii::static_string errcode(void){return "errcode"_ss;} + constexpr raii::static_string retry_after(void){return "retry_after_ms"_ss;} - namespace message{ - constexpr raii::static_string body(void){return "body"_ss;} - constexpr raii::static_string info(void){return "info"_ss;} - namespace infobody{ - constexpr raii::static_string height(void){return "h"_ss;} - constexpr raii::static_string width(void){return "w"_ss;} - constexpr raii::static_string mimetype(void){return "mimetype"_ss;} - constexpr raii::static_string size(void){return "size"_ss;} - constexpr raii::static_string thumbinfo(void){return "thumbnail_info"_ss;} - namespace thumbnail{ - constexpr raii::static_string height(void){return message::infobody::height();} - constexpr raii::static_string width(void){return message::infobody::width();} - constexpr raii::static_string mimetype(void){return message::infobody::mimetype();} - constexpr raii::static_string size(void){return message::infobody::size();} + namespace keys{ + namespace message{ + constexpr raii::static_string body(void){return "body"_ss;} + constexpr raii::static_string info(void){return "info"_ss;} + namespace infobody{ + constexpr raii::static_string height(void){return "h"_ss;} + constexpr raii::static_string width(void){return "w"_ss;} + constexpr raii::static_string mimetype(void){return "mimetype"_ss;} + constexpr raii::static_string size(void){return "size"_ss;} + constexpr raii::static_string thumbinfo(void){return "thumbnail_info"_ss;} + namespace thumbnail{ + constexpr raii::static_string height(void){return message::infobody::height();} + constexpr raii::static_string width(void){return message::infobody::width();} + constexpr raii::static_string mimetype(void){return message::infobody::mimetype();} + constexpr raii::static_string size(void){return message::infobody::size();} + } + constexpr raii::static_string thumburl(void){return "thumbnail_url"_ss;} } - constexpr raii::static_string thumburl(void){return "thumbnail_url"_ss;} + constexpr raii::static_string msgtype(void){return "msgtype"_ss;} + constexpr raii::static_string url(void){return "url"_ss;} } - constexpr raii::static_string msgtype(void){return "msgtype"_ss;} - constexpr raii::static_string url(void){return "url"_ss;} - } - namespace auth{ - constexpr raii::static_string type(void){return "type"_ss;} - constexpr raii::static_string identifier(void){return "identifier"_ss;} - constexpr raii::static_string password(void){return "password"_ss;} - constexpr raii::static_string newpassword(void){return "new_password"_ss;} - constexpr raii::static_string auth(void){return "auth"_ss;} - namespace authbody{ - constexpr raii::static_string type(void){return auth::type();} - constexpr raii::static_string session(void){return "session"_ss;} + namespace auth{ + constexpr raii::static_string type(void){return "type"_ss;} + constexpr raii::static_string medium(void){return "medium"_ss;} + constexpr raii::static_string address(void){return "address"_ss;} + constexpr raii::static_string identifier(void){return "identifier"_ss;} constexpr raii::static_string user(void){return "user"_ss;} - constexpr raii::static_string password(void){return auth::password();} + constexpr raii::static_string password(void){return "password"_ss;} + constexpr raii::static_string token(void){return "token"_ss;} + constexpr raii::static_string device_id(void){return "device_id"_ss;} + constexpr raii::static_string initial_device_display_name(void){return "initial_device_display_name"_ss;} + constexpr raii::static_string newpassword(void){return "new_password"_ss;} + constexpr raii::static_string auth(void){return "auth"_ss;} + constexpr raii::static_string userid(void){return "user_id"_ss;} + constexpr raii::static_string accesstoken(void){return "access_token"_ss;} + constexpr raii::static_string home_server(void){return "home_server"_ss;} + constexpr raii::static_string well_known(void){return "well_known"_ss;} + constexpr raii::static_string base_url(void){return "base_url"_ss;} + constexpr raii::static_string inhibit_login(void){return "inhibit_login"_ss;} + namespace authbody{ + constexpr raii::static_string type(void){return auth::type();} + constexpr raii::static_string session(void){return "session"_ss;} + constexpr raii::static_string user(void){return auth::user();} + constexpr raii::static_string password(void){return auth::password();} + } + namespace identifierbody{ + constexpr raii::static_string type(void){return auth::type();} + constexpr raii::static_string medium(void){return auth::medium();} + constexpr raii::static_string address(void){return auth::address();} + constexpr raii::static_string session(void){return auth::authbody::session();} + constexpr raii::static_string user(void){return auth::authbody::user();} + constexpr raii::static_string password(void){return auth::password();} + } } - namespace identifierbody{ - constexpr raii::static_string type(void){return auth::type();} - constexpr raii::static_string session(void){return auth::authbody::session();} - constexpr raii::static_string user(void){return auth::authbody::user();} - constexpr raii::static_string password(void){return auth::password();} + namespace rooms{ + constexpr raii::static_string joined(void){return "joined"_ss;} + constexpr raii::static_string eventid(void){return "event_id"_ss;} + constexpr raii::static_string chunk(void){return "chunk"_ss;} + constexpr raii::static_string newversion(void){return "new_version"_ss;} + } + namespace client{ + constexpr raii::static_string presence(void){return "presence"_ss;} + constexpr raii::static_string displayname(void){return "displayname"_ss;} + constexpr raii::static_string avatarurl(void){return "avatar_url"_ss;} + constexpr raii::static_string roomid(void){return "room_id"_ss;} + constexpr raii::static_string joinedrooms(void){return "joined_rooms"_ss;} + constexpr raii::static_string contenturi(void){return "content_uri"_ss;} + constexpr raii::static_string name(void){return "name"_ss;} + constexpr raii::static_string roomaliasname(void){return "room_alias_name"_ss;} + constexpr raii::static_string typing(void){return "typing"_ss;} + constexpr raii::static_string timeout(void){return "timeout"_ss;} + } + namespace session{ + constexpr raii::static_string session(void){return "session"_ss;} } } + namespace stdstrings{ + namespace error{ - namespace rooms{ - constexpr raii::static_string joined(void){return "joined"_ss;} - constexpr raii::static_string eventid(void){return "event_id"_ss;} - constexpr raii::static_string chunk(void){return "chunk"_ss;} - constexpr raii::static_string newversion(void){return "new_version"_ss;} - } - namespace client{ - constexpr raii::static_string presence(void){return "presence"_ss;} - constexpr raii::static_string displayname(void){return "displayname"_ss;} - constexpr raii::static_string avatarurl(void){return "avatar_url"_ss;} - constexpr raii::static_string roomid(void){return "room_id"_ss;} - constexpr raii::static_string joinedrooms(void){return "joined_rooms"_ss;} - constexpr raii::static_string contenturi(void){return "content_uri"_ss;} - constexpr raii::static_string name(void){return "name"_ss;} - constexpr raii::static_string roomaliasname(void){return "room_alias_name"_ss;} - constexpr raii::static_string typing(void){return "typing"_ss;} - constexpr raii::static_string timeout(void){return "timeout"_ss;} - } - namespace session{ - constexpr raii::static_string session(void){return "session"_ss;} - constexpr raii::static_string userid(void){return "user_id"_ss;} - constexpr raii::static_string accesstoken(void){return "access_token"_ss;} + } + namespace events{ + constexpr raii::static_string homeserver(void){return "m.homeserver"_ss;} + constexpr raii::static_string identity_server(void){return "m.identity_server"_ss;} + constexpr raii::static_string presence(void){return "m.presence"_ss;} + constexpr raii::static_string direct(void){return "m.direct"_ss;} + constexpr raii::static_string ignored_user_list(void){return "m.ignored_user_list"_ss;} + constexpr raii::static_string joined_member_count(void){return "m.joined_member_count"_ss;} + constexpr raii::static_string invited_member_count(void){return "m.invited_member_count"_ss;} + + namespace key{ + constexpr raii::static_string verification_request(void){return "m.key.verification.request"_ss;} + constexpr raii::static_string verification_start(void){return "m.key.verification.start"_ss;} + constexpr raii::static_string verification_cancel(void){return "m.key.verification.cancel"_ss;} + constexpr raii::static_string verification_accept(void){return "m.key.verification.accept"_ss;} + constexpr raii::static_string verification_key(void){return "m.key.verification.key"_ss;} + constexpr raii::static_string verification_mac(void){return "m.key.verification.mac"_ss;} + } + namespace login{ + constexpr raii::static_string password(void){return "m.login.password"_ss;} + constexpr raii::static_string recaptcha(void){return "m.login.recaptcha"_ss;} + constexpr raii::static_string oauth2(void){return "m.login.oauth2"_ss;} + constexpr raii::static_string email(void){return "m.login.email.identity"_ss;} + constexpr raii::static_string msisdn(void){return "m.login.msisdn"_ss;} + constexpr raii::static_string token(void){return "m.login.token"_ss;} + constexpr raii::static_string dummy(void){return "m.login.dummy"_ss;} + } + namespace id{ + constexpr raii::static_string user(void){return "m.id.user"_ss;} + constexpr raii::static_string thirdparty(void){return "m.id.thirdparty"_ss;} + constexpr raii::static_string phone(void){return "m.id.phone"_ss;} + } + namespace rule{ + constexpr raii::static_string rules(void){return "m.push_rules"_ss;} + constexpr raii::static_string master(void){return ".m.rule.master"_ss;} + constexpr raii::static_string suppress_notices(void){return ".m.rule.suppress_notices"_ss;} + constexpr raii::static_string invite_for_me(void){return ".m.rule.invite_for_me"_ss;} + constexpr raii::static_string member_event(void){return ".m.rule.member_event"_ss;} + constexpr raii::static_string contains_displayname(void){return ".m.rule.contains_display_name"_ss;} + constexpr raii::static_string tombstone(void){return ".m.rule.tombstone"_ss;} + constexpr raii::static_string roomnotif(void){return ".m.rule.roomnotif"_ss;} + constexpr raii::static_string contains_username(void){return ".m.rule.contains_user_name"_ss;} + constexpr raii::static_string call(void){return ".m.rule.call"_ss;} + constexpr raii::static_string encrypted_one_to_one(void){return ".m.rule.encrypted_room_one_to_one"_ss;} + constexpr raii::static_string message(void){return ".m.rule.message"_ss;} + constexpr raii::static_string encrypted(void){return ".m.rule.encrypted"_ss;} + } + namespace e2e{ + constexpr raii::static_string curve_aes_sha2(void){return "m.olm.v1.curve25519-aes-sha2"_ss;} + constexpr raii::static_string aes_sha2(void){return "m.megolm.v1.aes-sha2"_ss;} + constexpr raii::static_string encryption(void){return "m.room.encryption"_ss;} + constexpr raii::static_string key(void){return "m.room_key"_ss;} + constexpr raii::static_string key_request(void){return "m.room_key_request"_ss;} + constexpr raii::static_string forwarded_key(void){return "m.forwarded_room_key"_ss;} + constexpr raii::static_string dummy(void){return "m.dummy"_ss;} + } + namespace room{ + constexpr raii::static_string aliases(void){return "m.room.aliases"_ss;} + constexpr raii::static_string canonical_alias(void){return "m.room.canonical_alias"_ss;} + constexpr raii::static_string create(void){return "m.room.create"_ss;} + constexpr raii::static_string join_rules(void){return "m.room.join_rules"_ss;} + constexpr raii::static_string member(void){return "m.room.member"_ss;} + constexpr raii::static_string power_levels(void){return "m.room.power_levels"_ss;} + constexpr raii::static_string redaction(void){return "m.room.redaction"_ss;} + constexpr raii::static_string heroes(void){return "m.heroes"_ss;} + constexpr raii::static_string room_message(void){return "m.room.message"_ss;} + constexpr raii::static_string sticker(void){return "m.sticker"_ss;} + [[deprecated]] constexpr raii::static_string message_feedback(void){return "m.room.message.feedback"_ss;} + constexpr raii::static_string name(void){return "m.room.name"_ss;} + constexpr raii::static_string topic(void){return "m.room.topic"_ss;} + constexpr raii::static_string avatar(void){return "m.room.avatar"_ss;} + constexpr raii::static_string pinned_events(void){return "m.room.pinned_events"_ss;} + constexpr raii::static_string typing(void){return "m.typing"_ss;} + constexpr raii::static_string receipt(void){return "m.receipt"_ss;} + constexpr raii::static_string fully_read(void){return "m.fully_read"_ss;} + constexpr raii::static_string history_visibility(void){return "m.room.history_visibility"_ss;} + constexpr raii::static_string third_party_invite(void){return "m.room.third_party_invite"_ss;} + constexpr raii::static_string guest_access(void){return "m.room.guest_access"_ss;} + constexpr raii::static_string tag(void){return "m.tag"_ss;} + constexpr raii::static_string server_acl(void){return "m.room.server_acl"_ss;} + } + namespace msgtype{ + constexpr raii::static_string text(void){return "m.text"_ss;} + constexpr raii::static_string emote(void){return "m.emote"_ss;} + constexpr raii::static_string notice(void){return "m.notice"_ss;} + constexpr raii::static_string image(void){return "m.image"_ss;} + constexpr raii::static_string file(void){return "m.file"_ss;} + constexpr raii::static_string audio(void){return "m.audio"_ss;} + constexpr raii::static_string location(void){return "m.location"_ss;} + constexpr raii::static_string video(void){return "m.video"_ss;} + constexpr raii::static_string server_notice(void){return "m.server_notice"_ss;} + } + namespace call{ + constexpr raii::static_string invite(void){return "m.call.invite"_ss;} + constexpr raii::static_string candidates(void){return "m.call.candidates"_ss;} + constexpr raii::static_string answer(void){return "m.call.answer"_ss;} + constexpr raii::static_string hangup(void){return "m.call.hangup"_ss;} + + } + } } } diff --git a/src/matrix/client.cpp b/src/matrix/client.cpp index 87cd9d7..d6e0192 100644 --- a/src/matrix/client.cpp +++ b/src/matrix/client.cpp @@ -45,19 +45,19 @@ namespace matrix{ return netreturn(raii::string(), raii::string(), http_status()); } netreturn client::get_presence(const raii::string_base& userid){ - return _get_and_find(m_urls->presence(m_ses->homeserver, m_ses->access_token, userid), json::client::presence()); + return _get_and_find(m_urls->presence(m_ses->homeserver, m_ses->access_token, userid), json::keys::client::presence()); } //networked getter netreturn client::get_display_name(void)const{ - return _get_and_find(m_urls->displayname(), json::client::displayname()); + return _get_and_find(m_urls->displayname(), json::keys::client::displayname()); } netreturn client::get_profile_picture(void)const{ - return _get_and_find(m_urls->profile_picture(), json::client::avatarurl()); + return _get_and_find(m_urls->profile_picture(), json::keys::client::avatarurl()); } netreturn client::room_alias_to_id(const raii::string_base& alias)const{ auto tmp = m_curl.encode(alias, alias.length()); - return _get_and_find(raii::string(m_urls->alias_lookup() + tmp), json::client::roomid()); + return _get_and_find(raii::string(m_urls->alias_lookup() + tmp), json::keys::client::roomid()); } netreturn> client::list_rooms(void)const{ raii::string reply = _get_curl(m_urls->room_list()); @@ -69,7 +69,7 @@ namespace matrix{ if(!root) return retval; - RJP_search_res res = rjp_search_member(root.get(), json::client::joinedrooms(), 0); + RJP_search_res res = rjp_search_member(root.get(), json::keys::client::joinedrooms(), 0); if(!res.value) return retval; @@ -81,7 +81,7 @@ namespace matrix{ //room membership netreturn client::create_room(const raii::string_base& name, const raii::string_base& alias)const{ - return _post_and_find(json::_create_room(name, alias), m_urls->create_room(), raii::curl_llist(), json::client::roomid()); + return _post_and_find(json::_create_room(name, alias), m_urls->create_room(), raii::curl_llist(), json::keys::client::roomid()); } roomcxn client::spawn_room(const raii::string_base& roomid)const{ return roomcxn(m_ses, roomid); @@ -203,7 +203,7 @@ namespace matrix{ netreturn retval = _create_netreturn(root, http_status()); if(!root) return retval; - RJP_search_res res = rjp_search_member(root.get(), json::client::contenturi(), 0); + RJP_search_res res = rjp_search_member(root.get(), json::keys::client::contenturi(), 0); if(!res.value) return retval; retval.value().m_fileurl = res.value; diff --git a/src/matrix/fat_strings.cpp b/src/matrix/fat_strings.cpp index 38186fe..59529e7 100644 --- a/src/matrix/fat_strings.cpp +++ b/src/matrix/fat_strings.cpp @@ -68,151 +68,151 @@ namespace matrix::json{ return raii::string( object( - member(json::message::body(), quote(raii::json_escape(image.name()))), - member(json::message::info(), object( - member(json::message::infobody::height(), raii::itostr(image.height())), - member(json::message::infobody::mimetype(), quote(image.mimetype())), - member(json::message::infobody::size(), raii::itostr(image.size())), - member(json::message::infobody::thumbinfo(), object( - member(json::message::infobody::thumbnail::height(), raii::itostr(image.thumb_height())), - member(json::message::infobody::thumbnail::mimetype(), quote(image.thumb_mimetype())), - member(json::message::infobody::thumbnail::size(), raii::itostr(image.thumb_size())), - member(json::message::infobody::thumbnail::width(), raii::itostr(image.thumb_width())) + member(json::keys::message::body(), quote(raii::json_escape(image.name()))), + member(json::keys::message::info(), object( + member(json::keys::message::infobody::height(), raii::itostr(image.height())), + member(json::keys::message::infobody::mimetype(), quote(image.mimetype())), + member(json::keys::message::infobody::size(), raii::itostr(image.size())), + member(json::keys::message::infobody::thumbinfo(), object( + member(json::keys::message::infobody::thumbnail::height(), raii::itostr(image.thumb_height())), + member(json::keys::message::infobody::thumbnail::mimetype(), quote(image.thumb_mimetype())), + member(json::keys::message::infobody::thumbnail::size(), raii::itostr(image.thumb_size())), + member(json::keys::message::infobody::thumbnail::width(), raii::itostr(image.thumb_width())) )), - member(json::message::infobody::thumburl(), quote(raii::json_escape(*thumburl))), - member(json::message::infobody::width(), raii::itostr(image.width())) + member(json::keys::message::infobody::thumburl(), quote(raii::json_escape(*thumburl))), + member(json::keys::message::infobody::width(), raii::itostr(image.width())) )), - member(json::message::msgtype(), quote("m.image"_ss)), - member(json::message::url(), quote(raii::json_escape(url))) + member(json::keys::message::msgtype(), quote("m.image"_ss)), + member(json::keys::message::url(), quote(raii::json_escape(url))) )); } raii::string _video_body(const uploaded_video& video){ return raii::string( object( - member(json::message::body(), quote(raii::json_escape(video.name()))), - member(json::message::info(), object( - member(json::message::infobody::height(), raii::itostr(video.height())), - member(json::message::infobody::mimetype(), quote(video.mimetype())), - member(json::message::infobody::size(), raii::itostr(video.size())), - member(json::message::infobody::thumbinfo(), object( - member(json::message::infobody::thumbnail::height(), raii::itostr(video.thumb_height())), - member(json::message::infobody::thumbnail::mimetype(), quote(video.thumb_mimetype())), - member(json::message::infobody::thumbnail::size(), raii::itostr(video.thumb_size())), - member(json::message::infobody::thumbnail::width(), raii::itostr(video.thumb_width())) + member(json::keys::message::body(), quote(raii::json_escape(video.name()))), + member(json::keys::message::info(), object( + member(json::keys::message::infobody::height(), raii::itostr(video.height())), + member(json::keys::message::infobody::mimetype(), quote(video.mimetype())), + member(json::keys::message::infobody::size(), raii::itostr(video.size())), + member(json::keys::message::infobody::thumbinfo(), object( + member(json::keys::message::infobody::thumbnail::height(), raii::itostr(video.thumb_height())), + member(json::keys::message::infobody::thumbnail::mimetype(), quote(video.thumb_mimetype())), + member(json::keys::message::infobody::thumbnail::size(), raii::itostr(video.thumb_size())), + member(json::keys::message::infobody::thumbnail::width(), raii::itostr(video.thumb_width())) )), - member(json::message::infobody::thumburl(), quote(raii::json_escape(video.thumb_url()))), - member(json::message::infobody::width(), raii::itostr(video.width())) + member(json::keys::message::infobody::thumburl(), quote(raii::json_escape(video.thumb_url()))), + member(json::keys::message::infobody::width(), raii::itostr(video.width())) )), - member(json::message::msgtype(), quote("m.video"_ss)), - member(json::message::url(), quote(raii::json_escape(video.url()))) + member(json::keys::message::msgtype(), quote("m.video"_ss)), + member(json::keys::message::url(), quote(raii::json_escape(video.url()))) )); } raii::string _file_body(const uploaded_file& file){ return raii::string( object( - member(json::message::body(), quote(raii::json_escape(file.name()))), - member(json::message::info(), object( - member(json::message::infobody::size(), raii::itostr(file.size())) + member(json::keys::message::body(), quote(raii::json_escape(file.name()))), + member(json::keys::message::info(), object( + member(json::keys::message::infobody::size(), raii::itostr(file.size())) )), - member(json::message::msgtype(), quote("m.file"_ss)), - member(json::message::url(), quote(raii::json_escape(file.url()))) + member(json::keys::message::msgtype(), quote("m.file"_ss)), + member(json::keys::message::url(), quote(raii::json_escape(file.url()))) )); } raii::string _audio_body(const uploaded_audio& audio){ return raii::string( object( - member(json::message::body(), quote(raii::json_escape(audio.name()))), - member(json::message::info(), object( - member(json::message::infobody::mimetype(), quote(audio.mimetype())), - member(json::message::infobody::size(), raii::itostr(audio.size())) + member(json::keys::message::body(), quote(raii::json_escape(audio.name()))), + member(json::keys::message::info(), object( + member(json::keys::message::infobody::mimetype(), quote(audio.mimetype())), + member(json::keys::message::infobody::size(), raii::itostr(audio.size())) )), - member(json::message::msgtype(), quote("m.audio"_ss)), - member(json::message::url(), quote(raii::json_escape(audio.url()))) + member(json::keys::message::msgtype(), quote("m.audio"_ss)), + member(json::keys::message::url(), quote(raii::json_escape(audio.url()))) )); } raii::string _message_body(const raii::string_base& msg){ return raii::string( object( - member(json::message::body(), quote(raii::json_escape(msg))), - member(json::message::msgtype(), quote("m.text"_ss)) + member(json::keys::message::body(), quote(raii::json_escape(msg))), + member(json::keys::message::msgtype(), quote("m.text"_ss)) )); } raii::string _login_password(const raii::string_base& username, const raii::string_base& password){ return raii::string( object( - member(json::auth::type(), quote("m.login.password"_ss)), - member(json::auth::identifier(), object( - member(json::auth::identifierbody::type(), quote("m.id.user"_ss)), - member(json::auth::identifierbody::user(), quote(raii::json_escape(username))) + member(json::keys::auth::type(), quote("m.login.password"_ss)), + member(json::keys::auth::identifier(), object( + member(json::keys::auth::identifierbody::type(), quote("m.id.user"_ss)), + member(json::keys::auth::identifierbody::user(), quote(raii::json_escape(username))) )), - member(json::auth::password(), quote(raii::json_escape(password))) + member(json::keys::auth::password(), quote(raii::json_escape(password))) )); } raii::string _change_psk_password(const raii::string_base& userid, const raii::string_base& newpass, const raii::string_base& oldpass, const raii::string_base& session){ return raii::string( object( - member(json::auth::newpassword(), quote(raii::json_escape(newpass))), - member(json::auth::auth(), object( - member(json::auth::authbody::type(), quote("m.login.password"_ss)), - member(json::auth::authbody::session(), quote(session)), - member(json::auth::authbody::user(), quote(raii::json_escape(userid))), - member(json::auth::authbody::password(), quote(raii::json_escape(oldpass))) + member(json::keys::auth::newpassword(), quote(raii::json_escape(newpass))), + member(json::keys::auth::auth(), object( + member(json::keys::auth::authbody::type(), quote("m.login.password"_ss)), + member(json::keys::auth::authbody::session(), quote(session)), + member(json::keys::auth::authbody::user(), quote(raii::json_escape(userid))), + member(json::keys::auth::authbody::password(), quote(raii::json_escape(oldpass))) )) )); } raii::string _displayname_set(const raii::string_base& newname){ return raii::string( object( - member(json::client::displayname(), quote(raii::json_escape(newname))) + member(json::keys::client::displayname(), quote(raii::json_escape(newname))) )); } raii::string _avatar_set(const raii::string_base& mediaurl){ return raii::string( object( - member(json::client::avatarurl(), quote(raii::json_escape(mediaurl))) + member(json::keys::client::avatarurl(), quote(raii::json_escape(mediaurl))) )); } raii::string _presence_set(const raii::string_base& status){ return raii::string( object( - member(json::client::presence(), quote(status)) + member(json::keys::client::presence(), quote(status)) )); } raii::string _create_room(const raii::string_base& name, const raii::string_base& alias){ if(alias){ return raii::string( object( - member(json::client::name(), quote(raii::json_escape(name))), - member(json::client::roomaliasname(), quote(raii::json_escape(alias))) + member(json::keys::client::name(), quote(raii::json_escape(name))), + member(json::keys::client::roomaliasname(), quote(raii::json_escape(alias))) )); }else{ return raii::string( object( - member(json::client::name(), quote(raii::json_escape(name))) + member(json::keys::client::name(), quote(raii::json_escape(name))) )); } } raii::string _userid(const raii::string_base& id){ return raii::string( object( - member(json::session::userid(), quote(raii::json_escape(id))) + member(json::keys::auth::userid(), quote(raii::json_escape(id))) )); } raii::string _userid_reason(const raii::string_base& id, const raii::string_base& reason){ return raii::string( object( - member(json::session::userid(), quote(raii::json_escape(id))), + member(json::keys::auth::userid(), quote(raii::json_escape(id))), member(json::reason(), quote(raii::json_escape(reason))) )); } raii::string _typing(bool active, int timeout){ return raii::string( object( - member(json::client::typing(), active ? json::True() : json::False()), - member(json::client::timeout(), raii::itostr(timeout)) + member(json::keys::client::typing(), active ? json::True() : json::False()), + member(json::keys::client::timeout(), raii::itostr(timeout)) )); } raii::string _redact(const raii::string_base& reason){ @@ -224,7 +224,7 @@ namespace matrix::json{ raii::string _room_upgrade(int version){ return raii::string( object( - member(json::rooms::newversion(), raii::itostr(version)) + member(json::keys::rooms::newversion(), raii::itostr(version)) )); } } diff --git a/src/matrix/roomcxn.cpp b/src/matrix/roomcxn.cpp index 743bab3..829bb7b 100644 --- a/src/matrix/roomcxn.cpp +++ b/src/matrix/roomcxn.cpp @@ -59,7 +59,7 @@ namespace matrix{ if(!resp) return _create_netreturn(resp, http_status()); raii::rjp_ptr root(rjp_parse(resp.get())); if(!root) return _create_netreturn(root, http_status()); - RJP_search_res res = rjp_search_member(root.get(), json::rooms::joined(), 0); + RJP_search_res res = rjp_search_member(root.get(), json::keys::rooms::joined(), 0); if(!res.value) return _create_netreturn(root, http_status()); for(RJP_value* mem = rjp_get_member(res.value);mem;mem = rjp_next_member(mem)){ @@ -108,7 +108,7 @@ namespace matrix{ raii::rjp_ptr root(rjp_parse(reply)); netreturn retval = _create_netreturn(root, http_status()); - retval.value() = _curl_reply_search(root, json::rooms::eventid()); + retval.value() = _curl_reply_search(root, json::keys::rooms::eventid()); return retval; } netreturn roomcxn::send_message(const raii::string_base& text)const{ @@ -134,7 +134,7 @@ namespace matrix{ } netreturn roomcxn::redact_event(const raii::string_base& eventid, const raii::string_base& reason)const{ - return _put_and_find(json::_redact(reason), m_urls.redact(m_ses->homeserver, m_ses->access_token, m_curl.encode(m_roomid), m_curl.encode(eventid)), raii::curl_llist(), json::rooms::eventid()); + return _put_and_find(json::_redact(reason), m_urls.redact(m_ses->homeserver, m_ses->access_token, m_curl.encode(m_roomid), m_curl.encode(eventid)), raii::curl_llist(), json::keys::rooms::eventid()); } netreturn roomcxn::redact_event(const raii::string_base& eventid)const{ return redact_event(eventid, "No reason given"_ss); @@ -146,7 +146,7 @@ namespace matrix{ if(!root.get()) _create_netreturn(root, http_status()); netreturn retval = _create_netreturn(root, http_status()); - RJP_value* chunk = rjp_search_member(root.get(), json::rooms::chunk(), 0).value; + RJP_value* chunk = rjp_search_member(root.get(), json::keys::rooms::chunk(), 0).value; if(!chunk) return retval; retval.value() = sync::roomcxn_message_event_list(root, rjp_get_element(chunk), m_roomid); return retval; @@ -168,7 +168,7 @@ namespace matrix{ m_urls.repopulate(m_ses->homeserver, m_ses->access_token, m_ses->userid, m_roomid); } netreturn roomcxn::upgrade(int version)const{ - return _post_and_find(json::_room_upgrade(version), m_urls.upgrade(m_ses->homeserver, m_ses->access_token, m_roomid), raii::curl_llist(), json::rooms::eventid()); + return _post_and_find(json::_room_upgrade(version), m_urls.upgrade(m_ses->homeserver, m_ses->access_token, m_roomid), raii::curl_llist(), json::keys::rooms::eventid()); } netreturn roomcxn::_send_message(const raii::string_base& msg)const{ diff --git a/src/matrix/session.cpp b/src/matrix/session.cpp index c8c727d..fe1c416 100644 --- a/src/matrix/session.cpp +++ b/src/matrix/session.cpp @@ -88,7 +88,7 @@ namespace matrix{ return retval; //attempt to change password via username/password login - RJP_search_res res = rjp_search_member(root.get(), json::session::session(), 0); + RJP_search_res res = rjp_search_member(root.get(), json::keys::session::session(), 0); raii::string request = json::_change_psk_password(m_ses->userid, newpass, oldpass, raii::rjp_string(res.value)); reply = _post_curl(request, rest::session_urls::password(*m_ses), raii::curl_llist()); return _create_netreturn(reply, http_status()); @@ -152,7 +152,7 @@ namespace matrix{ return reply; } netreturn session::_get_userid(void){ - return _get_and_find(rest::session_urls::whoami(*m_ses), json::session::userid()); + return _get_and_find(rest::session_urls::whoami(*m_ses), json::keys::auth::userid()); } netreturn> session::_get_new_access_token(const raii::string_base& name, const raii::string_base& pass, const raii::string_base& loginurl){ raii::string reply = _request_access_token(name, pass, loginurl); @@ -162,9 +162,9 @@ namespace matrix{ netreturn> retval = _create_netreturn(root, http_status()); if(!root) return retval; - RJP_search_res token = rjp_search_member(root.get(), json::session::accesstoken(), 0); + RJP_search_res token = rjp_search_member(root.get(), json::keys::auth::accesstoken(), 0); retval.value().first = raii::rjp_string{token.value}; - token = rjp_search_member(root.get(), json::session::userid(), 0); + token = rjp_search_member(root.get(), json::keys::auth::userid(), 0); retval.value().second = raii::rjp_string{token.value}; return retval; }