Mark sent messages as "seen" in maildir

- Add maildir flags to complement a messages imap flags
- Set the "seen" flag on sent messages when using the maildir backend
- Cleanup AppendMessage interface to use models.Flag for both IMAP and
  maildir
This commit is contained in:
Galen Abell 2020-03-03 08:45:06 -05:00 committed by Reto Brunner
parent 68f179021d
commit 6ff3c7a1ba
10 changed files with 65 additions and 21 deletions
worker/imap

View file

@ -89,7 +89,7 @@ func translateAddresses(addrs []*imap.Address) []*models.Address {
return converted
}
var flagMap = map[string]models.Flag{
var imapToFlag = map[string]models.Flag{
imap.SeenFlag: models.SeenFlag,
imap.RecentFlag: models.RecentFlag,
imap.AnsweredFlag: models.AnsweredFlag,
@ -97,12 +97,30 @@ var flagMap = map[string]models.Flag{
imap.FlaggedFlag: models.FlaggedFlag,
}
func translateFlags(imapFlags []string) []models.Flag {
var flagToImap = map[models.Flag]string{
models.SeenFlag: imap.SeenFlag,
models.RecentFlag: imap.RecentFlag,
models.AnsweredFlag: imap.AnsweredFlag,
models.DeletedFlag: imap.DeletedFlag,
models.FlaggedFlag: imap.FlaggedFlag,
}
func translateImapFlags(imapFlags []string) []models.Flag {
var flags []models.Flag
for _, imapFlag := range imapFlags {
if flag, ok := flagMap[imapFlag]; ok {
if flag, ok := imapToFlag[imapFlag]; ok {
flags = append(flags, flag)
}
}
return flags
}
func translateFlags(flags []models.Flag) []string {
var imapFlags []string
for _, flag := range flags {
if imapFlag, ok := flagToImap[flag]; ok {
imapFlags = append(imapFlags, imapFlag)
}
}
return imapFlags
}