all repos — postern @ main

Modern mail management

internal/imap/mailbox.go (view raw)

 1package imap
 2
 3import (
 4	"postern/internal/model"
 5
 6	"github.com/emersion/go-imap/v2"
 7)
 8
 9func getMailboxAttr(m model.Mailbox) []imap.MailboxAttr {
10	mbAttr := make([]imap.MailboxAttr, 0)
11
12	var validSpecialUse = map[imap.MailboxAttr]bool{
13		imap.MailboxAttrArchive: true,
14		imap.MailboxAttrDrafts:  true,
15		imap.MailboxAttrJunk:    true,
16		imap.MailboxAttrSent:    true,
17		imap.MailboxAttrTrash:   true,
18	}
19
20	if m.SpecialUse != nil {
21		attr := imap.MailboxAttr(*m.SpecialUse)
22		if validSpecialUse[attr] {
23			mbAttr = append(mbAttr, attr)
24		}
25	}
26
27	if m.IsSubscribed {
28		mbAttr = append(mbAttr, imap.MailboxAttrSubscribed)
29	}
30
31	return mbAttr
32}