aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock28
-rw-r--r--Cargo.toml3
-rw-r--r--aero-collections/Cargo.toml1
-rw-r--r--aero-proto/src/dav/controller.rs4
4 files changed, 35 insertions, 1 deletions
diff --git a/Cargo.lock b/Cargo.lock
index c6228af..484d96e 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -51,6 +51,7 @@ dependencies = [
"eml-codec",
"futures",
"hex",
+ "icalendar",
"im",
"lazy_static",
"rand",
@@ -1662,8 +1663,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
dependencies = [
"cfg-if",
+ "js-sys",
"libc",
"wasi",
+ "wasm-bindgen",
]
[[package]]
@@ -1973,6 +1976,18 @@ dependencies = [
]
[[package]]
+name = "icalendar"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd83e81e8a329918d84e49032f8e596f4f079380942d172724cea3599a80807e"
+dependencies = [
+ "chrono",
+ "iso8601",
+ "nom 7.1.3",
+ "uuid",
+]
+
+[[package]]
name = "idna"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2088,6 +2103,15 @@ dependencies = [
]
[[package]]
+name = "iso8601"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "924e5d73ea28f59011fec52a0d12185d496a9b075d360657aed2a5707f701153"
+dependencies = [
+ "nom 7.1.3",
+]
+
+[[package]]
name = "itoa"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3636,6 +3660,10 @@ name = "uuid"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+dependencies = [
+ "getrandom",
+ "wasm-bindgen",
+]
[[package]]
name = "valuable"
diff --git a/Cargo.toml b/Cargo.toml
index d4bc543..68b1eae 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -57,6 +57,9 @@ smtp-server = { git = "http://github.com/Alexis211/kannader", branch = "feature/
imap-codec = { version = "2.0.0", features = ["bounded-static", "ext_condstore_qresync"] }
imap-flow = { git = "https://github.com/duesee/imap-flow.git", branch = "main" }
+# dav protocols
+icalendar = "0.16"
+
# http & web
http = "1.1"
http-body-util = "0.1.1"
diff --git a/aero-collections/Cargo.toml b/aero-collections/Cargo.toml
index 90d285e..95ab142 100644
--- a/aero-collections/Cargo.toml
+++ b/aero-collections/Cargo.toml
@@ -22,3 +22,4 @@ rand.workspace = true
im.workspace = true
sodiumoxide.workspace = true
eml-codec.workspace = true
+icalendar.workspace = true
diff --git a/aero-proto/src/dav/controller.rs b/aero-proto/src/dav/controller.rs
index f3b5496..885828f 100644
--- a/aero-proto/src/dav/controller.rs
+++ b/aero-proto/src/dav/controller.rs
@@ -104,9 +104,11 @@ impl Controller {
// Multiget is really like a propfind where Depth: 0|1|Infinity is replaced by an arbitrary
// list of URLs
+ // @FIXME
let multiget = match report {
cal::Report::Multiget(m) => m,
- _ => return Ok(Response::builder()
+ cal::Report::Query(q) => todo!(),
+ cal::Report::FreeBusy(_) => return Ok(Response::builder()
.status(501)
.body(text_body("Not implemented"))?),
};