From a2f363ac642e0a989c6a0ac1e1e21507817eb47b Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Thu, 23 Nov 2017 15:02:42 +0100 Subject: [PATCH] fix(MainDb): insert chatroom subject properly --- src/core/core-chat-room.cpp | 9 +++++---- src/db/main-db-p.h | 5 +++-- src/db/main-db.cpp | 34 +++++++++++++++++++--------------- src/db/main-db.h | 2 +- 4 files changed, 28 insertions(+), 22 deletions(-) diff --git a/src/core/core-chat-room.cpp b/src/core/core-chat-room.cpp index 1fad063c2..0bff00f42 100644 --- a/src/core/core-chat-room.cpp +++ b/src/core/core-chat-room.cpp @@ -104,10 +104,11 @@ void CorePrivate::deleteChatRoom (const ChatRoomId &chatRoomId) { void CorePrivate::insertChatRoomWithDb (const shared_ptr &chatRoom) { L_ASSERT(chatRoom->getState() == ChatRoom::State::Created); - - const ChatRoomId &chatRoomId = chatRoom->getChatRoomId(); - ChatRoom::CapabilitiesMask capabilities = chatRoom->getCapabilities(); - mainDb->insertChatRoom(chatRoomId, capabilities); + mainDb->insertChatRoom( + chatRoom->getChatRoomId(), + chatRoom->getCapabilities(), + chatRoom->getSubject() + ); } void CorePrivate::deleteChatRoomWithDb (const ChatRoomId &chatRoomId) { diff --git a/src/db/main-db-p.h b/src/db/main-db-p.h index bd35e0615..d51e9ca0b 100644 --- a/src/db/main-db-p.h +++ b/src/db/main-db-p.h @@ -46,9 +46,10 @@ private: long long peerSipAddressId, long long localSipAddressId, int capabilities, - const tm &date + const tm &date, + const std::string &subject ); - long long insertChatRoom (const ChatRoomId &chatRoomId, int capabilities, const tm &date); + long long insertChatRoom (const ChatRoomId &chatRoomId, int capabilities, const tm &date, const std::string &subject); void insertChatRoomParticipant (long long chatRoomId, long long sipAddressId, bool isAdmin); void insertChatMessageParticipant (long long messageEventId, long long sipAddressId, int state); diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index 09dbad22b..5266f322d 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -166,7 +166,8 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), long long peerSipAddressId, long long localSipAddressId, int capabilities, - const tm &date + const tm &date, + const string &subject ) { L_Q(); @@ -178,27 +179,28 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), ", local=" << localSipAddressId << ", capabilities=" << capabilities << ")."; *session << "INSERT INTO chat_room (" " peer_sip_address_id, local_sip_address_id, creation_date, last_update_date, capabilities, subject" - ") VALUES (:peerSipAddressId, :localSipAddressId, :creationDate, :lastUpdateDate, :capabilities, '')", + ") VALUES (:peerSipAddressId, :localSipAddressId, :creationDate, :lastUpdateDate, :capabilities, subject)", soci::use(peerSipAddressId), soci::use(localSipAddressId), soci::use(date), soci::use(date), - soci::use(capabilities); + soci::use(capabilities), soci::use(subject); return q->getLastInsertId(); } - // Update date if chat room exists. Do not touch capabilities. - *session << "UPDATE chat_room SET last_update_date = :lastUpdateDate" - " WHERE id = :chatRoomId", - soci::use(date), soci::use(id); - return id; } - long long MainDbPrivate::insertChatRoom (const ChatRoomId &chatRoomId, int capabilities, const tm &date) { + long long MainDbPrivate::insertChatRoom ( + const ChatRoomId &chatRoomId, + int capabilities, + const tm &date, + const string &subject + ) { return insertChatRoom ( insertSipAddress(chatRoomId.getPeerAddress().asString()), insertSipAddress(chatRoomId.getLocalAddress().asString()), capabilities, - date + date, + subject ); } @@ -1416,7 +1418,7 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), return chatRooms; } - void MainDb::insertChatRoom (const ChatRoomId &chatRoomId, int capabilities) { + void MainDb::insertChatRoom (const ChatRoomId &chatRoomId, int capabilities, const string &subject) { L_D(); if (!isConnected()) { @@ -1427,14 +1429,15 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), DurationLogger durationLogger( "Insert chat room: peer=" + chatRoomId.getPeerAddress().asString() + ", local=" + chatRoomId.getLocalAddress().asString() + - ", capabilities=" + Utils::toString(capabilities) + ")." + ", capabilities=" + Utils::toString(capabilities) + + ", subject=" + subject + ")." ); L_BEGIN_LOG_EXCEPTION soci::transaction tr(*d->dbSession.getBackendSession()); - d->insertChatRoom(chatRoomId, capabilities, Utils::getTimeTAsTm(time(0))); + d->insertChatRoom(chatRoomId, capabilities, Utils::getTimeTAsTm(time(0)), subject); tr.commit(); @@ -1589,7 +1592,8 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), remoteSipAddressId, localSipAddressId, static_cast(ChatRoom::Capabilities::Basic), - date + date, + "" ); *session << "INSERT INTO conference_event (event_id, chat_room_id)" @@ -1678,7 +1682,7 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), return list>(); } - void MainDb::insertChatRoom (const ChatRoomId &, int) {} + void MainDb::insertChatRoom (const ChatRoomId &, int, const string &) {} void MainDb::deleteChatRoom (const ChatRoomId &) {} diff --git a/src/db/main-db.h b/src/db/main-db.h index 8a6358839..5e776482b 100644 --- a/src/db/main-db.h +++ b/src/db/main-db.h @@ -99,7 +99,7 @@ public: // --------------------------------------------------------------------------- std::list> getChatRooms () const; - void insertChatRoom (const ChatRoomId &chatRoomId, int capabilities); + void insertChatRoom (const ChatRoomId &chatRoomId, int capabilities, const std::string &subject); void deleteChatRoom (const ChatRoomId &chatRoomId); // ---------------------------------------------------------------------------