diff options
Diffstat (limited to 'crates/jmap/src/api/management/mod.rs')
-rw-r--r-- | crates/jmap/src/api/management/mod.rs | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/crates/jmap/src/api/management/mod.rs b/crates/jmap/src/api/management/mod.rs index 0a3dc0c2..d7a0b704 100644 --- a/crates/jmap/src/api/management/mod.rs +++ b/crates/jmap/src/api/management/mod.rs @@ -19,15 +19,28 @@ pub mod stores; use std::{borrow::Cow, str::FromStr, sync::Arc}; -use common::auth::AccessToken; +use common::{auth::AccessToken, Server}; use directory::{backend::internal::manage, Permission}; +use dkim::DkimManagement; +use dns::DnsManagement; +use enterprise::telemetry::TelemetryApi; use hyper::Method; +use log::LogManagement; use mail_parser::DateTime; +use principal::PrincipalManager; +use queue::QueueManagement; +use reload::ManageReload; +use report::ManageReports; use serde::Serialize; +use settings::ManageSettings; +use sieve::SieveHandler; use store::write::now; +use stores::ManageStore; + +use crate::{auth::oauth::auth::OAuthApiHandler, email::crypto::CryptoHandler}; use super::{http::HttpSessionData, HttpRequest, HttpResponse}; -use crate::JMAP; +use std::future::Future; #[derive(Serialize)] #[serde(tag = "error")] @@ -53,9 +66,19 @@ pub enum ManagementApiError<'x> { }, } -impl JMAP { +pub trait ManagementApi: Sync + Send { + fn handle_api_manage_request( + &self, + req: &HttpRequest, + body: Option<Vec<u8>>, + access_token: Arc<AccessToken>, + session: &HttpSessionData, + ) -> impl Future<Output = trc::Result<HttpResponse>> + Send; +} + +impl ManagementApi for Server { #[allow(unused_variables)] - pub async fn handle_api_manage_request( + async fn handle_api_manage_request( &self, req: &HttpRequest, body: Option<Vec<u8>>, |