aboutsummaryrefslogtreecommitdiff
path: root/src/routes/start.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/start.rs')
-rw-r--r--src/routes/start.rs29
1 files changed, 29 insertions, 0 deletions
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}