ca1f7b303f0b47b6998c92fdaa4.../src/main.rs
2025-08-19 15:12:57 +00:00

38 lines
1015 B
Rust

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<Output, String> {
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<Uuid>,
ili_comparison_id: Vec<Uuid>,
}