From 05b291428c82b3197d98cd1c49e304d626f8b68c Mon Sep 17 00:00:00 2001 From: link2xt Date: Fri, 2 Aug 2024 14:17:25 +0000 Subject: [PATCH] Manually deserialize json --- Cargo.lock | 6 ++++-- Cargo.toml | 1 + src/server.rs | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4a19d00..e1de870 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -963,6 +963,7 @@ dependencies = [ "rand", "reqwest", "serde", + "serde_json", "sled", "structopt", "tempfile", @@ -1524,11 +1525,12 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.107" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] diff --git a/Cargo.toml b/Cargo.toml index 8fd2922..51fdb70 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,7 @@ prometheus-client = "0.22.2" rand = "0.8.5" reqwest = "0.12.4" serde = { version = "1.0.114", features = ["derive"] } +serde_json = "1.0.122" sled = "0.34.2" structopt = "0.3.15" tokio = { version = "1.39.2", features = ["full"] } diff --git a/src/server.rs b/src/server.rs index cf0f314..2cc2f79 100644 --- a/src/server.rs +++ b/src/server.rs @@ -53,8 +53,9 @@ impl IntoResponse for AppError { /// Registers a device for heartbeat notifications. async fn register_device( axum::extract::State(state): axum::extract::State, - axum::extract::Json(query): axum::extract::Json, + body: String, ) -> Result<(), AppError> { + let query: DeviceQuery = serde_json::from_str(&body)?; info!("register_device {}", query.token); let schedule = state.schedule();