aboutsummaryrefslogtreecommitdiffstats
path: root/worker/jmap/state.go
diff options
context:
space:
mode:
Diffstat (limited to 'worker/jmap/state.go')
-rw-r--r--worker/jmap/state.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/worker/jmap/state.go b/worker/jmap/state.go
new file mode 100644
index 00000000..3dbab3fb
--- /dev/null
+++ b/worker/jmap/state.go
@@ -0,0 +1,29 @@
+package jmap
+
+import (
+ "git.sr.ht/~rockorager/go-jmap"
+ "git.sr.ht/~rockorager/go-jmap/mail/mailbox"
+)
+
+func (w *JMAPWorker) getMailboxState() (string, error) {
+ var req jmap.Request
+
+ req.Invoke(&mailbox.Get{Account: w.accountId, IDs: make([]jmap.ID, 0)})
+ resp, err := w.Do(&req)
+ if err != nil {
+ return "", err
+ }
+
+ for _, inv := range resp.Responses {
+ switch r := inv.Args.(type) {
+ case *mailbox.GetResponse:
+ return r.State, nil
+ case *jmap.MethodError:
+ return "", wrapMethodError(r)
+
+ }
+ }
+
+ // This should be an impossibility
+ return "", nil
+}