Compare commits

..

No commits in common. "v16" and "main" have entirely different histories.
v16 ... main

4 changed files with 1 additions and 3593 deletions

3435
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@
[package]
edition = "2024"
name = "web"
version = "0.1.0"
[dependencies]
chrono = { version = "0.4" }
fathom-function = { git = "ssh://git@github.com/fathom-io/pipeline-calculations.git", branch = "FTHM-10257/validation" }
pipeline-application = { git = "ssh://git@github.com/fathom-io/pipeline-calculations.git", branch = "FTHM-10257/validation" }
serde = { version = "1.0.219", features = ["derive"] }
tokio = { version = "1.43.0", features = ["macros", "rt-multi-thread"] }
uuid = { version = "1" }

File diff suppressed because one or more lines are too long

View File

@ -1,81 +0,0 @@
use chrono::NaiveDate;
use pipeline_application::application::{
Application, InlineInspection, InspectionType, ReportType, ToolTolerances,
};
use serde::{Deserialize, Deserializer, Serialize};
use uuid::Uuid;
#[fathom_function::function]
async fn pipeline_route(input: Input) -> Result<Output, String> {
let reports_details = input.report_details;
let app = Application::new_from_compile_env(input.org_id, input.project_id).unwrap();
for (pipeline_id, file_details) in input.pipeline_id.into_iter().zip(input.file_details) {
app.process_ili_report(
pipeline_id,
file_details.file_id,
ToolTolerances::default(),
&reports_details,
)
.await
.unwrap();
}
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>,
file_details: Vec<FileDetails>,
// TODO: parse the output of the tool tolerances.
#[serde(flatten)]
report_details: InspectionReportDetails,
}
#[derive(Debug, Deserialize)]
struct InspectionReportDetails {
#[serde(deserialize_with = "deserialize_date")]
date: NaiveDate,
vendor_name: String,
report_type: ReportType,
/// The inspection type and technology used.
inspection_type: InspectionType,
}
impl From<&InspectionReportDetails> for InlineInspection {
fn from(value: &InspectionReportDetails) -> Self {
Self {
date: value.date,
vendor_name: value.vendor_name.to_owned(),
report_type: value.report_type,
inspection_type: value.inspection_type,
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FileDetails {
pub file_id: Uuid,
pub revision_id: Uuid,
}
const FORMAT: &'static str = "%a %b %d %Y";
pub fn deserialize_date<'de, D>(deserializer: D) -> Result<NaiveDate, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
let dt = NaiveDate::parse_from_str(&s, FORMAT).map_err(serde::de::Error::custom)?;
Ok(dt)
}