diff options
author | Ilion Beyst <ilion.beyst@gmail.com> | 2022-05-29 11:41:52 +0200 |
---|---|---|
committer | Ilion Beyst <ilion.beyst@gmail.com> | 2022-05-29 11:41:52 +0200 |
commit | 6e1167ee9e4ce2bef3c4a7f38efc362be1d750cd (patch) | |
tree | e50eef4b59704f552158829793c745fe90452bff /planetwars-server/src/db/matches.rs | |
parent | 80c60ac69c9b0d86a4536eeac82cf266eb4430bc (diff) | |
download | planetwars.dev-6e1167ee9e4ce2bef3c4a7f38efc362be1d750cd.tar.xz planetwars.dev-6e1167ee9e4ce2bef3c4a7f38efc362be1d750cd.zip |
save match winner in database
Diffstat (limited to 'planetwars-server/src/db/matches.rs')
-rw-r--r-- | planetwars-server/src/db/matches.rs | 13 |
1 files changed, 10 insertions, 3 deletions
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<i32>, } #[derive(Queryable, Identifiable, Associations, Clone)] @@ -158,9 +159,15 @@ pub fn find_match_base(id: i32, conn: &PgConnection) -> QueryResult<MatchBase> { matches::table.find(id).get_result::<MatchBase>(conn) } -pub fn set_match_state(id: i32, match_state: MatchState, conn: &PgConnection) -> QueryResult<()> { +pub enum MatchResult { + Finished { winner: Option<i32> } +} + +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 |