1 use crate::url_builder::build_project_url_with_id;
2 use reqwest::Client;
3 use smbcloud_model::{error_codes::ErrorResponse, project::Project, runner::Runner};
4 use smbcloud_network::{environment::Environment, network::request};
5 use smbcloud_networking::{constants::SMB_USER_AGENT, smb_client::SmbClient};
6
7 pub async fn update_project(
8 env: Environment,
9 client: (&SmbClient, &str),
10 access_token: String,
11 project_id: String,
12 new_description: &str,
13 runner: Runner,
14 ) -> Result<Project, ErrorResponse> {
15 // PATCH is correct for partial update of description
16 let url = build_project_url_with_id(env, client, project_id.to_string());
17 let builder = Client::new()
18 .patch(url)
19 .header("Authorization", access_token)
20 .header("User-agent", SMB_USER_AGENT)
21 .json(&serde_json::json!({ "description": new_description, "runner": runner }));
22 request(builder).await
23 }