From aca6233dbfbaad9a22206755a3caad3a8850b814 Mon Sep 17 00:00:00 2001 From: Konrad Date: Thu, 6 Jul 2017 14:05:48 +0200 Subject: [PATCH] Added: Handling requests to invite peers to lobby --- libresapi/src/api/ChatHandler.cpp | 20 ++++++++++++++++++++ libresapi/src/api/ChatHandler.h | 1 + 2 files changed, 21 insertions(+) diff --git a/libresapi/src/api/ChatHandler.cpp b/libresapi/src/api/ChatHandler.cpp index 1a5fd6e6c..6809e2435 100644 --- a/libresapi/src/api/ChatHandler.cpp +++ b/libresapi/src/api/ChatHandler.cpp @@ -169,6 +169,7 @@ ChatHandler::ChatHandler(StateTokenServer *sts, RsNotify *notify, RsMsgs *msgs, addResourceHandler("unsubscribe_lobby", this, &ChatHandler::handleUnsubscribeLobby); addResourceHandler("autosubscribe_lobby", this, &ChatHandler::handleAutoSubsribeLobby); addResourceHandler("clear_lobby", this, &ChatHandler::handleClearLobby); + addResourceHandler("invite_to_lobby", this, &ChatHandler::handleInviteToLobby); addResourceHandler("lobby_participants", this, &ChatHandler::handleLobbyParticipants); addResourceHandler("messages", this, &ChatHandler::handleMessages); addResourceHandler("send_message", this, &ChatHandler::handleSendMessage); @@ -936,6 +937,25 @@ void ChatHandler::handleClearLobby(Request &req, Response &resp) resp.setOk(); } +void ChatHandler::handleInviteToLobby(Request& req, Response& resp) +{ + std::string chat_id; + std::string pgp_id; + req.mStream << makeKeyValueReference("chat_id", chat_id); + req.mStream << makeKeyValueReference("pgp_id", pgp_id); + + ChatId chatId(chat_id); + RsPgpId pgpId(pgp_id); + + std::list peerIds; + mRsPeers->getAssociatedSSLIds(pgpId, peerIds); + + for(std::list::iterator it = peerIds.begin(); it != peerIds.end(); it++) + mRsMsgs->invitePeerToLobby(chatId.toLobbyId(), (*it)); + + resp.setOk(); +} + ResponseTask* ChatHandler::handleLobbyParticipants(Request &req, Response &resp) { RS_STACK_MUTEX(mMtx); /********** LOCKED **********/ diff --git a/libresapi/src/api/ChatHandler.h b/libresapi/src/api/ChatHandler.h index 9cda3e551..8f237b401 100644 --- a/libresapi/src/api/ChatHandler.h +++ b/libresapi/src/api/ChatHandler.h @@ -122,6 +122,7 @@ private: void handleSubscribeLobby(Request& req, Response& resp); void handleUnsubscribeLobby(Request& req, Response& resp); void handleAutoSubsribeLobby(Request& req, Response& resp); + void handleInviteToLobby(Request& req, Response& resp); void handleClearLobby(Request& req, Response& resp); ResponseTask* handleLobbyParticipants(Request& req, Response& resp); void handleMessages(Request& req, Response& resp);