summaryrefslogtreecommitdiff
path: root/crates/jmap/src/api/management/report.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/jmap/src/api/management/report.rs')
-rw-r--r--crates/jmap/src/api/management/report.rs22
1 files changed, 15 insertions, 7 deletions
diff --git a/crates/jmap/src/api/management/report.rs b/crates/jmap/src/api/management/report.rs
index daa91451..5540d41b 100644
--- a/crates/jmap/src/api/management/report.rs
+++ b/crates/jmap/src/api/management/report.rs
@@ -4,7 +4,9 @@
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
-use common::auth::AccessToken;
+use std::future::Future;
+
+use common::{auth::AccessToken, Server};
use directory::{
backend::internal::{manage::ManageDirectory, PrincipalField},
Permission, Type,
@@ -23,10 +25,7 @@ use store::{
use trc::AddContext;
use utils::url_params::UrlParams;
-use crate::{
- api::{http::ToHttpResponse, HttpRequest, HttpResponse, JsonResponse},
- JMAP,
-};
+use crate::api::{http::ToHttpResponse, HttpRequest, HttpResponse, JsonResponse};
use super::decode_path_element;
@@ -36,8 +35,17 @@ enum ReportType {
Arf,
}
-impl JMAP {
- pub async fn handle_manage_reports(
+pub trait ManageReports: Sync + Send {
+ fn handle_manage_reports(
+ &self,
+ req: &HttpRequest,
+ path: Vec<&str>,
+ access_token: &AccessToken,
+ ) -> impl Future<Output = trc::Result<HttpResponse>> + Send;
+}
+
+impl ManageReports for Server {
+ async fn handle_manage_reports(
&self,
req: &HttpRequest,
path: Vec<&str>,