Add chatID to removed messages

This commit is contained in:
Andrea Maria Piana 2021-08-20 16:26:13 +02:00 committed by Roman Volosovskyi
parent 5c408f8ce4
commit 83394e0ed1
No known key found for this signature in database
GPG Key ID: 0238A4B5ECEE70DE
6 changed files with 26 additions and 15 deletions

View File

@ -1 +1 @@
0.84.0
0.84.1

View File

@ -1196,6 +1196,12 @@ func (db sqlitePersistence) HideMessage(id string) error {
return err
}
// SetHideOnMessage set the hide flag, but not the seen flag, as it's needed by the client to understand whether the count should be updated
func (db sqlitePersistence) SetHideOnMessage(id string) error {
_, err := db.db.Exec(`UPDATE user_messages SET hide = 1 WHERE id = ?`, id)
return err
}
func (db sqlitePersistence) DeleteMessagesByChatID(id string) error {
return db.deleteMessagesByChatID(id, nil)
}

View File

@ -95,7 +95,7 @@ func (s *MessengerDeleteMessageSuite) TestDeleteMessage() {
s.Require().NoError(err)
s.Require().Len(sendResponse.Messages(), 0)
s.Require().Len(sendResponse.RemovedMessages(), 1)
s.Require().Equal(messageID, sendResponse.RemovedMessages()[0])
s.Require().Equal(messageID, sendResponse.RemovedMessages()[0].MessageID)
s.Require().Len(sendResponse.Chats(), 1)
// LastMessage is removed
s.Require().Nil(sendResponse.Chats()[0].LastMessage)
@ -147,7 +147,7 @@ func (s *MessengerDeleteMessageSuite) TestDeleteMessagePreviousLastMessage() {
s.Require().NoError(err)
s.Require().Len(sendResponse.Messages(), 0)
s.Require().Len(sendResponse.RemovedMessages(), 1)
s.Require().Equal(messageID, sendResponse.RemovedMessages()[0])
s.Require().Equal(messageID, sendResponse.RemovedMessages()[0].MessageID)
s.Require().Len(sendResponse.Chats(), 1)
// LastMessage is updated to previous message
s.Require().NotNil(sendResponse.Chats()[0].LastMessage)

View File

@ -593,7 +593,7 @@ func (m *Messenger) HandleDeleteMessage(state *ReceivedMessageState, deleteMessa
return err
}
err = m.persistence.HideMessage(deleteMessage.MessageId)
err = m.persistence.SetHideOnMessage(deleteMessage.MessageId)
if err != nil {
return err
}
@ -612,7 +612,7 @@ func (m *Messenger) HandleDeleteMessage(state *ReceivedMessageState, deleteMessa
}
}
state.Response.AddRemovedMessage(messageID)
state.Response.AddRemovedMessage(&RemovedMessage{MessageID: messageID, ChatID: chat.ID})
state.Response.AddChat(chat)
state.Response.AddNotification(DeletedMessageNotification(messageID, chat))

View File

@ -153,7 +153,7 @@ func (m *Messenger) DeleteMessageAndSend(ctx context.Context, messageID string)
response := &MessengerResponse{}
response.AddMessage(message)
response.AddRemovedMessage(messageID)
response.AddRemovedMessage(&RemovedMessage{MessageID: messageID, ChatID: chat.ID})
response.AddChat(chat)
return response, nil

View File

@ -10,6 +10,11 @@ import (
"github.com/status-im/status-go/services/mailservers"
)
type RemovedMessage struct {
ChatID string `json:"chatId"`
MessageID string `json:"messageId"`
}
type MessengerResponse struct {
Contacts []*Contact
Installations []*multidevice.Installation
@ -24,7 +29,7 @@ type MessengerResponse struct {
notifications map[string]*localnotifications.Notification
chats map[string]*Chat
removedChats map[string]bool
removedMessages map[string]bool
removedMessages map[string]*RemovedMessage
communities map[string]*communities.Community
activityCenterNotifications map[string]*ActivityCenterNotification
messages map[string]*common.Message
@ -37,7 +42,7 @@ func (r *MessengerResponse) MarshalJSON() ([]byte, error) {
responseItem := struct {
Chats []*Chat `json:"chats,omitempty"`
RemovedChats []string `json:"removedChats,omitempty"`
RemovedMessages []string `json:"removedMessages,omitempty"`
RemovedMessages []*RemovedMessage `json:"removedMessages,omitempty"`
Messages []*common.Message `json:"messages,omitempty"`
Contacts []*Contact `json:"contacts,omitempty"`
Installations []*multidevice.Installation `json:"installations,omitempty"`
@ -94,10 +99,10 @@ func (r *MessengerResponse) RemovedChats() []string {
return chats
}
func (r *MessengerResponse) RemovedMessages() []string {
var messages []string
func (r *MessengerResponse) RemovedMessages() []*RemovedMessage {
var messages []*RemovedMessage
for messageID := range r.removedMessages {
messages = append(messages, messageID)
messages = append(messages, r.removedMessages[messageID])
}
return messages
}
@ -240,18 +245,18 @@ func (r *MessengerResponse) AddRemovedChat(chatID string) {
r.removedChats[chatID] = true
}
func (r *MessengerResponse) AddRemovedMessages(messages []string) {
func (r *MessengerResponse) AddRemovedMessages(messages []*RemovedMessage) {
for _, m := range messages {
r.AddRemovedMessage(m)
}
}
func (r *MessengerResponse) AddRemovedMessage(messageID string) {
func (r *MessengerResponse) AddRemovedMessage(rm *RemovedMessage) {
if r.removedMessages == nil {
r.removedMessages = make(map[string]bool)
r.removedMessages = make(map[string]*RemovedMessage)
}
r.removedMessages[messageID] = true
r.removedMessages[rm.MessageID] = rm
}
func (r *MessengerResponse) AddActivityCenterNotifications(ns []*ActivityCenterNotification) {