Do not ignore errors

This commit is contained in:
Michal Horejsek
2020-09-03 14:36:12 +02:00
parent 9218598140
commit bb1d27a5be
9 changed files with 63 additions and 22 deletions

View File

@ -77,19 +77,29 @@ func (im *imapMailbox) setFlags(messageIDs, flags []string) error {
}
if seen {
_ = im.storeMailbox.MarkMessagesRead(messageIDs)
if err := im.storeMailbox.MarkMessagesRead(messageIDs); err != nil {
return err
}
} else {
_ = im.storeMailbox.MarkMessagesUnread(messageIDs)
if err := im.storeMailbox.MarkMessagesUnread(messageIDs); err != nil {
return err
}
}
if flagged {
_ = im.storeMailbox.MarkMessagesStarred(messageIDs)
if err := im.storeMailbox.MarkMessagesStarred(messageIDs); err != nil {
return err
}
} else {
_ = im.storeMailbox.MarkMessagesUnstarred(messageIDs)
if err := im.storeMailbox.MarkMessagesUnstarred(messageIDs); err != nil {
return err
}
}
if deleted {
_ = im.storeMailbox.DeleteMessages(messageIDs)
if err := im.storeMailbox.DeleteMessages(messageIDs); err != nil {
return err
}
}
spamMailbox, err := im.storeAddress.GetMailbox("Spam")
@ -97,9 +107,13 @@ func (im *imapMailbox) setFlags(messageIDs, flags []string) error {
return err
}
if spam {
_ = spamMailbox.LabelMessages(messageIDs)
if err := spamMailbox.LabelMessages(messageIDs); err != nil {
return err
}
} else {
_ = spamMailbox.UnlabelMessages(messageIDs)
if err := spamMailbox.UnlabelMessages(messageIDs); err != nil {
return err
}
}
return nil
@ -111,22 +125,32 @@ func (im *imapMailbox) addOrRemoveFlags(operation imap.FlagsOp, messageIDs, flag
case imap.SeenFlag:
switch operation {
case imap.AddFlags:
_ = im.storeMailbox.MarkMessagesRead(messageIDs)
if err := im.storeMailbox.MarkMessagesRead(messageIDs); err != nil {
return err
}
case imap.RemoveFlags:
_ = im.storeMailbox.MarkMessagesUnread(messageIDs)
if err := im.storeMailbox.MarkMessagesUnread(messageIDs); err != nil {
return err
}
}
case imap.FlaggedFlag:
switch operation {
case imap.AddFlags:
_ = im.storeMailbox.MarkMessagesStarred(messageIDs)
if err := im.storeMailbox.MarkMessagesStarred(messageIDs); err != nil {
return err
}
case imap.RemoveFlags:
_ = im.storeMailbox.MarkMessagesUnstarred(messageIDs)
if err := im.storeMailbox.MarkMessagesUnstarred(messageIDs); err != nil {
return err
}
}
case imap.DeletedFlag:
if operation == imap.RemoveFlags {
break // Nothing to do, no message has the \Deleted flag.
}
_ = im.storeMailbox.DeleteMessages(messageIDs)
if err := im.storeMailbox.DeleteMessages(messageIDs); err != nil {
return err
}
case imap.AnsweredFlag, imap.DraftFlag, imap.RecentFlag:
// Not supported.
case message.AppleMailJunkFlag, message.ThunderbirdJunkFlag:
@ -140,9 +164,13 @@ func (im *imapMailbox) addOrRemoveFlags(operation imap.FlagsOp, messageIDs, flag
// No label removal is necessary because Spam and Inbox are both exclusive labels so the backend
// will automatically take care of label removal.
case imap.AddFlags:
_ = storeMailbox.LabelMessages(messageIDs)
if err := storeMailbox.LabelMessages(messageIDs); err != nil {
return err
}
case imap.RemoveFlags:
_ = storeMailbox.UnlabelMessages(messageIDs)
if err := storeMailbox.UnlabelMessages(messageIDs); err != nil {
return err
}
}
}
}