1 use {
2 smbcloud_network::environment::Environment,
3 smbcloud_networking::{smb_base_url_builder, smb_client::SmbClient},
4 };
5
6 pub(crate) fn build_mail_apps_url(
7 env: Environment,
8 client: (&SmbClient, &str),
9 project_id: Option<&str>,
10 ) -> String {
11 let mut url_builder = smb_base_url_builder(env, client);
12 url_builder.add_route("v1/mail_apps");
13 if let Some(project_id) = project_id {
14 url_builder.add_param("project_id", project_id);
15 }
16 url_builder.build()
17 }
18
19 pub(crate) fn build_mail_app_url(
20 env: Environment,
21 client: (&SmbClient, &str),
22 mail_app_id: &str,
23 ) -> String {
24 let mut url_builder = smb_base_url_builder(env, client);
25 url_builder.add_route("v1/mail_apps");
26 url_builder.add_route(mail_app_id);
27 url_builder.build()
28 }
29
30 pub(crate) fn build_mail_inboxes_url(
31 env: Environment,
32 client: (&SmbClient, &str),
33 mail_app_id: &str,
34 ) -> String {
35 let mut url_builder = smb_base_url_builder(env, client);
36 url_builder.add_route("v1/mail_apps");
37 url_builder.add_route(mail_app_id);
38 url_builder.add_route("inboxes");
39 url_builder.build()
40 }
41
42 pub(crate) fn build_mail_inbox_url(
43 env: Environment,
44 client: (&SmbClient, &str),
45 mail_app_id: &str,
46 inbox_id: &str,
47 ) -> String {
48 let mut url_builder = smb_base_url_builder(env, client);
49 url_builder.add_route("v1/mail_apps");
50 url_builder.add_route(mail_app_id);
51 url_builder.add_route("inboxes");
52 url_builder.add_route(inbox_id);
53 url_builder.build()
54 }
55
56 pub(crate) fn build_mail_inbox_test_url(
57 env: Environment,
58 client: (&SmbClient, &str),
59 mail_app_id: &str,
60 inbox_id: &str,
61 ) -> String {
62 let mut url_builder = smb_base_url_builder(env, client);
63 url_builder.add_route("v1/mail_apps");
64 url_builder.add_route(mail_app_id);
65 url_builder.add_route("inboxes");
66 url_builder.add_route(inbox_id);
67 url_builder.add_route("send_test_email");
68 url_builder.build()
69 }
70
71 pub(crate) fn build_mail_messages_url(
72 env: Environment,
73 client: (&SmbClient, &str),
74 mail_app_id: &str,
75 inbox_id: &str,
76 limit: Option<u32>,
77 ) -> String {
78 let mut url_builder = smb_base_url_builder(env, client);
79 url_builder.add_route("v1/mail_apps");
80 url_builder.add_route(mail_app_id);
81 url_builder.add_route("inboxes");
82 url_builder.add_route(inbox_id);
83 url_builder.add_route("messages");
84 if let Some(limit) = limit {
85 let limit_string = limit.to_string();
86 url_builder.add_param("limit", &limit_string);
87 }
88 url_builder.build()
89 }
90
91 pub(crate) fn build_mail_message_url(
92 env: Environment,
93 client: (&SmbClient, &str),
94 mail_app_id: &str,
95 inbox_id: &str,
96 message_id: &str,
97 ) -> String {
98 let mut url_builder = smb_base_url_builder(env, client);
99 url_builder.add_route("v1/mail_apps");
100 url_builder.add_route(mail_app_id);
101 url_builder.add_route("inboxes");
102 url_builder.add_route(inbox_id);
103 url_builder.add_route("messages");
104 url_builder.add_route(message_id);
105 url_builder.build()
106 }