Skip to content

Commit 26586d8

Browse files
committed
Merge branch 'feature/sigit-deployment' into development
2 parents 1e9042f + 2a84b1f commit 26586d8

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

crates/cli/src/project/crud_update.rs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
use crate::token::{get_smb_token::get_smb_token, is_logged_in::is_logged_in};
22
use anyhow::{anyhow, Result};
3-
use dialoguer::{theme::ColorfulTheme, Input};
3+
use dialoguer::{console::Term, theme::ColorfulTheme, Input, Select};
4+
use smbcloud_model::runner::Runner;
45
use smbcloud_network::environment::Environment;
56
use smbcloud_networking_project::{
6-
crud_project_read::get_project, crud_project_update::update_project_description,
7+
crud_project_read::get_project, crud_project_update::update_project,
78
};
89
use spinners::Spinner;
910

@@ -13,10 +14,7 @@ use crate::{
1314
ui::{description, succeed_message, succeed_symbol},
1415
};
1516

16-
pub async fn process_project_update_description(
17-
env: Environment,
18-
project_id: String,
19-
) -> Result<CommandResult> {
17+
pub async fn process_project_update(env: Environment, project_id: String) -> Result<CommandResult> {
2018
// Check credentials.
2119
let is_logged_in = is_logged_in(env).await?;
2220
if !is_logged_in {
@@ -29,6 +27,7 @@ pub async fn process_project_update_description(
2927
if let Some(project_description) = project.description {
3028
println!("Description: {}", description(&project_description));
3129
}
30+
println!("Runner: {}", project.runner);
3231

3332
// Prompt for new description
3433
let new_description = match Input::<String>::with_theme(&ColorfulTheme::default())
@@ -38,11 +37,20 @@ pub async fn process_project_update_description(
3837
Ok(desc) => desc,
3938
Err(_) => return Err(anyhow!("Invalid description.")),
4039
};
40+
41+
let runners = vec![Runner::NodeJs, Runner::Swift, Runner::Ruby];
42+
let runner = Select::with_theme(&ColorfulTheme::default())
43+
.items(&runners)
44+
.default(0)
45+
.interact_on_opt(&Term::stderr())
46+
.map(|i| runners[i.unwrap()])
47+
.unwrap();
48+
4149
let spinner = Spinner::new(
4250
spinners::Spinners::SimpleDotsScrolling,
4351
succeed_message("Loading"),
4452
);
45-
update_project_description(env, access_token, project_id, &new_description).await?;
53+
update_project(env, access_token, project_id, &new_description, runner).await?;
4654
Ok(CommandResult {
4755
spinner,
4856
symbol: succeed_symbol(),

crates/cli/src/project/process.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::{
55
crud_create::process_project_init,
66
crud_delete::process_project_delete,
77
crud_read::{process_project_list, process_project_show, process_project_use},
8-
crud_update::process_project_update_description,
8+
crud_update::process_project_update,
99
deployment::process_deployment,
1010
},
1111
};
@@ -20,6 +20,6 @@ pub async fn process_project(env: Environment, commands: Commands) -> Result<Com
2020
Commands::Delete { id } => process_project_delete(env, id).await,
2121
Commands::Use { id } => process_project_use(env, id).await,
2222
Commands::Deployment { id } => process_deployment(env, id).await,
23-
Commands::Update { id } => process_project_update_description(env, id).await,
23+
Commands::Update { id } => process_project_update(env, id).await,
2424
}
2525
}
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
use crate::url_builder::build_project_url_with_id;
22
use reqwest::Client;
3-
use smbcloud_model::{error_codes::ErrorResponse, project::Project};
3+
use smbcloud_model::{error_codes::ErrorResponse, project::Project, runner::Runner};
44
use smbcloud_network::{environment::Environment, network::request};
55
use smbcloud_networking::constants::SMB_USER_AGENT;
66

7-
pub async fn update_project_description(
7+
pub async fn update_project(
88
env: Environment,
99
access_token: String,
1010
project_id: String,
1111
new_description: &str,
12+
runner: Runner,
1213
) -> Result<Project, ErrorResponse> {
1314
// PATCH is correct for partial update of description
1415
let url = build_project_url_with_id(env, project_id.to_string());
1516
let builder = Client::new()
1617
.patch(url)
1718
.header("Authorization", access_token)
1819
.header("User-agent", SMB_USER_AGENT)
19-
.json(&serde_json::json!({ "description": new_description }));
20+
.json(&serde_json::json!({ "description": new_description, "runner": runner }));
2021
request(builder).await
2122
}

0 commit comments

Comments
 (0)