From c277eb5ebd984a02bbcbe7092a20e56f2b36d59c Mon Sep 17 00:00:00 2001 From: BurnyLlama Date: Sat, 15 Apr 2023 21:31:39 +0200 Subject: [PATCH] Added a way to receive all maps --- .vscode/settings.json | 1 + Rocket.toml | 3 +++ src/api/maps.rs | 15 +++++++++++++++ src/api/mod.rs | 1 + src/main.rs | 7 ++++--- 5 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 Rocket.toml create mode 100644 src/api/maps.rs create mode 100644 src/api/mod.rs diff --git a/.vscode/settings.json b/.vscode/settings.json index 868d3ca..dcf3f3a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,6 @@ { "rust-analyzer.linkedProjects": [ + "./Cargo.toml", "./Cargo.toml", "./Cargo.toml", "./Cargo.toml" diff --git a/Rocket.toml b/Rocket.toml new file mode 100644 index 0000000..3acb602 --- /dev/null +++ b/Rocket.toml @@ -0,0 +1,3 @@ +[global] +address = "0.0.0.0" +port = 12345 \ No newline at end of file diff --git a/src/api/maps.rs b/src/api/maps.rs new file mode 100644 index 0000000..cbf1357 --- /dev/null +++ b/src/api/maps.rs @@ -0,0 +1,15 @@ +use rocket::{serde::json::Json, Route, State}; + +use crate::database::{models::map::Map, DatabaseHandler}; + +#[get("/")] +async fn get_all_maps(db: &State) -> Result>, String> { + match Map::get_all_maps(db).await { + Ok(maps) => Ok(Json(maps)), + Err(err) => Err(format!("Error: {}", err)), + } +} + +pub fn get_all_routes() -> Vec { + routes![get_all_maps] +} diff --git a/src/api/mod.rs b/src/api/mod.rs new file mode 100644 index 0000000..a98b9c8 --- /dev/null +++ b/src/api/mod.rs @@ -0,0 +1 @@ +pub mod maps; diff --git a/src/main.rs b/src/main.rs index 685bd84..94a2271 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,11 +3,12 @@ use database::DatabaseHandler; #[macro_use] extern crate rocket; +mod api; mod database; #[rocket::main] async fn main() { - let client = match DatabaseHandler::create().await { + let db = match DatabaseHandler::create().await { Ok(client) => client, Err(err) => panic!( "Encountered an error while connecting to the database!\n{}", @@ -16,8 +17,8 @@ async fn main() { }; match rocket::build() - .manage(client) - .mount("/", routes![]) + .manage(db) + .mount("/api/v1/maps", api::maps::get_all_routes()) .launch() .await {