Minor enhancements and Eventsource timeout fix.
parent
9461f63842
commit
7db07e742a
|
@ -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),
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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")]
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue