From da713580904a160239ff2bc9340cc3a87340b55c Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 24 Oct 2022 10:18:23 +0200 Subject: [PATCH] fix get_suspended_job_flow --- backend/src/jobs.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/src/jobs.rs b/backend/src/jobs.rs index 2db88ab1bf..556cbc3cd6 100644 --- a/backend/src/jobs.rs +++ b/backend/src/jobs.rs @@ -1275,13 +1275,14 @@ pub async fn get_suspended_job_flow( let flow = crate::utils::not_found_if_none(flow_o, "Parent Flow", job.to_string())?; let flow_status = flow - .raw_flow() + .flow_status() .ok_or_else(|| anyhow::anyhow!("unable to deserialize the flow"))?; let flow_module_status = flow_status .modules .iter() .find(|p| p.id() == job.to_string()) .ok_or_else(|| anyhow::anyhow!("unable to find the module"))?; + let approvers_from_status = match flow_module_status { FlowStatusModule::Success { approvers, .. } => approvers.to_owned(), _ => vec![], @@ -1332,13 +1333,20 @@ pub enum Job { } impl Job { - pub fn raw_flow(&self) -> Option { + pub fn raw_flow(&self) -> Option { let value = match self { Job::QueuedJob(job) => job.raw_flow.clone(), Job::CompletedJob(job) => job.raw_flow.clone(), }; value.map(|v| serde_json::from_value(v).ok()).flatten() } + pub fn flow_status(&self) -> Option { + let value = match self { + Job::QueuedJob(job) => job.flow_status.clone(), + Job::CompletedJob(job) => job.flow_status.clone(), + }; + value.map(|v| serde_json::from_value(v).ok()).flatten() + } } #[derive(sqlx::Type, Serialize, Deserialize, Debug, PartialEq, Clone)] #[sqlx(type_name = "JOB_KIND", rename_all = "lowercase")]