refactor(caldav)

This commit is contained in:
Lennart
2024-05-27 15:10:26 +02:00
parent 0d67a4d96e
commit b910fd461c
9 changed files with 13 additions and 14 deletions

View File

@@ -0,0 +1,2 @@
pub mod resource;
pub mod route;

View File

@@ -1,11 +1,10 @@
use actix_web::http::Method; use actix_web::http::Method;
use actix_web::web::{self, Data}; use actix_web::web::{self, Data};
use actix_web::{guard, HttpResponse, Responder}; use actix_web::{guard, HttpResponse, Responder};
use resources::calendar::CalendarResource; use calendar::resource::CalendarResource;
use principal::PrincipalResource;
use resources::event::EventResource; use resources::event::EventResource;
use resources::principal::PrincipalResource; use root::RootResource;
use resources::root::RootResource;
use routes::{calendar, event};
use rustical_auth::CheckAuthentication; use rustical_auth::CheckAuthentication;
use rustical_dav::error::Error; use rustical_dav::error::Error;
use rustical_dav::propfind::{handle_propfind, ServicePrefix}; use rustical_dav::propfind::{handle_propfind, ServicePrefix};
@@ -13,9 +12,12 @@ use rustical_store::calendar::CalendarStore;
use std::str::FromStr; use std::str::FromStr;
use std::sync::Arc; use std::sync::Arc;
use tokio::sync::RwLock; use tokio::sync::RwLock;
pub mod calendar;
pub mod event;
pub mod principal;
pub mod resources; pub mod resources;
pub mod routes; pub mod root;
pub struct CalDavContext<C: CalendarStore + ?Sized> { pub struct CalDavContext<C: CalendarStore + ?Sized> {
pub store: Arc<RwLock<C>>, pub store: Arc<RwLock<C>>,
@@ -55,11 +57,11 @@ pub fn configure_dav<A: CheckAuthentication, C: CalendarStore + ?Sized>(
// .service(DavResourceService::<PrincipalResource>::new("/{principal}")) // .service(DavResourceService::<PrincipalResource>::new("/{principal}"))
.service( .service(
web::resource("/{principal}/{calendar}") web::resource("/{principal}/{calendar}")
.route(report_method().to(calendar::route_report_calendar::<A, C>)) .route(report_method().to(calendar::route::route_report_calendar::<A, C>))
// .route(web::method(propfind_method()).to(route_propfind::<A, CalendarResource<C>, C>)) // .route(web::method(propfind_method()).to(route_propfind::<A, CalendarResource<C>, C>))
.route(propfind_method().to(handle_propfind::<A, CalendarResource<C>>)) .route(propfind_method().to(handle_propfind::<A, CalendarResource<C>>))
.route(mkcol_method().to(calendar::route_mkcol_calendar::<A, C>)) .route(mkcol_method().to(calendar::route::route_mkcol_calendar::<A, C>))
.route(web::method(Method::DELETE).to(calendar::delete_calendar::<A, C>)), .route(web::method(Method::DELETE).to(calendar::route::delete_calendar::<A, C>)),
) )
// .service(web::resource("/{principal}/{calendar}").route(route)) // .service(web::resource("/{principal}/{calendar}").route(route))
.service( .service(

View File

@@ -12,7 +12,7 @@ use serde::Serialize;
use strum::{EnumString, IntoStaticStr, VariantNames}; use strum::{EnumString, IntoStaticStr, VariantNames};
use tokio::sync::RwLock; use tokio::sync::RwLock;
use super::calendar::CalendarFile; use crate::calendar::resource::CalendarFile;
pub struct PrincipalResource<C: CalendarStore + ?Sized> { pub struct PrincipalResource<C: CalendarStore + ?Sized> {
principal: String, principal: String,

View File

@@ -1,4 +1 @@
pub mod calendar;
pub mod event; pub mod event;
pub mod principal;
pub mod root;

View File

@@ -1,2 +0,0 @@
pub mod calendar;
pub mod event;