diff --git a/db/db.go b/db/db.go index 12ca748..3c5f98d 100644 --- a/db/db.go +++ b/db/db.go @@ -186,7 +186,7 @@ func (d *DB) AdjustKM(ctx context.Context, guildID, userID, username string, km func (d *DB) GetLeaderboard(ctx context.Context, guildID string, since time.Time, limit int) ([]*UserStats, error) { q := `SELECT user_id, - (SELECT username FROM distance_logs sub WHERE sub.user_id = dl.user_id AND sub.guild_id = dl.guild_id ORDER BY logged_at DESC LIMIT 1), + (SELECT username FROM distance_logs sub WHERE sub.user_id = dl.user_id AND sub.guild_id = $1 ORDER BY logged_at DESC LIMIT 1), SUM(km), COUNT(*), MAX(logged_at) FROM distance_logs dl WHERE guild_id = $1` args := []interface{}{guildID} @@ -230,7 +230,7 @@ func (d *DB) GetTotalKM(ctx context.Context, guildID string, since time.Time) (f func (d *DB) GetUserStats(ctx context.Context, guildID, userID string, since time.Time) (*UserStats, error) { q := `SELECT user_id, - COALESCE((SELECT username FROM distance_logs sub WHERE sub.user_id = dl.user_id AND sub.guild_id = dl.guild_id ORDER BY logged_at DESC LIMIT 1), ''), + COALESCE((SELECT username FROM distance_logs sub WHERE sub.user_id = dl.user_id AND sub.guild_id = $1 ORDER BY logged_at DESC LIMIT 1), ''), COALESCE(SUM(km), 0), COUNT(*), COALESCE(MAX(logged_at)::text, '') FROM distance_logs dl WHERE guild_id = $1 AND user_id = $2` args := []interface{}{guildID, userID} @@ -252,7 +252,7 @@ func (d *DB) GetUserStats(ctx context.Context, guildID, userID string, since tim func (d *DB) GetStatsInRange(ctx context.Context, guildID string, from, to time.Time, limit int) ([]*UserStats, error) { rows, err := d.conn.QueryContext(ctx, ` SELECT user_id, - (SELECT username FROM distance_logs sub WHERE sub.user_id = dl.user_id AND sub.guild_id = dl.guild_id ORDER BY logged_at DESC LIMIT 1), + (SELECT username FROM distance_logs sub WHERE sub.user_id = dl.user_id AND sub.guild_id = $1 ORDER BY logged_at DESC LIMIT 1), SUM(km), COUNT(*), MAX(logged_at) FROM distance_logs dl WHERE guild_id = $1 AND logged_at >= $2 AND logged_at <= $3 @@ -310,7 +310,7 @@ type YearTotal struct { func (d *DB) GetYearlyLeaderboard(ctx context.Context, guildID string, year, limit int) ([]*UserStats, error) { rows, err := d.conn.QueryContext(ctx, ` SELECT user_id, - (SELECT username FROM distance_logs sub WHERE sub.user_id = dl.user_id AND sub.guild_id = dl.guild_id ORDER BY logged_at DESC LIMIT 1), + (SELECT username FROM distance_logs sub WHERE sub.user_id = dl.user_id AND sub.guild_id = $1 ORDER BY logged_at DESC LIMIT 1), SUM(km), COUNT(*), MAX(logged_at) FROM distance_logs dl WHERE guild_id = $1 AND EXTRACT(YEAR FROM logged_at) = $2 @@ -341,7 +341,7 @@ func (d *DB) GetUserYearlyStats(ctx context.Context, guildID, userID string, yea var lastUpdated sql.NullTime err := d.conn.QueryRowContext(ctx, ` SELECT user_id, - (SELECT username FROM distance_logs sub WHERE sub.user_id = dl.user_id AND sub.guild_id = dl.guild_id ORDER BY logged_at DESC LIMIT 1), + (SELECT username FROM distance_logs sub WHERE sub.user_id = dl.user_id AND sub.guild_id = $1 ORDER BY logged_at DESC LIMIT 1), COALESCE(SUM(km), 0), COUNT(*), MAX(logged_at) FROM distance_logs dl WHERE guild_id = $1 AND user_id = $2 AND EXTRACT(YEAR FROM logged_at) = $3