add is_public to matches
This commit is contained in:
parent
1d280c62e2
commit
ee5c67c092
8 changed files with 17 additions and 2 deletions
|
@ -0,0 +1 @@
|
||||||
|
ALTER TABLE matches DROP COLUMN is_public;
|
|
@ -0,0 +1 @@
|
||||||
|
ALTER TABLE matches ADD COLUMN is_public boolean NOT NULL DEFAULT false;
|
|
@ -15,6 +15,7 @@ use super::bots::{Bot, BotVersion};
|
||||||
pub struct NewMatch<'a> {
|
pub struct NewMatch<'a> {
|
||||||
pub state: MatchState,
|
pub state: MatchState,
|
||||||
pub log_path: &'a str,
|
pub log_path: &'a str,
|
||||||
|
pub is_public: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Insertable)]
|
#[derive(Insertable)]
|
||||||
|
@ -36,6 +37,7 @@ pub struct MatchBase {
|
||||||
pub log_path: String,
|
pub log_path: String,
|
||||||
pub created_at: NaiveDateTime,
|
pub created_at: NaiveDateTime,
|
||||||
pub winner: Option<i32>,
|
pub winner: Option<i32>,
|
||||||
|
pub is_public: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Queryable, Identifiable, Associations, Clone)]
|
#[derive(Queryable, Identifiable, Associations, Clone)]
|
||||||
|
|
|
@ -119,6 +119,7 @@ impl pb::client_api_service_server::ClientApiService for ClientApiServer {
|
||||||
});
|
});
|
||||||
let run_match = RunMatch::from_players(
|
let run_match = RunMatch::from_players(
|
||||||
self.runner_config.clone(),
|
self.runner_config.clone(),
|
||||||
|
false,
|
||||||
vec![
|
vec![
|
||||||
MatchPlayer::BotSpec {
|
MatchPlayer::BotSpec {
|
||||||
spec: remote_bot_spec,
|
spec: remote_bot_spec,
|
||||||
|
|
|
@ -17,6 +17,7 @@ pub struct RunMatch {
|
||||||
log_file_name: String,
|
log_file_name: String,
|
||||||
players: Vec<MatchPlayer>,
|
players: Vec<MatchPlayer>,
|
||||||
config: Arc<GlobalConfig>,
|
config: Arc<GlobalConfig>,
|
||||||
|
is_public: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub enum MatchPlayer {
|
pub enum MatchPlayer {
|
||||||
|
@ -30,12 +31,18 @@ pub enum MatchPlayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RunMatch {
|
impl RunMatch {
|
||||||
pub fn from_players(config: Arc<GlobalConfig>, players: Vec<MatchPlayer>) -> Self {
|
// TODO: create a MatchParams struct
|
||||||
|
pub fn from_players(
|
||||||
|
config: Arc<GlobalConfig>,
|
||||||
|
is_public: bool,
|
||||||
|
players: Vec<MatchPlayer>,
|
||||||
|
) -> Self {
|
||||||
let log_file_name = format!("{}.log", gen_alphanumeric(16));
|
let log_file_name = format!("{}.log", gen_alphanumeric(16));
|
||||||
RunMatch {
|
RunMatch {
|
||||||
config,
|
config,
|
||||||
log_file_name,
|
log_file_name,
|
||||||
players,
|
players,
|
||||||
|
is_public,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,6 +87,7 @@ impl RunMatch {
|
||||||
let new_match_data = db::matches::NewMatch {
|
let new_match_data = db::matches::NewMatch {
|
||||||
state: db::matches::MatchState::Playing,
|
state: db::matches::MatchState::Playing,
|
||||||
log_path: &self.log_file_name,
|
log_path: &self.log_file_name,
|
||||||
|
is_public: self.is_public,
|
||||||
};
|
};
|
||||||
let new_match_players = self
|
let new_match_players = self
|
||||||
.players
|
.players
|
||||||
|
|
|
@ -53,7 +53,7 @@ async fn play_ranking_match(
|
||||||
players.push(player);
|
players.push(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
let (_, handle) = RunMatch::from_players(config, players)
|
let (_, handle) = RunMatch::from_players(config, true, players)
|
||||||
.run(db_pool.clone())
|
.run(db_pool.clone())
|
||||||
.await
|
.await
|
||||||
.expect("failed to run match");
|
.expect("failed to run match");
|
||||||
|
|
|
@ -50,6 +50,7 @@ pub async fn submit_bot(
|
||||||
|
|
||||||
let run_match = RunMatch::from_players(
|
let run_match = RunMatch::from_players(
|
||||||
config,
|
config,
|
||||||
|
false,
|
||||||
vec![
|
vec![
|
||||||
MatchPlayer::BotVersion {
|
MatchPlayer::BotVersion {
|
||||||
bot: None,
|
bot: None,
|
||||||
|
|
|
@ -47,6 +47,7 @@ table! {
|
||||||
log_path -> Text,
|
log_path -> Text,
|
||||||
created_at -> Timestamp,
|
created_at -> Timestamp,
|
||||||
winner -> Nullable<Int4>,
|
winner -> Nullable<Int4>,
|
||||||
|
is_public -> Bool,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue