aboutsummaryrefslogtreecommitdiff
path: root/src/bin/web.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/web.rs')
-rw-r--r--src/bin/web.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/bin/web.rs b/src/bin/web.rs
index 4d2938f..eba283c 100644
--- a/src/bin/web.rs
+++ b/src/bin/web.rs
@@ -4,8 +4,7 @@ use serde::Deserialize;
use std::fs;
use axum::{
response::{Html, Json},
- extract::Query,
- routing::get,
+ routing::{get, post},
Router,
};
@@ -40,11 +39,13 @@ struct SimSpecs {
principal: f64,
i1: f64,
years: u32,
+ updates: SimUpdates
}
-async fn api_simulate_get<'a>(Query(specs): Query<SimSpecs>) -> Json<hiccup::Simulation<'a>> {
- let mut sim = Simulation::new(specs. principal, specs.i1, specs.years);
- let updates: SimUpdates = SimUpdates::default();
+async fn api_simulate_post(Json(specs): Json<SimSpecs>) -> Json<hiccup::Simulation> {
+ let mut sim = Simulation::new(specs.principal, specs.i1, specs.years);
+ let updates: SimUpdates = specs.updates;
+ // let updates: SimUpdates = SimUpdates::default();
sim.run(updates);
Json(sim)
}
@@ -55,7 +56,7 @@ async fn main() {
let app = Router::new()
.route("/", get(root_get))
.route("/main.js", get(main_get))
- .route("/api/simulate", get(api_simulate_get));
+ .route("/api/simulate", post(api_simulate_post));
// run our app with hyper, listening globally on port 3000
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();