chore(GODT-2576): Connector can send any flags to Gluon

Requires Gluon bump: https://github.com/ProtonMail/gluon/pull/344
This commit is contained in:
Leander Beernaert
2023-04-27 11:52:55 +02:00
parent 21b20ac420
commit c49b42060e
3 changed files with 22 additions and 7 deletions

View File

@ -650,15 +650,28 @@ func (user *User) handleUpdateMessageEvent(ctx context.Context, message proton.M
"subject": logging.Sensitive(message.Subject),
}).Info("Handling message updated event")
flags := imap.NewFlagSet()
if message.Seen() {
flags.AddToSelf(imap.FlagSeen)
}
if message.Starred() {
flags.AddToSelf(imap.FlagFlagged)
}
if message.IsDraft() {
flags.AddToSelf(imap.FlagDraft)
}
if message.IsRepliedAll == true || message.IsReplied == true { //nolint: gosimple
flags.AddToSelf(imap.FlagAnswered)
}
update := imap.NewMessageMailboxesUpdated(
imap.MessageID(message.ID),
mapTo[string, imap.MailboxID](wantLabels(user.apiLabels, message.LabelIDs)),
imap.MessageCustomFlags{
Seen: message.Seen(),
Flagged: message.Starred(),
Draft: message.IsDraft(),
Answered: message.IsRepliedAll == true || message.IsReplied == true, //nolint: gosimple
},
flags,
)
user.updateCh[message.AddressID].Enqueue(update)