diff options
Diffstat (limited to 'src/api')
| -rw-r--r-- | src/api/mod.rs | 14 | ||||
| -rw-r--r-- | src/api/routes/mod.rs | 7 | ||||
| -rw-r--r-- | src/api/routes/stats/mod.rs | 15 | ||||
| -rw-r--r-- | src/api/routes/stats/structures.rs | 9 |
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, +} |