diff --git a/src/main.rs b/src/main.rs index 789ed4a..94c99b5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -56,6 +56,24 @@ async fn retrieve_all( } } +async fn update( + State(state): State, + Json(data): Json, +) -> Result { + println!("update"); + match sqlx::query_as::<_, Tea>("UPDATE tea SET teaname = $1, watertemp = $2, steepingseconds = $3 WHERE rfidcode = $4 RETURNING id, teaname, rfidcode, watertemp, steepingseconds") + .bind(&data.teaname) + .bind(&data.watertemp) + .bind(&data.steepingseconds) + .bind(&data.rfidcode) + .fetch_one(&state.pool) + .await + { + Ok(tea) => Ok((StatusCode::OK, Json(tea))), + Err(e) => Err((StatusCode::BAD_REQUEST, e.to_string())), + } +} + async fn add( State(state): State, Json(data): Json, @@ -90,6 +108,7 @@ async fn main(#[shuttle_shared_db::Postgres] pool: PgPool) -> shuttle_axum::Shut let router = Router::new() .nest_service("/", ServeFile::new("assets/index.html")) .route("/addtea", post(add)) + .route("/updatetea", post(update)) .route("/tea/:id", get(retrieve)) .route("/teabyrfid/:rfid", get(retrieve_by_rfid)) .route("/alltea", get(retrieve_all))