1 use crate::url_builder::{build_project_url, build_project_url_with_id};
2 use reqwest::Client;
3 use smbcloud_model::{error_codes::ErrorResponse, project::Project};
4 use smbcloud_network::{environment::Environment, network::request};
5 use smbcloud_networking::constants::SMB_USER_AGENT;
6
7 pub async fn get_project(
8 env: Environment,
9 access_token: String,
10 id: String,
11 ) -> Result<Project, ErrorResponse> {
12 let builder: reqwest::RequestBuilder = Client::new()
13 .get(build_project_url_with_id(env, id))
14 .header("Authorization", access_token)
15 .header("User-agent", SMB_USER_AGENT);
16 request(builder).await
17 }
18
19 pub async fn get_projects(
20 env: Environment,
21 access_token: String,
22 ) -> Result<Vec<Project>, ErrorResponse> {
23 let builder = Client::new()
24 .get(build_project_url(env))
25 .header("Authorization", access_token)
26 .header("User-agent", SMB_USER_AGENT);
27 request(builder).await
28 }