From 9ed1d728da8411bd44608dc1aa414057464b1bf4 Mon Sep 17 00:00:00 2001 From: BurnyLlama Date: Sat, 15 Apr 2023 22:03:58 +0200 Subject: [PATCH] Now can access races and teamraces. --- src/api/mod.rs | 2 ++ src/api/races.rs | 18 ++++++++++++++++++ src/api/teamraces.rs | 29 +++++++++++++++++++++++++++++ src/main.rs | 2 ++ 4 files changed, 51 insertions(+) create mode 100644 src/api/races.rs create mode 100644 src/api/teamraces.rs diff --git a/src/api/mod.rs b/src/api/mod.rs index a98b9c8..e63d3ac 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -1 +1,3 @@ pub mod maps; +pub mod races; +pub mod teamraces; diff --git a/src/api/races.rs b/src/api/races.rs new file mode 100644 index 0000000..7c18c3b --- /dev/null +++ b/src/api/races.rs @@ -0,0 +1,18 @@ +use rocket::{serde::json::Json, Route, State}; + +use crate::database::{models::race::Race, DatabaseHandler}; + +#[get("/player/")] +async fn get_races_by_player( + db: &State, + player: &str, +) -> Result>, String> { + match Race::get_races_by_player(db, player).await { + Ok(maps) => Ok(Json(maps)), + Err(err) => Err(format!("Error: {}", err)), + } +} + +pub fn get_all_routes() -> Vec { + routes![get_races_by_player] +} diff --git a/src/api/teamraces.rs b/src/api/teamraces.rs new file mode 100644 index 0000000..037ea5d --- /dev/null +++ b/src/api/teamraces.rs @@ -0,0 +1,29 @@ +use rocket::{serde::json::Json, Route, State}; + +use crate::database::{models::teamrace::Teamrace, DatabaseHandler}; + +#[get("/player/")] +async fn get_teamrace_by_player( + db: &State, + player: &str, +) -> Result>, String> { + match Teamrace::get_teamrace_by_player(db, player).await { + Ok(maps) => Ok(Json(maps)), + Err(err) => Err(format!("Error: {}", err)), + } +} + +#[get("/map/")] +async fn get_teamrace_by_map( + db: &State, + map: &str, +) -> Result>, String> { + match Teamrace::get_teamrace_by_map(db, map).await { + Ok(maps) => Ok(Json(maps)), + Err(err) => Err(format!("Error: {}", err)), + } +} + +pub fn get_all_routes() -> Vec { + routes![get_teamrace_by_player, get_teamrace_by_map] +} diff --git a/src/main.rs b/src/main.rs index 94a2271..5d6304e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,6 +19,8 @@ async fn main() { match rocket::build() .manage(db) .mount("/api/v1/maps", api::maps::get_all_routes()) + .mount("/api/v1/races", api::races::get_all_routes()) + .mount("/api/v1/teamraces", api::teamraces::get_all_routes()) .launch() .await {