oxinat_core/uri/admin/
services.rs

1use std::{fmt::Debug, sync::Arc};
2
3use crate::{UriBuilder, Version};
4
5#[derive(Clone, Debug, Default, UriBuilder)]
6#[match_path(path = "{parent}/services")]
7pub struct ServicesUriLegacyBuilder<Parent>
8where
9    Parent: Clone + Debug + UriBuilder,
10{
11    #[parent]
12    parent: Option<Arc<Parent>>
13}
14
15impl ServicesUriLegacyBuilder<String> {
16    /// Produces the services/audit URI path.
17    pub fn build_audit(&self, xsi_type: &str, object_id: &str) -> crate::BuildResult {
18        self.build_join(format!("audit/{xsi_type}/{object_id}"))
19    }
20
21    /// Produces the services/features URI path.
22    pub fn build_features(&self) -> crate::BuildResult {
23        self.build_join("features")
24    }
25
26    /// Produces the services/refresh/catalog URI
27    /// path.
28    pub fn build_refresh_catalog(&self) -> crate::BuildResult {
29        self.build_join("refresh/catalog")
30    }
31
32    /// Produces the services/mail/sent URI path.
33    pub fn build_mail_send(&self) -> crate::BuildResult {
34        self.build_join("mail/send")
35    }
36
37    /// Produces the services/move-files URI path.
38    pub fn build_move_files(&self) -> crate::BuildResult {
39        self.build_join("move-files")
40    }
41
42    /// Produces the
43    /// services/sendEmailVerification URI path.
44    pub fn build_send_email_verification(&self) -> crate::BuildResult {
45        self.build_join("sendEmailVerification")
46    }
47}
48
49/// Represents the URI paths available for legacy
50/// service management.
51pub trait ServicesUriLegacy: Version {
52    #[inline]
53    fn services(&self) -> ServicesUriLegacyBuilder<String> {
54        ServicesUriLegacyBuilder::from_parent(self.data_uri().into())
55    }
56}