use fathom_function::tracing; use pipeline_application::application::Application; use serde::{Deserialize, Serialize}; use uuid::Uuid; #[fathom_function::function] async fn local_corrosion_growth_rate(input: Input) -> Result { let app = Application::new_from_compile_env(input.org_id, input.project_id).unwrap(); for (pipeline_id, ili_comparison_id) in input.pipeline_id.into_iter().zip(input.ili_comparison_id) { app.local_corrosion_growth_rate(pipeline_id, ili_comparison_id) .await .map_err(|err| { tracing::error!(%pipeline_id, ?err, "Error calculating local corrosion growth rate"); format!("{err:?}") })?; } Ok(Output { status: "Success".to_owned(), }) } #[derive(Debug, Serialize)] struct Output { status: String, } #[derive(Debug, Deserialize)] struct Input { org_id: Uuid, project_id: String, pipeline_id: Vec, ili_comparison_id: Vec, }