aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-22 14:00:02 +0300
committerGitHub <noreply@github.com>2023-09-22 14:00:02 +0300
commit381ed6d0a4d2223d7b032bf6f78ddb5b22a51310 (patch)
tree3692d31fa714c513e69db8cbc446fd2c5e21171f
parentdocs: leaderboard pagination parameters (diff)
downloadlphub-381ed6d0a4d2223d7b032bf6f78ddb5b22a51310.tar.gz
lphub-381ed6d0a4d2223d7b032bf6f78ddb5b22a51310.tar.bz2
lphub-381ed6d0a4d2223d7b032bf6f78ddb5b22a51310.zip
fix: leaderboards tie check, ordering (#60)
Former-commit-id: 69f789db003f9c1a8eaf200bbbb0f5cb773d5e45
-rw-r--r--backend/handlers/map.go10
1 files changed, 6 insertions, 4 deletions
diff --git a/backend/handlers/map.go b/backend/handlers/map.go
index af34dec..c1f68eb 100644
--- a/backend/handlers/map.go
+++ b/backend/handlers/map.go
@@ -188,7 +188,8 @@ func FetchMapLeaderboards(c *gin.Context) {
188 ) sub 188 ) sub
189 JOIN users AS host ON sub.host_id = host.steam_id 189 JOIN users AS host ON sub.host_id = host.steam_id
190 JOIN users AS partner ON sub.partner_id = partner.steam_id 190 JOIN users AS partner ON sub.partner_id = partner.steam_id
191 WHERE sub.rn = 1` 191 WHERE sub.rn = 1
192 ORDER BY score_count, score_time`
192 rows, err := database.DB.Query(sql, id) 193 rows, err := database.DB.Query(sql, id)
193 if err != nil { 194 if err != nil {
194 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) 195 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error()))
@@ -203,7 +204,7 @@ func FetchMapLeaderboards(c *gin.Context) {
203 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) 204 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error()))
204 return 205 return
205 } 206 }
206 if len(records) != 0 && records[len(records)-1].ScoreTime == record.ScoreTime { 207 if len(records) != 0 && records[len(records)-1].ScoreCount == record.ScoreCount && records[len(records)-1].ScoreTime == record.ScoreTime {
207 ties++ 208 ties++
208 record.Placement = placement - ties 209 record.Placement = placement - ties
209 } else { 210 } else {
@@ -234,7 +235,8 @@ func FetchMapLeaderboards(c *gin.Context) {
234 WHERE map_id = $1 235 WHERE map_id = $1
235 ) sub 236 ) sub
236 INNER JOIN users ON user_id = users.steam_id 237 INNER JOIN users ON user_id = users.steam_id
237 WHERE rn = 1` 238 WHERE rn = 1
239 ORDER BY score_count, score_time`
238 rows, err := database.DB.Query(sql, id) 240 rows, err := database.DB.Query(sql, id)
239 if err != nil { 241 if err != nil {
240 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) 242 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error()))
@@ -249,7 +251,7 @@ func FetchMapLeaderboards(c *gin.Context) {
249 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) 251 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error()))
250 return 252 return
251 } 253 }
252 if len(records) != 0 && records[len(records)-1].ScoreTime == record.ScoreTime { 254 if len(records) != 0 && records[len(records)-1].ScoreCount == record.ScoreCount && records[len(records)-1].ScoreTime == record.ScoreTime {
253 ties++ 255 ties++
254 record.Placement = placement - ties 256 record.Placement = placement - ties
255 } else { 257 } else {