From c3e05c530ebbf89c7a889e46e5e489c87d141eb8 Mon Sep 17 00:00:00 2001 From: Evan Feenstra Date: Sun, 22 May 2022 14:18:07 -0700 Subject: [PATCH] parse config from json encoded param --- sphinx-key/Cargo.toml | 1 + sphinx-key/src/conn/mod.rs | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/sphinx-key/Cargo.toml b/sphinx-key/Cargo.toml index 0a153a8..43ddf45 100644 --- a/sphinx-key/Cargo.toml +++ b/sphinx-key/Cargo.toml @@ -26,6 +26,7 @@ log = "0.4" url = "2" serde_urlencoded = "0.7.1" serde = "1.0.137" +serde_json = "1.0.81" [build-dependencies] embuild = "0.29" diff --git a/sphinx-key/src/conn/mod.rs b/sphinx-key/src/conn/mod.rs index f79c242..b43da6f 100644 --- a/sphinx-key/src/conn/mod.rs +++ b/sphinx-key/src/conn/mod.rs @@ -12,17 +12,25 @@ use esp_idf_svc::nvs_storage::EspNvsStorage; use embedded_svc::storage::Storage; use serde::Deserialize; +#[derive(Clone, Debug, Deserialize)] +pub struct Params { + pub config: String +} #[derive(Clone, Debug, Deserialize)] pub struct Config { pub broker: String, - // pub ssid: String, - // pub pass: String, + pub ssid: String, + pub pass: String, } /* curl -X POST 192.168.71.1/config?broker=52.91.253.115%3A1883&ssid=apples%26acorns&pass=42flutes +curl -X POST 192.168.71.1/config?ssid=apples%26acorns&pass=42flutes&broker=52.91.253.115%3A1883 + curl -X POST 192.168.71.1/config?broker=52.91.253.115%3A1883 + +curl -X POST 192.168.71.1/config?config=%7B%22ssid%22%3A%22apples%26acorns%22%2C%22pass%22%3A%2242flutes%22%2C%22broker%22%3A%2252.91.253.115%3A1883%22%7D */ #[allow(unused_variables)] @@ -34,8 +42,11 @@ pub fn config_server(mutex: Arc<(Mutex>, Condvar)>, store: Arc(bod)?; + .ok_or(anyhow::anyhow!("failed to parse query string"))?; + println!("bod {:?}", bod); + let params = serde_urlencoded::from_str::(bod)?; + + let conf = serde_json::from_str::(¶ms.config)?; let mut wait = mutex.0.lock().unwrap(); *wait = Some(conf);