Added variant update functionality.

This commit is contained in:
2026-01-23 23:12:47 +01:00
parent 897f154fae
commit ea482fab07
5 changed files with 144 additions and 19 deletions
+30 -1
View File
@@ -15,7 +15,7 @@ use tower_http::cors::{AllowOrigin, Any, CorsLayer};
use tracing::info;
use http::header::{AUTHORIZATION, ACCEPT, ACCESS_CONTROL_ALLOW_ORIGIN, CONTENT_TYPE, ACCESS_CONTROL_ALLOW_CREDENTIALS};
use common::models::article;
use common::models::variant::{insert_variant, Variant};
use common::models::variant::{insert_variant, update_variant, Variant};
#[tokio::main]
async fn main() {
@@ -49,6 +49,7 @@ async fn main() {
.route("/article", post(create_article))
.route("/article/{id}", get(get_article))
.route("/article/{id}/variant", post(add_variant))
.route("/variant/{id}", post(update_variant_route))
.with_state(pool)
.layer(cors);
@@ -153,4 +154,32 @@ async fn add_variant(
(StatusCode::INTERNAL_SERVER_ERROR, Json(variant))
}
}
}
async fn update_variant_route(
State(pool): State<PgPool>,
Path(variant_id): Path<i64>,
Json(payload): Json<Variant>,
) -> (StatusCode, Json<Variant>) {
info!("Update variant");
let update_variant = update_variant(variant_id, &payload, pool).await;
match update_variant {
Some(variant) => {
(StatusCode::OK, Json(variant))
}
None => {
let variant = Variant {
id: 0,
weight: "".to_string(),
ean: None,
name: None,
description: None,
ingredients: None,
};
(StatusCode::INTERNAL_SERVER_ERROR, Json(variant))
}
}
}