From e70e58db5e434e40025ff737bc21a5062ef9b975 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 2 May 2021 16:35:41 +0000 Subject: feat(global): begin implementing api --- src/api/mod.rs | 14 ++++++++++++++ src/api/routes/mod.rs | 7 +++++++ src/api/routes/stats/mod.rs | 15 +++++++++++++++ src/api/routes/stats/structures.rs | 9 +++++++++ 4 files changed, 45 insertions(+) create mode 100644 src/api/mod.rs create mode 100644 src/api/routes/mod.rs create mode 100644 src/api/routes/stats/mod.rs create mode 100644 src/api/routes/stats/structures.rs (limited to 'src/api') 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 { + 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, +} -- cgit v1.2.3