work
This commit is contained in:
parent
d913772f3b
commit
6d43193959
7 changed files with 382 additions and 323 deletions
|
@ -3,6 +3,7 @@ use actix_web::{get, HttpRequest, HttpResponse, Responder};
|
|||
use serde::Deserialize;
|
||||
|
||||
use crate::item;
|
||||
use crate::routes::bad_req;
|
||||
|
||||
macro_rules! get_itemdb {
|
||||
($req:expr) => {{
|
||||
|
@ -31,6 +32,7 @@ pub async fn supply_route(
|
|||
.get_item(&form.item)
|
||||
.ok_or_else(|| actix_web::error::ErrorBadRequest("The item does not exist"))?
|
||||
.variant(&form.variant)
|
||||
.await
|
||||
.ok_or_else(|| actix_web::error::ErrorBadRequest("The variant does not exist"))?;
|
||||
let transaction_id = variant
|
||||
.supply(
|
||||
|
@ -49,13 +51,33 @@ pub async fn get_items_route(r: HttpRequest) -> impl Responder {
|
|||
actix_web::HttpResponse::Ok().json(serde_json::json!({"items": items}))
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct AddVariantForm {
|
||||
pub variant: String,
|
||||
pub amount: usize,
|
||||
}
|
||||
|
||||
#[post("/item/{item_id}/variant")]
|
||||
pub async fn add_variant_route(
|
||||
r: HttpRequest,
|
||||
f: actix_web::web::Form<AddVariantForm>,
|
||||
) -> 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(|| bad_req("The item does not exist"))?;
|
||||
item.add_variant(&f.variant, f.amount);
|
||||
Ok(HttpResponse::Ok())
|
||||
}
|
||||
|
||||
#[get("/item/{item_id}/variants")]
|
||||
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"))?;
|
||||
.ok_or_else(|| bad_req("The item does not exist"))?;
|
||||
let variants = item.get_variants().await;
|
||||
|
||||
Ok(HttpResponse::Ok().json(serde_json::json!({
|
||||
|
|
|
@ -1 +1,5 @@
|
|||
pub mod item;
|
||||
|
||||
pub fn bad_req(msg: &'static str) -> actix_web::Error {
|
||||
actix_web::error::ErrorBadRequest(msg)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue