diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-22 16:35:37 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-22 16:35:37 +0300 |
| commit | d21a1f9edb97ed4a8b18215a1f5a96e0700cf7f4 (patch) | |
| tree | 848117e5c2f47ff7e7d401d6fb6a856ccadc5034 /backend | |
| parent | fix: leaderboards tie check, ordering (#60) (diff) | |
| download | lphub-d21a1f9edb97ed4a8b18215a1f5a96e0700cf7f4.tar.gz lphub-d21a1f9edb97ed4a8b18215a1f5a96e0700cf7f4.tar.bz2 lphub-d21a1f9edb97ed4a8b18215a1f5a96e0700cf7f4.zip | |
fix: page number error on empty records (#62)
Former-commit-id: 2cc0de90a469feed0dd42cc2c0529b2e7ed72bae
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/handlers/map.go | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/backend/handlers/map.go b/backend/handlers/map.go index c1f68eb..2a060e6 100644 --- a/backend/handlers/map.go +++ b/backend/handlers/map.go | |||
| @@ -213,18 +213,21 @@ func FetchMapLeaderboards(c *gin.Context) { | |||
| 213 | records = append(records, record) | 213 | records = append(records, record) |
| 214 | placement++ | 214 | placement++ |
| 215 | } | 215 | } |
| 216 | response.Records = records | ||
| 216 | totalRecords = len(records) | 217 | totalRecords = len(records) |
| 217 | totalPages = (totalRecords + pageSize - 1) / pageSize | 218 | if totalRecords != 0 { |
| 218 | if page > totalPages { | 219 | totalPages = (totalRecords + pageSize - 1) / pageSize |
| 219 | c.JSON(http.StatusBadRequest, models.ErrorResponse("Invalid page number.")) | 220 | if page > totalPages { |
| 220 | return | 221 | c.JSON(http.StatusBadRequest, models.ErrorResponse("Invalid page number.")) |
| 221 | } | 222 | return |
| 222 | startIndex := (page - 1) * pageSize | 223 | } |
| 223 | endIndex := startIndex + pageSize | 224 | startIndex := (page - 1) * pageSize |
| 224 | if endIndex > totalRecords { | 225 | endIndex := startIndex + pageSize |
| 225 | endIndex = totalRecords | 226 | if endIndex > totalRecords { |
| 227 | endIndex = totalRecords | ||
| 228 | } | ||
| 229 | response.Records = records[startIndex:endIndex] | ||
| 226 | } | 230 | } |
| 227 | response.Records = records[startIndex:endIndex] | ||
| 228 | } else { | 231 | } else { |
| 229 | records := []RecordSingleplayer{} | 232 | records := []RecordSingleplayer{} |
| 230 | sql = `SELECT id, user_id, users.user_name, users.avatar_link, score_count, score_time, demo_id, record_date | 233 | sql = `SELECT id, user_id, users.user_name, users.avatar_link, score_count, score_time, demo_id, record_date |
| @@ -260,18 +263,21 @@ func FetchMapLeaderboards(c *gin.Context) { | |||
| 260 | records = append(records, record) | 263 | records = append(records, record) |
| 261 | placement++ | 264 | placement++ |
| 262 | } | 265 | } |
| 266 | response.Records = records | ||
| 263 | totalRecords = len(records) | 267 | totalRecords = len(records) |
| 264 | totalPages = (totalRecords + pageSize - 1) / pageSize | 268 | if totalRecords != 0 { |
| 265 | if page > totalPages { | 269 | totalPages = (totalRecords + pageSize - 1) / pageSize |
| 266 | c.JSON(http.StatusBadRequest, models.ErrorResponse("Invalid page number.")) | 270 | if page > totalPages { |
| 267 | return | 271 | c.JSON(http.StatusBadRequest, models.ErrorResponse("Invalid page number.")) |
| 268 | } | 272 | return |
| 269 | startIndex := (page - 1) * pageSize | 273 | } |
| 270 | endIndex := startIndex + pageSize | 274 | startIndex := (page - 1) * pageSize |
| 271 | if endIndex > totalRecords { | 275 | endIndex := startIndex + pageSize |
| 272 | endIndex = totalRecords | 276 | if endIndex > totalRecords { |
| 277 | endIndex = totalRecords | ||
| 278 | } | ||
| 279 | response.Records = records[startIndex:endIndex] | ||
| 273 | } | 280 | } |
| 274 | response.Records = records[startIndex:endIndex] | ||
| 275 | } | 281 | } |
| 276 | response.Pagination = models.Pagination{ | 282 | response.Pagination = models.Pagination{ |
| 277 | TotalRecords: totalRecords, | 283 | TotalRecords: totalRecords, |