41 lines
816 B
Rust
41 lines
816 B
Rust
#[macro_use] extern crate rocket;
|
|
use rocket::serde::json::Json;
|
|
|
|
extern crate dotenv;
|
|
use dotenv::dotenv;
|
|
|
|
mod types;
|
|
mod database;
|
|
|
|
#[get("/maps")]
|
|
fn get_all_maps() -> Option<Json<Vec<types::Map>>> {
|
|
match database::get_maps() {
|
|
Ok(maps) => Some(Json(maps)),
|
|
Err(err) => {
|
|
println!("{err}");
|
|
None
|
|
}
|
|
}
|
|
}
|
|
|
|
#[get("/maps/<map>")]
|
|
fn get_map_by_name(map: &str) -> Option<Json<types::Map>> {
|
|
match database::get_map_by_name(map) {
|
|
Ok(map) => match map {
|
|
Some(map) => Some(Json(map)),
|
|
None => None
|
|
},
|
|
Err(err) => {
|
|
println!("{err}");
|
|
None
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
#[launch]
|
|
fn rocket() -> _ {
|
|
dotenv().ok();
|
|
rocket::build()
|
|
.mount("/", routes![get_all_maps, get_map_by_name])
|
|
} |