This commit is contained in:
JMARyA 2024-04-29 16:05:09 +02:00
parent 21adfaee13
commit d913772f3b
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
4 changed files with 51 additions and 35 deletions

View file

@ -1,6 +1,5 @@
use actix_web::post;
use actix_web::{get, HttpRequest, HttpResponse, Responder};
use maud::html;
use serde::Deserialize;
use crate::item;
@ -25,14 +24,14 @@ pub struct SupplyForm {
pub async fn supply_route(
req: HttpRequest,
form: actix_web::web::Form<SupplyForm>,
) -> impl Responder {
) -> actix_web::Result<impl Responder> {
let itemdb = get_itemdb!(req);
println!("{form:?}");
let variant = itemdb
.get_item(&form.item)
.unwrap()
.ok_or_else(|| actix_web::error::ErrorBadRequest("The item does not exist"))?
.variant(&form.variant)
.unwrap();
.ok_or_else(|| actix_web::error::ErrorBadRequest("The variant does not exist"))?;
let transaction_id = variant
.supply(
form.amount.unwrap_or(1),
@ -40,21 +39,27 @@ pub async fn supply_route(
&form.origin,
)
.await;
actix_web::HttpResponse::Ok().json(serde_json::json!({"uuid": transaction_id}))
Ok(actix_web::HttpResponse::Ok().json(serde_json::json!({"uuid": transaction_id})))
}
#[get("/items")]
pub async fn get_items_route(r: HttpRequest) -> impl Responder {
let itemdb = get_itemdb!(r);
let items = itemdb.items();
actix_web::HttpResponse::Ok().json(serde_json::json!({"items": items}))
}
#[get("/item/{item_id}/variants")]
pub async fn item_variants_page(r: HttpRequest) -> impl Responder {
pub async fn item_variants_page(r: HttpRequest) -> actix_web::Result<impl Responder> {
let id = r.match_info().query("item_id");
let itemdb = get_itemdb!(r);
let item = itemdb
.get_item(id)
.ok_or_else(|| actix_web::error::ErrorBadRequest("The item does not exist"))?;
let variants = item.get_variants().await;
let item = itemdb.get_item(id);
let variants = item.unwrap().get_variants().await;
HttpResponse::Ok().json(serde_json::json!({
Ok(HttpResponse::Ok().json(serde_json::json!({
"item": id,
"variants": variants
}))
})))
}