1 use crate::url_builder::build_project_url;
2 use anyhow::Result;
3 use reqwest::Client;
4 use smbcloud_model::{
5 error_codes::ErrorResponse,
6 project::{Project, ProjectCreate},
7 };
8 use smbcloud_network::{environment::Environment, network::request};
9 use smbcloud_networking::{constants::SMB_USER_AGENT, smb_client::SmbClient};
10
11 pub async fn create_project(
12 env: Environment,
13 client: (&SmbClient, &str),
14 access_token: String,
15 project: ProjectCreate,
16 ) -> Result<Project, ErrorResponse> {
17 let builder = Client::new()
18 .post(build_project_url(env, client))
19 .json(&project)
20 .header("Authorization", access_token)
21 .header("User-agent", SMB_USER_AGENT);
22 request(builder).await
23 }