Minor enhancements and Eventsource timeout fix.

main
Mauro D 2022-07-23 15:22:00 +00:00
parent 9461f63842
commit 7db07e742a
8 changed files with 21 additions and 21 deletions

View File

@ -25,7 +25,7 @@ use crate::{
const DEFAULT_TIMEOUT_MS: u64 = 10 * 1000; const DEFAULT_TIMEOUT_MS: u64 = 10 * 1000;
static USER_AGENT: &str = concat!("jmap-client/", env!("CARGO_PKG_VERSION")); static USER_AGENT: &str = concat!("jmap-client/", env!("CARGO_PKG_VERSION"));
#[derive(Debug)] #[derive(Debug, PartialEq, Eq)]
pub enum Credentials { pub enum Credentials {
Basic(String), Basic(String),
Bearer(String), Bearer(String),

View File

@ -58,10 +58,7 @@ impl Client {
V: IntoIterator<Item = W>, V: IntoIterator<Item = W>,
W: Into<String>, W: Into<String>,
{ {
let blob_id = self let blob_id = self.upload(None, raw_message, None).await?.take_blob_id();
.upload(account_id.into(), raw_message, None)
.await?
.take_blob_id();
let mut request = self.build(); let mut request = self.build();
let import_request = request let import_request = request
.import_email() .import_email()

View File

@ -108,6 +108,10 @@ pub enum Filter {
#[serde(rename = "sentAfter")] #[serde(rename = "sentAfter")]
value: DateTime<Utc>, value: DateTime<Utc>,
}, },
InThread {
#[serde(rename = "inThread")]
value: String,
},
} }
#[derive(Serialize, Debug, Clone)] #[derive(Serialize, Debug, Clone)]
@ -281,6 +285,12 @@ impl Filter {
value: from_timestamp(value), value: from_timestamp(value),
} }
} }
pub fn in_thread(value: impl Into<String>) -> Self {
Filter::InThread {
value: value.into(),
}
}
} }
impl Comparator { impl Comparator {

View File

@ -62,7 +62,7 @@ impl Client {
let mut stream = Client::handle_error( let mut stream = Client::handle_error(
reqwest::Client::builder() reqwest::Client::builder()
.timeout(Duration::from_millis(self.timeout())) .connect_timeout(Duration::from_millis(self.timeout()))
.default_headers(headers) .default_headers(headers)
.build()? .build()?
.get(event_source_url) .get(event_source_url)

View File

@ -105,14 +105,14 @@ impl MailboxRights {
(self.may_read_items, ACL::ReadItems), (self.may_read_items, ACL::ReadItems),
(self.may_add_items, ACL::AddItems), (self.may_add_items, ACL::AddItems),
(self.may_remove_items, ACL::RemoveItems), (self.may_remove_items, ACL::RemoveItems),
(self.may_set_seen, ACL::SetSeen), (self.may_set_seen, ACL::ModifyItems),
(self.may_set_keywords, ACL::SetKeywords), (self.may_set_keywords, ACL::ModifyItems),
(self.may_create_child, ACL::CreateChild), (self.may_create_child, ACL::CreateChild),
(self.may_rename, ACL::Modify), (self.may_rename, ACL::Modify),
(self.may_delete, ACL::Delete), (self.may_delete, ACL::Delete),
(self.may_submit, ACL::Submit), (self.may_submit, ACL::Submit),
] { ] {
if is_set { if is_set && !acl_list.contains(&acl) {
acl_list.push(acl); acl_list.push(acl);
} }
} }

View File

@ -103,7 +103,7 @@ pub(crate) enum ACLPatch {
Set(bool), Set(bool),
} }
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")] #[serde(rename_all = "lowercase")]
pub enum Role { pub enum Role {
#[serde(rename = "archive", alias = "ARCHIVE")] #[serde(rename = "archive", alias = "ARCHIVE")]

View File

@ -62,10 +62,9 @@ impl Mailbox<Set> {
} }
pub fn acl_set(&mut self, id: &str, acl: ACL, set: bool) -> &mut Self { pub fn acl_set(&mut self, id: &str, acl: ACL, set: bool) -> &mut Self {
self.acl_patch.get_or_insert_with(HashMap::new).insert( self.acl_patch
format!("acl/{}/{}", id, acl.to_string()), .get_or_insert_with(HashMap::new)
ACLPatch::Set(set), .insert(format!("acl/{}/{}", id, acl), ACLPatch::Set(set));
);
self self
} }
} }

View File

@ -104,12 +104,8 @@ pub enum ACL {
CreateChild = 7, CreateChild = 7,
#[serde(rename = "administer")] #[serde(rename = "administer")]
Administer = 8, Administer = 8,
#[serde(rename = "setSeen")]
SetSeen = 9,
#[serde(rename = "setKeywords")]
SetKeywords = 10,
#[serde(rename = "submit")] #[serde(rename = "submit")]
Submit = 11, Submit = 10,
} }
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
@ -171,8 +167,6 @@ impl Display for ACL {
ACL::RemoveItems => write!(f, "removeItems"), ACL::RemoveItems => write!(f, "removeItems"),
ACL::CreateChild => write!(f, "createChild"), ACL::CreateChild => write!(f, "createChild"),
ACL::Administer => write!(f, "administer"), ACL::Administer => write!(f, "administer"),
ACL::SetSeen => write!(f, "setSeen"),
ACL::SetKeywords => write!(f, "setKeywords"),
ACL::Submit => write!(f, "submit"), ACL::Submit => write!(f, "submit"),
} }
} }