Update SieveScript to DRAFT-14.

main
Mauro D 2023-05-20 18:51:47 +00:00
parent c8d672057e
commit 5c7fd055ec
7 changed files with 16 additions and 10 deletions

View File

@ -10,7 +10,7 @@ _jmap-client_ is a **JSON Meta Application Protocol (JMAP) library** written in
- JMAP Core ([RFC 8620](https://datatracker.ietf.org/doc/html/rfc8620))
- JMAP for Mail ([RFC 8621](https://datatracker.ietf.org/doc/html/rfc8621))
- JMAP over WebSocket ([RFC 8887](https://datatracker.ietf.org/doc/html/rfc8887)).
- JMAP for Sieve Scripts ([DRAFT-SIEVE-12](https://www.ietf.org/archive/id/draft-ietf-jmap-sieve-12.html)).
- JMAP for Sieve Scripts ([DRAFT-SIEVE-14](https://www.ietf.org/archive/id/draft-ietf-jmap-sieve-14.html)).
Features:

View File

@ -110,6 +110,8 @@ pub struct WebSocketCapabilities {
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SieveCapabilities {
#[serde(rename = "implementation")]
implementation: Option<String>,
#[serde(rename = "maxSizeScriptName")]
max_script_name: Option<usize>,
#[serde(rename = "maxSizeScript")]

View File

@ -430,7 +430,10 @@ impl Display for SetErrorType {
}
pub fn from_timestamp(timestamp: i64) -> DateTime<Utc> {
DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(timestamp, 0), Utc)
DateTime::<Utc>::from_utc(
NaiveDateTime::from_timestamp_opt(timestamp, 0).unwrap_or_default(),
Utc,
)
}
pub fn string_not_set(string: &Option<String>) -> bool {

View File

@ -96,8 +96,6 @@ impl EventParser {
id,
..
}) => {
#[cfg(feature = "debug")]
use std::iter::FromIterator;
#[cfg(feature = "debug")]
return Some(Ok(Changes {
id: if !id.is_empty() {

View File

@ -112,7 +112,7 @@ impl Client {
request
.set_sieve_script()
.arguments()
.on_success_deactivate_scripts();
.on_success_deactivate_script(true);
request
.send_single::<SieveScriptSetResponse>()
.await?

View File

@ -52,7 +52,10 @@ pub struct SieveScript<State = Get> {
pub struct SetArguments {
#[serde(rename = "onSuccessActivateScript")]
#[serde(skip_serializing_if = "Option::is_none")]
on_success_activate_script: Option<Option<String>>,
on_success_activate_script: Option<String>,
#[serde(rename = "onSuccessDeactivateScript")]
#[serde(skip_serializing_if = "Option::is_none")]
on_success_deactivate_script: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash, Copy)]

View File

@ -46,17 +46,17 @@ impl SetObject for SieveScript<Set> {
impl SetArguments {
pub fn on_success_activate_script(&mut self, id: impl Into<String>) -> &mut Self {
self.on_success_activate_script = Some(Some(format!("#{}", id.into())));
self.on_success_activate_script = Some(format!("#{}", id.into()));
self
}
pub fn on_success_activate_script_id(&mut self, id: impl Into<String>) -> &mut Self {
self.on_success_activate_script = Some(Some(id.into()));
self.on_success_activate_script = Some(id.into());
self
}
pub fn on_success_deactivate_scripts(&mut self) -> &mut Self {
self.on_success_activate_script = Some(None);
pub fn on_success_deactivate_script(&mut self, value: bool) -> &mut Self {
self.on_success_deactivate_script = Some(value);
self
}
}