From d21a1f9edb97ed4a8b18215a1f5a96e0700cf7f4 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Fri, 22 Sep 2023 16:35:37 +0300 Subject: fix: page number error on empty records (#62) Former-commit-id: 2cc0de90a469feed0dd42cc2c0529b2e7ed72bae --- backend/handlers/map.go | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) (limited to 'backend/handlers/map.go') 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) { records = append(records, record) placement++ } + response.Records = records totalRecords = len(records) - totalPages = (totalRecords + pageSize - 1) / pageSize - if page > totalPages { - c.JSON(http.StatusBadRequest, models.ErrorResponse("Invalid page number.")) - return - } - startIndex := (page - 1) * pageSize - endIndex := startIndex + pageSize - if endIndex > totalRecords { - endIndex = totalRecords + if totalRecords != 0 { + totalPages = (totalRecords + pageSize - 1) / pageSize + if page > totalPages { + c.JSON(http.StatusBadRequest, models.ErrorResponse("Invalid page number.")) + return + } + startIndex := (page - 1) * pageSize + endIndex := startIndex + pageSize + if endIndex > totalRecords { + endIndex = totalRecords + } + response.Records = records[startIndex:endIndex] } - response.Records = records[startIndex:endIndex] } else { records := []RecordSingleplayer{} 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) { records = append(records, record) placement++ } + response.Records = records totalRecords = len(records) - totalPages = (totalRecords + pageSize - 1) / pageSize - if page > totalPages { - c.JSON(http.StatusBadRequest, models.ErrorResponse("Invalid page number.")) - return - } - startIndex := (page - 1) * pageSize - endIndex := startIndex + pageSize - if endIndex > totalRecords { - endIndex = totalRecords + if totalRecords != 0 { + totalPages = (totalRecords + pageSize - 1) / pageSize + if page > totalPages { + c.JSON(http.StatusBadRequest, models.ErrorResponse("Invalid page number.")) + return + } + startIndex := (page - 1) * pageSize + endIndex := startIndex + pageSize + if endIndex > totalRecords { + endIndex = totalRecords + } + response.Records = records[startIndex:endIndex] } - response.Records = records[startIndex:endIndex] } response.Pagination = models.Pagination{ TotalRecords: totalRecords, -- cgit v1.2.3