changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate rust/app/cli/mailman/main.rs

changeset 67: 0ccbbd142694
child: 55fbe0e45b62
author: ellis <ellis@rwest.io>
date: Sat, 02 Dec 2023 16:26:08 -0500
permissions: -rw-r--r--
description: rust cleanup, added rocksdb bindings
67
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
1
 use jmap_client::{client::Client, core::query::Filter, email, mailbox};
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
2
 #[tokio::main]
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
3
 async fn main() {
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
4
   let client = Client::new()
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
5
     .credentials(("ellis", "2pldn"))
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
6
     //    .credentials(Credentials::bearer("
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
7
     // 3XBDZ39pSQfrthH14cIFilI9raBN65zC8UKxcL2rp1XotT16FiN8yJVaFkabKL1h"))
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
8
     .connect("https://mail.compiler.company:8080")
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
9
     .await
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
10
     .unwrap();
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
11
   println!(
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
12
     "{:?}",
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
13
     client
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
14
       .email_query(
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
15
         Filter::and([email::query::Filter::has_keyword("$draft")]).into(),
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
16
         [email::query::Comparator::from()].into()
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
17
       )
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
18
       .await
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
19
       .unwrap()
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
20
       .take_ids()
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
21
   );
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
22
   // Query mailboxes to obtain Inbox and Trash folder id
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
23
   let inbox_id = client
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
24
     .mailbox_query(
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
25
       mailbox::query::Filter::role(mailbox::Role::Inbox).into(),
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
26
       None::<Vec<_>>,
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
27
     )
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
28
     .await
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
29
     .unwrap()
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
30
     .take_ids()
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
31
     .pop()
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
32
     .unwrap();
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
33
   let trash_id = client
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
34
     .mailbox_query(
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
35
       mailbox::query::Filter::role(mailbox::Role::Trash).into(),
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
36
       None::<Vec<_>>,
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
37
     )
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
38
     .await
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
39
     .unwrap()
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
40
     .take_ids()
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
41
     .pop()
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
42
     .unwrap();
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
43
 
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
44
   println!("Inbox: {:?}", inbox_id);
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
45
   println!("Trash: {:?}", trash_id);
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents:
diff changeset
46
 }