From cf7aaf8b6cf557b6d28b61802179ba2207afb4d1 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Mon, 27 Nov 2017 14:22:50 +0100 Subject: [PATCH] feat(MainDb): deal with participants removed --- src/db/main-db-p.h | 2 ++ src/db/main-db.cpp | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/db/main-db-p.h b/src/db/main-db-p.h index 9a46ac4e4..ee2cfc431 100644 --- a/src/db/main-db-p.h +++ b/src/db/main-db-p.h @@ -57,6 +57,8 @@ private: long long selectChatRoomId (long long peerSipAddressId, long long localSipAddressId) const; long long selectChatRoomId (const ChatRoomId &chatRoomId) const; + void deleteChatRoomParticipant (long long chatRoomId, long long participantSipAddressId); + // --------------------------------------------------------------------------- // Events API. // --------------------------------------------------------------------------- diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index d48ecf95d..a530c76a0 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -303,6 +303,13 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), return selectChatRoomId(peerSipAddressId, localSipAddressId); } + void MainDbPrivate::deleteChatRoomParticipant (long long chatRoomId, long long participantSipAddressId) { + soci::session *session = dbSession.getBackendSession(); + *session << "DELETE FROM chat_room_participant" + " WHERE chat_room_id = :chatRoomId AND participant_sip_address_id = :participantSipAddressId", + soci::use(chatRoomId), soci::use(participantSipAddressId); + } + // ----------------------------------------------------------------------------- shared_ptr MainDbPrivate::selectGenericConferenceEvent ( @@ -695,7 +702,8 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), break; case EventLog::Type::ConferenceParticipantRemoved: - // TODO: Deal with remove. + deleteChatRoomParticipant(chatRoomId, participantAddressId); + break; default: break;