diff --git a/common/src/models/variant.rs b/common/src/models/variant.rs index 07e7d23..6ed5a19 100644 --- a/common/src/models/variant.rs +++ b/common/src/models/variant.rs @@ -88,3 +88,38 @@ pub async fn insert_variant(article_id: i64, variant: &Variant, pool: PgPool) -> } } } + +pub async fn update_variant(variant_id: i64, variant: &Variant, pool: PgPool) -> Option { + let mut args = PgArguments::default(); + args.add(&variant.id); + args.add(&variant.weight); + args.add(&variant.ean); + args.add(&variant.name); + args.add(&variant.description); + args.add(&variant.ingredients); + + info!("Variant: {:#?}", variant); + + let statement = format!( + "UPDATE {} SET weight = $2, ean = $3, name = $4, description = $5, ingredients = $6 WHERE id = $1 RETURNING *", + "variant", + ); + + let res = sqlx::query_with( + statement.as_str(), + args) + .fetch_one(&pool).await; + + info!("{:#?}", res); + + match res { + Ok(record) => { + let variant = from_postgres_row_small(record); + Some(variant) + } + Err(err) => { + error!("Error while updating variant: {}", variant_id); + None + } + } +} diff --git a/frontend/app/components/variant/variantCreate.vue b/frontend/app/components/variant/variantCreate.vue index 0aa0bb5..4530f56 100644 --- a/frontend/app/components/variant/variantCreate.vue +++ b/frontend/app/components/variant/variantCreate.vue @@ -22,7 +22,7 @@ async function create() { const variant: Variant = new Variant(0, weight.value, ean.value, name.value, description.value, ingredients.value); - await store.addVariant(store.article.id, variant); + await store.addVariant(variant); closeDialog(); } @@ -73,7 +73,7 @@ function clearVariables() { mdi-plus-thick - Artikel erstellen + Variante erstellen diff --git a/frontend/app/components/variant/variantRow.vue b/frontend/app/components/variant/variantRow.vue index 911495c..3c4f416 100644 --- a/frontend/app/components/variant/variantRow.vue +++ b/frontend/app/components/variant/variantRow.vue @@ -1,7 +1,7 @@