diff options
Diffstat (limited to 'backend/handlers/map.go')
| -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, |