about summary refs log tree commit diff stats
path: root/crates/rocie-server/src/api/set/barcode.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-10-23 23:39:19 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-10-23 23:39:19 +0200
commit4bd331b43137f80085b51af8b7c6311ce8f60ff6 (patch)
treea3ce8626b078cb9995e9b8326f154c945142515c /crates/rocie-server/src/api/set/barcode.rs
parentfix(crates/rocie-server/api/get-product-{by-name,by-part-name}): Test (diff)
downloadserver-4bd331b43137f80085b51af8b7c6311ce8f60ff6.zip
fix(crates/rocie-server/api/buy-barcode): Allow specifying how often to buy
Diffstat (limited to 'crates/rocie-server/src/api/set/barcode.rs')
-rw-r--r--crates/rocie-server/src/api/set/barcode.rs15
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?;