Minor enhancements and Eventsource timeout fix.
parent
9461f63842
commit
7db07e742a
|
@ -25,7 +25,7 @@ use crate::{
|
|||
const DEFAULT_TIMEOUT_MS: u64 = 10 * 1000;
|
||||
static USER_AGENT: &str = concat!("jmap-client/", env!("CARGO_PKG_VERSION"));
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub enum Credentials {
|
||||
Basic(String),
|
||||
Bearer(String),
|
||||
|
|
|
@ -58,10 +58,7 @@ impl Client {
|
|||
V: IntoIterator<Item = W>,
|
||||
W: Into<String>,
|
||||
{
|
||||
let blob_id = self
|
||||
.upload(account_id.into(), raw_message, None)
|
||||
.await?
|
||||
.take_blob_id();
|
||||
let blob_id = self.upload(None, raw_message, None).await?.take_blob_id();
|
||||
let mut request = self.build();
|
||||
let import_request = request
|
||||
.import_email()
|
||||
|
|
|
@ -108,6 +108,10 @@ pub enum Filter {
|
|||
#[serde(rename = "sentAfter")]
|
||||
value: DateTime<Utc>,
|
||||
},
|
||||
InThread {
|
||||
#[serde(rename = "inThread")]
|
||||
value: String,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Debug, Clone)]
|
||||
|
@ -281,6 +285,12 @@ impl Filter {
|
|||
value: from_timestamp(value),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn in_thread(value: impl Into<String>) -> Self {
|
||||
Filter::InThread {
|
||||
value: value.into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Comparator {
|
||||
|
|
|
@ -62,7 +62,7 @@ impl Client {
|
|||
|
||||
let mut stream = Client::handle_error(
|
||||
reqwest::Client::builder()
|
||||
.timeout(Duration::from_millis(self.timeout()))
|
||||
.connect_timeout(Duration::from_millis(self.timeout()))
|
||||
.default_headers(headers)
|
||||
.build()?
|
||||
.get(event_source_url)
|
||||
|
|
|
@ -105,14 +105,14 @@ impl MailboxRights {
|
|||
(self.may_read_items, ACL::ReadItems),
|
||||
(self.may_add_items, ACL::AddItems),
|
||||
(self.may_remove_items, ACL::RemoveItems),
|
||||
(self.may_set_seen, ACL::SetSeen),
|
||||
(self.may_set_keywords, ACL::SetKeywords),
|
||||
(self.may_set_seen, ACL::ModifyItems),
|
||||
(self.may_set_keywords, ACL::ModifyItems),
|
||||
(self.may_create_child, ACL::CreateChild),
|
||||
(self.may_rename, ACL::Modify),
|
||||
(self.may_delete, ACL::Delete),
|
||||
(self.may_submit, ACL::Submit),
|
||||
] {
|
||||
if is_set {
|
||||
if is_set && !acl_list.contains(&acl) {
|
||||
acl_list.push(acl);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -103,7 +103,7 @@ pub(crate) enum ACLPatch {
|
|||
Set(bool),
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||||
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
pub enum Role {
|
||||
#[serde(rename = "archive", alias = "ARCHIVE")]
|
||||
|
|
|
@ -62,10 +62,9 @@ impl Mailbox<Set> {
|
|||
}
|
||||
|
||||
pub fn acl_set(&mut self, id: &str, acl: ACL, set: bool) -> &mut Self {
|
||||
self.acl_patch.get_or_insert_with(HashMap::new).insert(
|
||||
format!("acl/{}/{}", id, acl.to_string()),
|
||||
ACLPatch::Set(set),
|
||||
);
|
||||
self.acl_patch
|
||||
.get_or_insert_with(HashMap::new)
|
||||
.insert(format!("acl/{}/{}", id, acl), ACLPatch::Set(set));
|
||||
self
|
||||
}
|
||||
}
|
||||
|
|
|
@ -104,12 +104,8 @@ pub enum ACL {
|
|||
CreateChild = 7,
|
||||
#[serde(rename = "administer")]
|
||||
Administer = 8,
|
||||
#[serde(rename = "setSeen")]
|
||||
SetSeen = 9,
|
||||
#[serde(rename = "setKeywords")]
|
||||
SetKeywords = 10,
|
||||
#[serde(rename = "submit")]
|
||||
Submit = 11,
|
||||
Submit = 10,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||
|
@ -171,8 +167,6 @@ impl Display for ACL {
|
|||
ACL::RemoveItems => write!(f, "removeItems"),
|
||||
ACL::CreateChild => write!(f, "createChild"),
|
||||
ACL::Administer => write!(f, "administer"),
|
||||
ACL::SetSeen => write!(f, "setSeen"),
|
||||
ACL::SetKeywords => write!(f, "setKeywords"),
|
||||
ACL::Submit => write!(f, "submit"),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue