38 lines
1015 B
Rust
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>,
|
|
}
|