Added variant update functionality.
This commit is contained in:
+30
-1
@@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user