diff options
author | Ilion Beyst <ilion.beyst@gmail.com> | 2022-08-23 20:00:21 +0200 |
---|---|---|
committer | Ilion Beyst <ilion.beyst@gmail.com> | 2022-08-23 20:00:21 +0200 |
commit | aa066ef5bb9ed043feafd0e87e219cb34cce35c5 (patch) | |
tree | 9773cfd035a712e951ad9490e95c05f723aa22b1 /planetwars-server/src | |
parent | fa4c684475a365055c2aacdf712c7903c9a5f2f2 (diff) | |
download | planetwars.dev-aa066ef5bb9ed043feafd0e87e219cb34cce35c5.tar.xz planetwars.dev-aa066ef5bb9ed043feafd0e87e219cb34cce35c5.zip |
create maps table
Diffstat (limited to 'planetwars-server/src')
-rw-r--r-- | planetwars-server/src/db/matches.rs | 10 | ||||
-rw-r--r-- | planetwars-server/src/routes/matches.rs | 7 | ||||
-rw-r--r-- | planetwars-server/src/schema.rs | 14 |
3 files changed, 18 insertions, 13 deletions
diff --git a/planetwars-server/src/db/matches.rs b/planetwars-server/src/db/matches.rs index 9f096df..77d39ef 100644 --- a/planetwars-server/src/db/matches.rs +++ b/planetwars-server/src/db/matches.rs @@ -41,6 +41,7 @@ pub struct MatchBase { pub created_at: NaiveDateTime, pub winner: Option<i32>, pub is_public: bool, + pub map_id: Option<i32>, } #[derive(Queryable, Identifiable, Associations, Clone)] @@ -166,14 +167,7 @@ pub fn list_bot_matches( bot_versions::table.on(match_players::bot_version_id.eq(bot_versions::id.nullable())), ) .filter(bot_versions::bot_id.eq(bot_id)) - .select(( - matches::id, - matches::state, - matches::log_path, - matches::created_at, - matches::winner, - matches::is_public, - )) + .select(matches::all_columns) .into_boxed(); let matches = diff --git a/planetwars-server/src/routes/matches.rs b/planetwars-server/src/routes/matches.rs index 44bdaf1..71c4409 100644 --- a/planetwars-server/src/routes/matches.rs +++ b/planetwars-server/src/routes/matches.rs @@ -79,11 +79,8 @@ pub async fn list_recent_matches( matches.truncate(requested_count); } - let api_matches = matches - .into_iter() - .map(match_data_to_api) - .collect(); - + let api_matches = matches.into_iter().map(match_data_to_api).collect(); + Ok(Json(ListMatchesResponse { matches: api_matches, has_next, diff --git a/planetwars-server/src/schema.rs b/planetwars-server/src/schema.rs index 70889b1..adc6555 100644 --- a/planetwars-server/src/schema.rs +++ b/planetwars-server/src/schema.rs @@ -30,6 +30,17 @@ table! { use diesel::sql_types::*; use crate::db_types::*; + maps (id) { + id -> Int4, + name -> Text, + file_path -> Text, + } +} + +table! { + use diesel::sql_types::*; + use crate::db_types::*; + match_players (match_id, player_id) { match_id -> Int4, player_id -> Int4, @@ -48,6 +59,7 @@ table! { created_at -> Timestamp, winner -> Nullable<Int4>, is_public -> Bool, + map_id -> Nullable<Int4>, } } @@ -87,12 +99,14 @@ table! { joinable!(bots -> users (owner_id)); joinable!(match_players -> bot_versions (bot_version_id)); joinable!(match_players -> matches (match_id)); +joinable!(matches -> maps (map_id)); joinable!(ratings -> bots (bot_id)); joinable!(sessions -> users (user_id)); allow_tables_to_appear_in_same_query!( bot_versions, bots, + maps, match_players, matches, ratings, |