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 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 for ListBotMatches { if let Some(before) = self.before.as_ref() { out.push_sql(" AND matches.created_at < "); out.push_bind_param::(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::(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::(&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 {