diff options
Diffstat (limited to 'worker/maildir/message.go')
-rw-r--r-- | worker/maildir/message.go | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/worker/maildir/message.go b/worker/maildir/message.go index 45b1ca6..9d622b4 100644 --- a/worker/maildir/message.go +++ b/worker/maildir/message.go @@ -45,7 +45,7 @@ func (m Message) ModelFlags() ([]models.Flag, error) { if err != nil { return nil, err } - return translateFlags(flags), nil + return translateMaildirFlags(flags), nil } // SetFlags replaces the message's flags with a new set. @@ -97,7 +97,7 @@ func (m Message) NewBodyPartReader(requestedParts []int) (io.Reader, error) { return lib.FetchEntityPartReader(msg, requestedParts) } -var flagMap = map[maildir.Flag]models.Flag{ +var maildirToFlag = map[maildir.Flag]models.Flag{ maildir.FlagReplied: models.AnsweredFlag, maildir.FlagSeen: models.SeenFlag, maildir.FlagTrashed: models.DeletedFlag, @@ -106,16 +106,35 @@ var flagMap = map[maildir.Flag]models.Flag{ // maildir.FlagPassed Flag = 'P' } -func translateFlags(maildirFlags []maildir.Flag) []models.Flag { +var flagToMaildir = map[models.Flag]maildir.Flag{ + models.AnsweredFlag: maildir.FlagReplied, + models.SeenFlag: maildir.FlagSeen, + models.DeletedFlag: maildir.FlagTrashed, + models.FlaggedFlag: maildir.FlagFlagged, + // maildir.FlagDraft Flag = 'D' + // maildir.FlagPassed Flag = 'P' +} + +func translateMaildirFlags(maildirFlags []maildir.Flag) []models.Flag { var flags []models.Flag for _, maildirFlag := range maildirFlags { - if flag, ok := flagMap[maildirFlag]; ok { + if flag, ok := maildirToFlag[maildirFlag]; ok { flags = append(flags, flag) } } return flags } +func translateFlags(flags []models.Flag) []maildir.Flag { + var maildirFlags []maildir.Flag + for _, flag := range flags { + if maildirFlag, ok := flagToMaildir[flag]; ok { + maildirFlags = append(maildirFlags, maildirFlag) + } + } + return maildirFlags +} + func (m Message) UID() uint32 { return m.uid } |