aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-05-02 16:35:41 +0000
committerFuwn <[email protected]>2021-05-02 16:35:41 +0000
commite70e58db5e434e40025ff737bc21a5062ef9b975 (patch)
treec7c69b448bf26a8cb86c78c29dda7ffe38de9056 /src/api
parentrefactor(todo): update todo style (diff)
downloadwhirl-e70e58db5e434e40025ff737bc21a5062ef9b975.tar.xz
whirl-e70e58db5e434e40025ff737bc21a5062ef9b975.zip
feat(global): begin implementing api
Diffstat (limited to 'src/api')
-rw-r--r--src/api/mod.rs14
-rw-r--r--src/api/routes/mod.rs7
-rw-r--r--src/api/routes/stats/mod.rs15
-rw-r--r--src/api/routes/stats/structures.rs9
4 files changed, 45 insertions, 0 deletions
diff --git a/src/api/mod.rs b/src/api/mod.rs
new file mode 100644
index 0000000..edbc427
--- /dev/null
+++ b/src/api/mod.rs
@@ -0,0 +1,14 @@
+// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
+// SPDX-License-Identifier: GPL-3.0-only
+
+mod routes;
+
+pub struct API;
+impl API {
+ pub fn listen() {
+ let _ = rocket::ignite()
+ .mount("/", routes![routes::index])
+ .mount("/api/v1", routes![routes::stats::statistics])
+ .launch();
+ }
+}
diff --git a/src/api/routes/mod.rs b/src/api/routes/mod.rs
new file mode 100644
index 0000000..231236c
--- /dev/null
+++ b/src/api/routes/mod.rs
@@ -0,0 +1,7 @@
+// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
+// SPDX-License-Identifier: GPL-3.0-only
+
+pub mod stats;
+
+#[get("/")]
+pub fn index() -> &'static str { "Whirlsplash" }
diff --git a/src/api/routes/stats/mod.rs b/src/api/routes/stats/mod.rs
new file mode 100644
index 0000000..a58e4b3
--- /dev/null
+++ b/src/api/routes/stats/mod.rs
@@ -0,0 +1,15 @@
+// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
+// SPDX-License-Identifier: GPL-3.0-only
+
+pub mod structures;
+
+use rocket_contrib::json::Json;
+
+use crate::api::routes::stats::structures::Statistics;
+
+#[get("/statistics")]
+pub fn statistics() -> Json<Statistics> {
+ Json(Statistics {
+ message: "todo".to_string(),
+ })
+}
diff --git a/src/api/routes/stats/structures.rs b/src/api/routes/stats/structures.rs
new file mode 100644
index 0000000..9a4fe23
--- /dev/null
+++ b/src/api/routes/stats/structures.rs
@@ -0,0 +1,9 @@
+// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
+// SPDX-License-Identifier: GPL-3.0-only
+
+use serde_derive::Serialize;
+
+#[derive(Serialize)]
+pub struct Statistics {
+ pub message: String,
+}