summaryrefslogtreecommitdiff
path: root/src/routes
diff options
context:
space:
mode:
authorfx <[email protected]>2023-10-08 23:28:10 +0200
committerfx <[email protected]>2023-10-08 23:28:10 +0200
commit920496c85bdf0d017eaf837cbacd136d7d828669 (patch)
tree78e0cd32933d214fd16ad18a333cf7f1ade5a754 /src/routes
parent88bedad2d7c061b707e83d80aa6f0e51817586df (diff)
downloadwebol-920496c85bdf0d017eaf837cbacd136d7d828669.tar
webol-920496c85bdf0d017eaf837cbacd136d7d828669.tar.gz
webol-920496c85bdf0d017eaf837cbacd136d7d828669.zip
base web server
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/mod.rs1
-rw-r--r--src/routes/start.rs29
2 files changed, 30 insertions, 0 deletions
diff --git a/src/routes/mod.rs b/src/routes/mod.rs
new file mode 100644
index 0000000..78d4375
--- /dev/null
+++ b/src/routes/mod.rs
@@ -0,0 +1 @@
pub mod start; \ No newline at end of file
diff --git a/src/routes/start.rs b/src/routes/start.rs
new file mode 100644
index 0000000..cda6352
--- /dev/null
+++ b/src/routes/start.rs
@@ -0,0 +1,29 @@
1use axum::headers::HeaderMap;
2use axum::Json;
3use serde::{Deserialize, Serialize};
4use serde_json::{json, Value};
5use crate::auth::auth;
6
7pub async fn start(headers: HeaderMap, Json(payload): Json<StartPayload>) -> Json<Value> {
8 let mut res = StartResponse { id: payload.id, boot: false };
9 if let Some(secret) = headers.get("authorization") {
10 if !auth(secret.to_str().unwrap()) { Json(json!(res)) } else {
11 res.boot = true;
12 Json(json!(res))
13 }
14 } else {
15 Json(json!(res))
16 }
17}
18
19#[derive(Deserialize)]
20pub struct StartPayload {
21 id: String,
22 _test: Option<bool>,
23}
24
25#[derive(Serialize)]
26struct StartResponse {
27 id: String,
28 boot: bool,
29}