diff options
Diffstat (limited to 'crates/rocie-server/src/api/set/barcode.rs')
| -rw-r--r-- | crates/rocie-server/src/api/set/barcode.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/crates/rocie-server/src/api/set/barcode.rs b/crates/rocie-server/src/api/set/barcode.rs index 29eac9e..bb84bbf 100644 --- a/crates/rocie-server/src/api/set/barcode.rs +++ b/crates/rocie-server/src/api/set/barcode.rs @@ -28,21 +28,26 @@ use crate::{ ) ), params( - ("id" = BarcodeId, description = "The numeric value of the barcode"), + ("barcode_id" = BarcodeId, description = "The numeric value of the barcode"), + ("times" = u16, description = "How often to buy the barcode"), ) )] -#[post("/barcode/{id}/buy")] +#[post("/barcode/{barcode_id}/buy/{times}")] pub(crate) async fn buy_barcode( app: web::Data<App>, - barcode_id: web::Path<BarcodeIdStub>, + path: web::Path<(BarcodeIdStub, u16)>, ) -> Result<impl Responder> { + let (barcode_id, times) = path.into_inner(); + let mut ops = Operations::new("buy barcode unit"); - let barcode = Barcode::from_id(&app, barcode_id.into_inner().into()).await?; + let barcode = Barcode::from_id(&app, barcode_id.into()).await?; match barcode { Some(barcode) => { - barcode.buy(&mut ops); + for _ in 0..times { + barcode.buy(&mut ops); + } ops.apply(&app).await?; |
