aboutsummaryrefslogtreecommitdiff
path: root/backend/handlers/map.go
diff options
context:
space:
mode:
Diffstat (limited to 'backend/handlers/map.go')
-rw-r--r--backend/handlers/map.go46
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,