Compare commits
No commits in common. "v1" and "main" have entirely different histories.
3423
Cargo.lock
generated
3423
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
11
Cargo.toml
11
Cargo.toml
@ -1,11 +0,0 @@
|
|||||||
[package]
|
|
||||||
edition = "2024"
|
|
||||||
name = "web"
|
|
||||||
version = "0.1.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
fathom-function = { git = "ssh://git@github.com/fathom-io/pipeline-calculations.git", branch = "main" }
|
|
||||||
pipeline-application = { git = "ssh://git@github.com/fathom-io/pipeline-calculations.git", branch = "main" }
|
|
||||||
serde = { version = "1.0.219", features = ["derive"] }
|
|
||||||
tokio = { version = "1.43.0", features = ["macros", "rt-multi-thread"] }
|
|
||||||
uuid = { version = "1" }
|
|
||||||
41
README.md
41
README.md
@ -1,41 +1,2 @@
|
|||||||
# Updates the pipeline facility geolocations
|
# 5229fdd693a346ffbb54b174b48b8f4f
|
||||||
|
|
||||||
A function that updates the pipeline facilities with their geolocation based on
|
|
||||||
the pipeline route. Fails if there is no pipeline route.
|
|
||||||
|
|
||||||
## Input
|
|
||||||
|
|
||||||
### Arguments
|
|
||||||
|
|
||||||
- `org_id`: as string which should be a valid `uuid` for the organization
|
|
||||||
- `project_id`: the id of the data project where the pipeline data is found
|
|
||||||
- `pipeline_id`: an `array` of `strings` which should be valid UUIDs for pipelines
|
|
||||||
|
|
||||||
## Creating the function on the platform
|
|
||||||
|
|
||||||
To create this function on the platform using the `cli` set up the port forwarding as shown in README.
|
|
||||||
|
|
||||||
Then run the following command to create the function.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cargo run functions create \
|
|
||||||
-f functions/facility_locations \
|
|
||||||
-d "Update the facility locations based on the pipeline route and log distance" \
|
|
||||||
-i org_id=string \
|
|
||||||
-i project_id=string \
|
|
||||||
-i pipeline_id=array
|
|
||||||
```
|
|
||||||
|
|
||||||
## Testing the function locally
|
|
||||||
|
|
||||||
You can run and test the function locally by running
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cargo run
|
|
||||||
```
|
|
||||||
|
|
||||||
Then you can check it work with `curl` as follows
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl localhost:8080 -d $(jq '. | tojson' functions/facility_locations/example_input.json)
|
|
||||||
```
|
|
||||||
|
|||||||
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"org_id": "2cbfe270-d195-48ad-aed1-24145924635c",
|
|
||||||
"pipeline_id": [
|
|
||||||
"01966d47-1d4c-7751-a1f1-0617caa3a00d"
|
|
||||||
],
|
|
||||||
"project_id": "680b61b0aedd6f9e639d8699"
|
|
||||||
}
|
|
||||||
34
src/main.rs
34
src/main.rs
@ -1,34 +0,0 @@
|
|||||||
use fathom_function::tracing;
|
|
||||||
use pipeline_application::application::Application;
|
|
||||||
use serde::{Deserialize, Serialize};
|
|
||||||
use uuid::Uuid;
|
|
||||||
|
|
||||||
#[fathom_function::function]
|
|
||||||
async fn facility_locations(input: Input) -> Result<Output, String> {
|
|
||||||
let app = Application::new_from_compile_env(input.org_id, input.project_id).unwrap();
|
|
||||||
|
|
||||||
for pipeline_id in input.pipeline_id {
|
|
||||||
app.update_assets_with_geo_locations(pipeline_id)
|
|
||||||
.await
|
|
||||||
.map_err(|err| {
|
|
||||||
tracing::error!(%pipeline_id, ?err, "Error updating facility locations");
|
|
||||||
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>,
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue
Block a user