diff options
Diffstat (limited to 'planetwars-server/src')
-rw-r--r-- | planetwars-server/src/db/match_queries.rs | 8 | ||||
-rw-r--r-- | planetwars-server/src/routes/matches.rs | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/planetwars-server/src/db/match_queries.rs b/planetwars-server/src/db/match_queries.rs index 999802f..f9f8140 100644 --- a/planetwars-server/src/db/match_queries.rs +++ b/planetwars-server/src/db/match_queries.rs @@ -40,6 +40,7 @@ impl QueryFragment<Pg> for ListBotMatches { out.push_sql(") main_player ON matches.id = main_player.match_id"); + // TODO: this won't work properly for matches with > 2 players if let Some(opponent_id) = self.opponent_id.as_ref() { out.push_sql(" JOIN ("); out.push_sql(concat!( @@ -70,11 +71,14 @@ impl QueryFragment<Pg> for ListBotMatches { if let Some(before) = self.before.as_ref() { out.push_sql(" AND matches.created_at < "); out.push_bind_param::<Timestamp, _>(before)?; - out.push_sql(" ORDER BY matches.created_at DESC"); } else if let Some(after) = self.after.as_ref() { out.push_sql(" AND matches.created_at > "); out.push_bind_param::<Timestamp, _>(after)?; - out.push_sql(" ORDER BY matches.created_at ASC"); + } + if self.after.is_some() { + out.push_sql(" ORDER BY matches.created_at ASC") + } else { + out.push_sql(" ORDER BY matches.created_at DESC") } out.push_sql(" LIMIT "); out.push_bind_param::<BigInt, _>(&self.amount)?; diff --git a/planetwars-server/src/routes/matches.rs b/planetwars-server/src/routes/matches.rs index 10f5c5d..39c153d 100644 --- a/planetwars-server/src/routes/matches.rs +++ b/planetwars-server/src/routes/matches.rs @@ -75,8 +75,8 @@ pub async fn list_recent_matches( let bot = db::bots::find_bot_by_name(&bot_name, &mut conn) .map_err(|_| StatusCode::BAD_REQUEST)?; - let opponent_id = if let Some(opponent_name) = params.opponent { - let opponent = db::bots::find_bot_by_name(&opponent_name, &mut conn) + let opponent_id = if let Some(ref opponent_name) = params.opponent { + let opponent = db::bots::find_bot_by_name(opponent_name, &mut conn) .map_err(|_| StatusCode::BAD_REQUEST)?; Some(opponent.id) } else { |