3 files changed
+32
crates/smbcloud-networking-project/src/crud_frontend_app_read.rs
new
+25
@@ -0,0 +1,25 @@
1
+use {
2
+ crate::url_builder::build_frontend_apps_url,
3
+ reqwest::Client,
4
+ smbcloud_model::{error_codes::ErrorResponse, frontend_app::FrontendApp},
5
+ smbcloud_network::{environment::Environment, network::request},
6
+ smbcloud_networking::{constants::SMB_USER_AGENT, smb_client::SmbClient},
7
+};
8
+
9
+pub async fn get_frontend_apps_by_project(
10
+ env: Environment,
11
+ client: (&SmbClient, &str),
12
+ access_token: String,
13
+ project_id: i32,
14
+) -> Result<Vec<FrontendApp>, ErrorResponse> {
15
+ let url = format!(
16
+ "{}?project_id={}",
17
+ build_frontend_apps_url(env, client),
18
+ project_id
19
+ );
20
+ let builder = Client::new()
21
+ .get(url)
22
+ .header("Authorization", access_token)
23
+ .header("User-agent", SMB_USER_AGENT);
24
+ request(builder).await
25
+}
crates/smbcloud-networking-project/src/lib.rs
+1
@@ -1,3 +1,4 @@
1
+pub mod crud_frontend_app_read;
2
pub mod crud_project_create;
3
pub mod crud_project_delete;
4
pub mod crud_project_deployment_create;
crates/smbcloud-networking-project/src/url_builder.rs
+6
@@ -3,6 +3,12 @@ use {
3
smbcloud_networking::{smb_base_url_builder, smb_client::SmbClient},
4
};
5
6
+pub(crate) fn build_frontend_apps_url(env: Environment, client: (&SmbClient, &str)) -> String {
7
+ let mut url_builder = smb_base_url_builder(env, client);
8
+ url_builder.add_route("v1/frontend_apps");
9
+ url_builder.build()
10
+}
11
+
12
// Private functions
13
14
pub(crate) fn build_project_url(env: Environment, client: (&SmbClient, &str)) -> String {