1 use crate::url_builder::{build_project_deployment, build_project_deployment_index};
2 use anyhow::Result;
3 use reqwest::Client;
4 use smbcloud_model::{error_codes::ErrorResponse, project::Deployment};
5 use smbcloud_network::{environment::Environment, network::request};
6 use smbcloud_networking::{constants::SMB_USER_AGENT, smb_client::SmbClient};
7
8 pub async fn get_deployments(
9 env: Environment,
10 client: (&SmbClient, &str),
11 access_token: String,
12 project_id: i32,
13 ) -> Result<Vec<Deployment>, ErrorResponse> {
14 let builder = Client::new()
15 .get(build_project_deployment_index(
16 env,
17 client,
18 project_id.to_string(),
19 ))
20 .header("Authorization", access_token)
21 .header("User-agent", SMB_USER_AGENT);
22 request(builder).await
23 }
24
25 pub async fn get_deployment(
26 env: Environment,
27 client: (&SmbClient, &str),
28 access_token: String,
29 project_id: i32,
30 deployment_id: i32,
31 ) -> Result<Deployment, ErrorResponse> {
32 let builder = Client::new()
33 .get(build_project_deployment(
34 env,
35 client,
36 project_id.to_string(),
37 deployment_id.to_string(),
38 ))
39 .header("Authorization", access_token)
40 .header("User-agent", SMB_USER_AGENT);
41 request(builder).await
42 }