aboutsummaryrefslogtreecommitdiff
path: root/planetwars-server
diff options
context:
space:
mode:
authorIlion Beyst <ilion.beyst@gmail.com>2022-02-12 23:52:45 +0100
committerIlion Beyst <ilion.beyst@gmail.com>2022-02-12 23:52:45 +0100
commitc7f4da07c1bb3b8a52a596e7c2573c7bf3ce7b79 (patch)
treeda43f0d3f443446ceb59e661a7f981f9a3c05cd6 /planetwars-server
parent7d743bdbbbf3112fa36c146b6c07a5b09d1388f8 (diff)
downloadplanetwars.dev-c7f4da07c1bb3b8a52a596e7c2573c7bf3ce7b79.tar.xz
planetwars.dev-c7f4da07c1bb3b8a52a596e7c2573c7bf3ce7b79.zip
separate match data api from match log api
Diffstat (limited to 'planetwars-server')
-rw-r--r--planetwars-server/src/lib.rs6
-rw-r--r--planetwars-server/src/routes/matches.rs10
2 files changed, 15 insertions, 1 deletions
diff --git a/planetwars-server/src/lib.rs b/planetwars-server/src/lib.rs
index ccd5a02..94f2965 100644
--- a/planetwars-server/src/lib.rs
+++ b/planetwars-server/src/lib.rs
@@ -53,7 +53,11 @@ pub async fn api() -> Router {
"/matches",
get(routes::matches::list_matches).post(routes::matches::play_match),
)
- .route("/matches/:match_id", get(routes::matches::get_match_log))
+ .route("/matches/:match_id", get(routes::matches::get_match_data))
+ .route(
+ "/matches/:match_id/log",
+ get(routes::matches::get_match_log),
+ )
.route("/submit_bot", post(routes::demo::submit_bot))
.layer(AddExtensionLayer::new(pool));
api
diff --git a/planetwars-server/src/routes/matches.rs b/planetwars-server/src/routes/matches.rs
index 089bd71..44c8607 100644
--- a/planetwars-server/src/routes/matches.rs
+++ b/planetwars-server/src/routes/matches.rs
@@ -136,6 +136,16 @@ pub struct BotConfig {
pub build_command: Option<String>,
}
+pub async fn get_match_data(
+ Path(match_id): Path<i32>,
+ conn: DatabaseConnection,
+) -> Result<Json<ApiMatch>, StatusCode> {
+ let match_data = matches::find_match(match_id, &conn)
+ .map_err(|_| StatusCode::NOT_FOUND)
+ .map(|data| match_data_to_api(data))?;
+ Ok(Json(match_data))
+}
+
pub async fn get_match_log(
Path(match_id): Path<i32>,
conn: DatabaseConnection,