From 3f5a258ea978308c03d2de492ef2ac9e8fa1a387 Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Sun, 17 Dec 2023 02:20:18 -0600 Subject: [PATCH] turtle info endpoint --- server/src/main.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index f81eb73..077e0d4 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -63,7 +63,7 @@ impl Direction { } } -#[derive(Serialize, Deserialize)] +#[derive(Serialize, Deserialize, Clone)] struct Turtle { name: Name, fuel: usize, @@ -111,9 +111,10 @@ async fn main() -> Result<(), Error> { .route("/turtle/new", post(create_turtle)) .route("/turtle/update/:id", post(command)) .route("/turtle/client.lua", get(client)) - .route("/turtle/control/:id/setGoal", post(set_goal)) + .route("/turtle/setGoal/:id", post(set_goal)) + .route("/turtle/info/:id", get(turtle_info)) + .route("/turtle/updateAll", get(update_turtles)) .route("/flush", get(flush)) - .route("/updateTurtles", get(update_turtles)) .with_state(state.clone()); let listener = tokio::net::TcpListener::bind("0.0.0.0:48228").await.unwrap(); @@ -221,6 +222,15 @@ async fn update_turtles( "ACK" } +async fn turtle_info( + Path(id): Path, + State(state): State, + ) -> Json { + let state = &mut state.read().await; + + Json(state.turtles[id as usize].clone()) +} + async fn command( Path(id): Path, State(state): State,