Skip to content
This repository has been archived by the owner on Jun 29, 2024. It is now read-only.

Commit

Permalink
add handling messages in private messages controller
Browse files Browse the repository at this point in the history
  • Loading branch information
wsekta committed Jan 24, 2024
1 parent 77743c4 commit b813e08
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ void PrivateMessagesController::activate()
removeFromFriendsResponseHandlerName,
[this](const auto&) { handleRemoveFromFriendsResponse(); }});

session->addMessageHandler({common::messages::MessageId::SendPrivateMessageResponse,
sendPrivateMessageResponseHandlerName,
[this](const auto& msg) { handleSendPrivateMessageResponse(msg); }});

session->addMessageHandler({common::messages::MessageId::GetPrivateMessagesResponse,
getPrivateMessagesResponseHandlerName,
[this](const auto& msg) { handleGetPrivateMessagesResponse(msg); }});

session->sendMessage(common::messages::MessageId::GetUserFriends, {});
session->sendMessage(common::messages::MessageId::GetFriendInvitations, {});

Expand All @@ -56,6 +64,12 @@ void PrivateMessagesController::deactivate()

session->removeMessageHandler(
{common::messages::MessageId::RemoveFromFriendsResponse, removeFromFriendsResponseHandlerName});

session->removeMessageHandler(
{common::messages::MessageId::SendPrivateMessageResponse, sendPrivateMessageResponseHandlerName});

session->removeMessageHandler(
{common::messages::MessageId::GetPrivateMessagesResponse, getPrivateMessagesResponseHandlerName});
}

void PrivateMessagesController::goToChannel(const QString& channelName, const QString& channelId, bool isOwner)
Expand Down Expand Up @@ -383,4 +397,11 @@ void PrivateMessagesController::handleGetPrivateMessagesResponse(const common::m
LOG_S(ERROR) << "Response without messages";
}
}
void PrivateMessagesController::getMoreMessages()
{
auto offset = messageStorage->getMessages().size();

session->sendMessage(common::messages::MessageId::GetPrivateMessages,
nlohmann::json{{"groupId", currentFriendGroupId}, {"offset", offset}, {"limit", 50}});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ class PrivateMessagesController : public QObject
public slots:
void goToChannel(const QString& channelName, const QString& channelId, bool isOwner);
void sendPrivateMessage(const QString& messageText);
void getMoreMessages();

private:
void handleGetUserFriendsResponse(const common::messages::Message& message);
Expand Down
18 changes: 18 additions & 0 deletions apps/client/gui/states/privateMessages/PrivateMessagesState.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,15 @@ void PrivateMessagesState::activate()
QObject::connect(messagesController.get(), &MessagesController::newMessageToSend, privateMessagesController.get(),
&PrivateMessagesController::sendPrivateMessage);

QObject::connect(privateMessagesController.get(), &PrivateMessagesController::messagesUpdated,
messagesController.get(), &MessagesController::handleMessageUpdate);

QObject::connect(privateMessagesController.get(), &PrivateMessagesController::setMessageStorage,
messagesController.get(), &MessagesController::setMessageStorage);

QObject::connect(messagesController.get(), &MessagesController::getMoreMessages, privateMessagesController.get(),
&PrivateMessagesController::getMoreMessages);

loaderController->getEngine()->rootContext()->setContextProperty(leftColumnController->getName(),
leftColumnController.get());

Expand Down Expand Up @@ -61,6 +70,15 @@ void PrivateMessagesState::deactivate()
QObject::disconnect(messagesController.get(), &MessagesController::newMessageToSend,
privateMessagesController.get(), &PrivateMessagesController::sendPrivateMessage);

QObject::disconnect(privateMessagesController.get(), &PrivateMessagesController::messagesUpdated,
messagesController.get(), &MessagesController::handleMessageUpdate);

QObject::disconnect(privateMessagesController.get(), &PrivateMessagesController::setMessageStorage,
messagesController.get(), &MessagesController::setMessageStorage);

QObject::disconnect(messagesController.get(), &MessagesController::getMoreMessages, privateMessagesController.get(),
&PrivateMessagesController::getMoreMessages);

loaderController->getEngine()->rootContext()->setContextProperty(leftColumnController->getName(), nullptr);

loaderController->getEngine()->rootContext()->setContextProperty(privateMessagesController->getName(), nullptr);
Expand Down

0 comments on commit b813e08

Please sign in to comment.