1 use crate::url_builder::build_project_deployment_index;
2 use anyhow::Result;
3 use reqwest::Client;
4 use smbcloud_model::{
5 error_codes::ErrorResponse,
6 project::{Deployment, DeploymentPayload},
7 };
8 use smbcloud_networking::{constants::SMB_USER_AGENT, environment::Environment, network::request};
9
10 pub async fn create_deployment(
11 env: Environment,
12 access_token: &str,
13 project_id: i32,
14 payload: DeploymentPayload,
15 ) -> Result<Deployment, ErrorResponse> {
16 let builder = Client::new()
17 .post(build_project_deployment_index(env, project_id.to_string()))
18 .json(&payload)
19 .header("Authorization", access_token)
20 .header("User-agent", SMB_USER_AGENT);
21 request(builder).await
22 }