summaryrefslogtreecommitdiff
path: root/crates/jmap/src/api/management/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/jmap/src/api/management/mod.rs')
-rw-r--r--crates/jmap/src/api/management/mod.rs31
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>>,