From fee60a1ddaf100de41b7c4e3432b69adc613da45 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 10 Jul 2023 13:53:58 +0200 Subject: [PATCH] fix raw_app_update --- backend/windmill-api/src/raw_apps.rs | 35 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/backend/windmill-api/src/raw_apps.rs b/backend/windmill-api/src/raw_apps.rs index ab2bfd5f32..6d1ee03204 100644 --- a/backend/windmill-api/src/raw_apps.rs +++ b/backend/windmill-api/src/raw_apps.rs @@ -245,13 +245,13 @@ async fn update_app( let path = path.to_path(); let mut tx = user_db.begin(&authed).await?; - let npath = &app.path; - let npath = if npath.is_some() || app.summary.is_some() { - let mut sqlb = SqlBuilder::update_table("raw_app"); - sqlb.and_where_eq("path", "?".bind(&path)); - sqlb.and_where_eq("workspace_id", "?".bind(&w_id)); + let mut sqlb = SqlBuilder::update_table("raw_app"); + sqlb.and_where_eq("path", "?".bind(&path)); + sqlb.and_where_eq("workspace_id", "?".bind(&w_id)); - if let Some(npath) = &app.path { + let npath = &app.path; + if npath.is_some() || app.summary.is_some() { + if let Some(npath) = npath { if npath != path { require_owner_of_path(&authed, path)?; @@ -277,28 +277,27 @@ async fn update_app( if let Some(nsummary) = &app.summary { sqlb.set_str("summary", nsummary); } + } - if let Some(value) = &app.value { - sqlb.set_str("data", value); - sqlb.set("version", "version + 1"); - } + if let Some(value) = &app.value { + sqlb.set_str("data", value); + sqlb.set("version", "version + 1"); + } - sqlb.returning("path"); + sqlb.returning("path"); - let sql = sqlb.sql().map_err(|e| Error::InternalErr(e.to_string()))?; - let npath_o: Option = sqlx::query_scalar(&sql).fetch_optional(&mut tx).await?; - not_found_if_none(npath_o, "Raw App", path)? - } else { - "".to_string() - }; + let sql = sqlb.sql().map_err(|e| Error::InternalErr(e.to_string()))?; + let npath_o: Option = sqlx::query_scalar(&sql).fetch_optional(&mut tx).await?; + not_found_if_none(npath_o, "Raw App", path)?; + let npath = app.path.clone().unwrap_or_else(|| path.to_owned()); audit_log( &mut tx, &authed.username, "apps.update", ActionKind::Update, &w_id, - Some(&npath), + Some(&path), None, ) .await?;