From 6e1167ee9e4ce2bef3c4a7f38efc362be1d750cd Mon Sep 17 00:00:00 2001 From: Ilion Beyst Date: Sun, 29 May 2022 11:41:52 +0200 Subject: save match winner in database --- planetwars-server/src/db/matches.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'planetwars-server/src/db') diff --git a/planetwars-server/src/db/matches.rs b/planetwars-server/src/db/matches.rs index 42689d1..ee25e85 100644 --- a/planetwars-server/src/db/matches.rs +++ b/planetwars-server/src/db/matches.rs @@ -35,6 +35,7 @@ pub struct MatchBase { pub state: MatchState, pub log_path: String, pub created_at: NaiveDateTime, + pub winner: Option, } #[derive(Queryable, Identifiable, Associations, Clone)] @@ -158,9 +159,15 @@ pub fn find_match_base(id: i32, conn: &PgConnection) -> QueryResult { matches::table.find(id).get_result::(conn) } -pub fn set_match_state(id: i32, match_state: MatchState, conn: &PgConnection) -> QueryResult<()> { +pub enum MatchResult { + Finished { winner: Option } +} + +pub fn save_match_result(id: i32, result: MatchResult, conn: &PgConnection) -> QueryResult<()> { + let MatchResult::Finished { winner } = result; + diesel::update(matches::table.find(id)) - .set(matches::state.eq(match_state)) + .set((matches::winner.eq(winner), matches::state.eq(MatchState::Finished))) .execute(conn)?; Ok(()) -} +} \ No newline at end of file -- cgit v1.2.3