From 9468629302f4f02cc5ce1f1c677a4cc888d2d032 Mon Sep 17 00:00:00 2001 From: JMARyA <jmarya@hydrar.de> Date: Wed, 25 Sep 2024 22:59:00 +0200 Subject: [PATCH] fix --- src/flow.rs | 36 ++++++++++++++++++------------------ src/routes/flow.rs | 8 ++++++++ 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/flow.rs b/src/flow.rs index 12e9ce4..33983e7 100644 --- a/src/flow.rs +++ b/src/flow.rs @@ -164,27 +164,27 @@ impl Flow { for prod in produced { let t = Item::get(&prod.item) - .await - .ok_or_else(item_does_not_exist_error)? - .variant(&prod.variant) - .ok_or_else(variant_does_not_exist_error)?; + .await + .ok_or_else(item_does_not_exist_error)? + .variant(&prod.variant) + .ok_or_else(variant_does_not_exist_error)?; - t_create.push((t, prod)); - } + t_create.push((t, prod)); + } for (item, info) in t_create { - let t = item - .supply( - Price::zero(), - Some(&format!("flow::{}::{}", self.kind.id(), self._id)), - info.location.as_ref().map(|x| x.as_str()), - info.note.as_ref().map(|x| x.as_str()), - ) - .await; - ret.entry(item.item_variant_id().clone()) - .or_insert(Vec::new()) - .push(t._id.clone()); - produced_ref.push(t.reference()); + let t = item + .supply( + Price::zero(), + Some(&format!("flow::{}::{}", self.kind.id(), self._id)), + info.location.as_ref().map(|x| x.as_str()), + info.note.as_ref().map(|x| x.as_str()), + ) + .await; + ret.entry(item.item_variant_id().clone()) + .or_insert(Vec::new()) + .push(t._id.clone()); + produced_ref.push(t.reference()); } self.change() diff --git a/src/routes/flow.rs b/src/routes/flow.rs index 6fd799e..af343af 100644 --- a/src/routes/flow.rs +++ b/src/routes/flow.rs @@ -156,6 +156,10 @@ pub async fn end_flow_route(id: &str, form: Json<EndFlow>) -> FallibleApiRespons .await .ok_or_else(|| api_error("Flow not found"))?; + if flow.done.is_some() { + return Err(api_error("Flow already ended")); + } + if let Some(produced) = &form.produced { let prod = flow.end_with_produce(produced).await?; Ok(json!({"produced": prod})) @@ -175,6 +179,10 @@ pub async fn continue_flow_route( .await .ok_or_else(|| api_error("Flow not found"))?; + if this_flow.done.is_some() { + return Err(api_error("Flow already ended")); + } + // create next flow let next_kind = flows .get(this_flow.kind.id())