aboutsummaryrefslogtreecommitdiff
path: root/backend/handlers
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-10-21 12:50:32 +0300
committerGitHub <noreply@github.com>2023-10-21 12:50:32 +0300
commit1cbdc3ac8d7da784dfefcd653ef2c8a0ca480c55 (patch)
tree666edcd9da8924155554a5eb43fb22885f89526f /backend/handlers
parentupdate parser so that it gets correct ticks (#113) (diff)
downloadlphub-1cbdc3ac8d7da784dfefcd653ef2c8a0ca480c55.tar.gz
lphub-1cbdc3ac8d7da784dfefcd653ef2c8a0ca480c55.tar.bz2
lphub-1cbdc3ac8d7da784dfefcd653ef2c8a0ca480c55.zip
remove pagination for profile/user (#121)
Former-commit-id: 7f2b74c18d316330c250d8aac058aa1912b4d1e0
Diffstat (limited to 'backend/handlers')
-rw-r--r--backend/handlers/user.go65
1 files changed, 2 insertions, 63 deletions
diff --git a/backend/handlers/user.go b/backend/handlers/user.go
index a9174a2..e975d07 100644
--- a/backend/handlers/user.go
+++ b/backend/handlers/user.go
@@ -4,7 +4,6 @@ import (
4 "net/http" 4 "net/http"
5 "os" 5 "os"
6 "regexp" 6 "regexp"
7 "strconv"
8 "time" 7 "time"
9 8
10 "github.com/gin-gonic/gin" 9 "github.com/gin-gonic/gin"
@@ -75,18 +74,10 @@ func Profile(c *gin.Context) {
75 c.JSON(http.StatusOK, models.ErrorResponse("User not logged in.")) 74 c.JSON(http.StatusOK, models.ErrorResponse("User not logged in."))
76 return 75 return
77 } 76 }
78 page, err := strconv.Atoi(c.DefaultQuery("page", "1"))
79 if err != nil || page < 1 {
80 page = 1
81 }
82 pageSize, err := strconv.Atoi(c.DefaultQuery("pageSize", "20"))
83 if err != nil || pageSize < 1 {
84 pageSize = 20
85 }
86 // Get user links 77 // Get user links
87 links := models.Links{} 78 links := models.Links{}
88 sql := `SELECT u.p2sr, u.steam, u.youtube, u.twitch FROM users u WHERE u.steam_id = $1` 79 sql := `SELECT u.p2sr, u.steam, u.youtube, u.twitch FROM users u WHERE u.steam_id = $1`
89 err = database.DB.QueryRow(sql, user.(models.User).SteamID).Scan(&links.P2SR, &links.Steam, &links.YouTube, &links.Twitch) 80 err := database.DB.QueryRow(sql, user.(models.User).SteamID).Scan(&links.P2SR, &links.Steam, &links.YouTube, &links.Twitch)
90 if err != nil { 81 if err != nil {
91 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 82 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
92 return 83 return
@@ -301,8 +292,6 @@ func Profile(c *gin.Context) {
301 } 292 }
302 } 293 }
303 records := []ProfileRecords{} 294 records := []ProfileRecords{}
304 totalRecords := 0
305 totalPages := 0
306 // Get singleplayer records 295 // Get singleplayer records
307 sql = `SELECT sp.id, m.game_id, m.chapter_id, sp.map_id, m."name", (SELECT mr.score_count FROM map_routes mr WHERE mr.map_id = sp.map_id ORDER BY mr.score_count ASC LIMIT 1) AS wr_count, sp.score_count, sp.score_time, sp.demo_id, sp.record_date 296 sql = `SELECT sp.id, m.game_id, m.chapter_id, sp.map_id, m."name", (SELECT mr.score_count FROM map_routes mr WHERE mr.map_id = sp.map_id ORDER BY mr.score_count ASC LIMIT 1) AS wr_count, sp.score_count, sp.score_time, sp.demo_id, sp.record_date
308 FROM records_sp sp INNER JOIN maps m ON sp.map_id = m.id WHERE sp.user_id = $1 AND sp.is_deleted = false ORDER BY sp.map_id, sp.score_count, sp.score_time` 297 FROM records_sp sp INNER JOIN maps m ON sp.map_id = m.id WHERE sp.user_id = $1 AND sp.is_deleted = false ORDER BY sp.map_id, sp.score_count, sp.score_time`
@@ -405,20 +394,6 @@ func Profile(c *gin.Context) {
405 placementIndex++ 394 placementIndex++
406 records[len(records)-1].Scores = append(records[len(records)-1].Scores, score) 395 records[len(records)-1].Scores = append(records[len(records)-1].Scores, score)
407 } 396 }
408 totalRecords = len(records)
409 if totalRecords != 0 {
410 totalPages = (totalRecords + pageSize - 1) / pageSize
411 if page > totalPages {
412 c.JSON(http.StatusOK, models.ErrorResponse("Invalid page number."))
413 return
414 }
415 startIndex := (page - 1) * pageSize
416 endIndex := startIndex + pageSize
417 if endIndex > totalRecords {
418 endIndex = totalRecords
419 }
420 records = records[startIndex:endIndex]
421 }
422 c.JSON(http.StatusOK, models.Response{ 397 c.JSON(http.StatusOK, models.Response{
423 Success: true, 398 Success: true,
424 Message: "Successfully retrieved user scores.", 399 Message: "Successfully retrieved user scores.",
@@ -432,12 +407,6 @@ func Profile(c *gin.Context) {
432 Links: links, 407 Links: links,
433 Rankings: rankings, 408 Rankings: rankings,
434 Records: records, 409 Records: records,
435 Pagination: models.Pagination{
436 TotalRecords: totalRecords,
437 TotalPages: totalPages,
438 CurrentPage: page,
439 PageSize: pageSize,
440 },
441 }, 410 },
442 }) 411 })
443} 412}
@@ -459,19 +428,11 @@ func FetchUser(c *gin.Context) {
459 c.JSON(http.StatusOK, models.ErrorResponse("User not found.")) 428 c.JSON(http.StatusOK, models.ErrorResponse("User not found."))
460 return 429 return
461 } 430 }
462 page, err := strconv.Atoi(c.DefaultQuery("page", "1"))
463 if err != nil || page < 1 {
464 page = 1
465 }
466 pageSize, err := strconv.Atoi(c.DefaultQuery("pageSize", "20"))
467 if err != nil || pageSize < 1 {
468 pageSize = 20
469 }
470 // Check if user exists 431 // Check if user exists
471 var user models.User 432 var user models.User
472 links := models.Links{} 433 links := models.Links{}
473 sql := `SELECT u.steam_id, u.user_name, u.avatar_link, u.country_code, u.created_at, u.updated_at, u.p2sr, u.steam, u.youtube, u.twitch FROM users u WHERE u.steam_id = $1` 434 sql := `SELECT u.steam_id, u.user_name, u.avatar_link, u.country_code, u.created_at, u.updated_at, u.p2sr, u.steam, u.youtube, u.twitch FROM users u WHERE u.steam_id = $1`
474 err = database.DB.QueryRow(sql, id).Scan(&user.SteamID, &user.UserName, &user.AvatarLink, &user.CountryCode, &user.CreatedAt, &user.UpdatedAt, &links.P2SR, &links.Steam, &links.YouTube, &links.Twitch) 435 err := database.DB.QueryRow(sql, id).Scan(&user.SteamID, &user.UserName, &user.AvatarLink, &user.CountryCode, &user.CreatedAt, &user.UpdatedAt, &links.P2SR, &links.Steam, &links.YouTube, &links.Twitch)
475 if err != nil { 436 if err != nil {
476 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 437 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
477 return 438 return
@@ -703,8 +664,6 @@ func FetchUser(c *gin.Context) {
703 } 664 }
704 } 665 }
705 records := []ProfileRecords{} 666 records := []ProfileRecords{}
706 totalRecords := 0
707 totalPages := 0
708 // Get singleplayer records 667 // Get singleplayer records
709 sql = `SELECT sp.id, m.game_id, m.chapter_id, sp.map_id, m."name", (SELECT mr.score_count FROM map_routes mr WHERE mr.map_id = sp.map_id ORDER BY mr.score_count ASC LIMIT 1) AS wr_count, sp.score_count, sp.score_time, sp.demo_id, sp.record_date 668 sql = `SELECT sp.id, m.game_id, m.chapter_id, sp.map_id, m."name", (SELECT mr.score_count FROM map_routes mr WHERE mr.map_id = sp.map_id ORDER BY mr.score_count ASC LIMIT 1) AS wr_count, sp.score_count, sp.score_time, sp.demo_id, sp.record_date
710 FROM records_sp sp INNER JOIN maps m ON sp.map_id = m.id WHERE sp.user_id = $1 AND sp.is_deleted = false ORDER BY sp.map_id, sp.score_count, sp.score_time` 669 FROM records_sp sp INNER JOIN maps m ON sp.map_id = m.id WHERE sp.user_id = $1 AND sp.is_deleted = false ORDER BY sp.map_id, sp.score_count, sp.score_time`
@@ -807,20 +766,6 @@ func FetchUser(c *gin.Context) {
807 placementIndex++ 766 placementIndex++
808 records[len(records)-1].Scores = append(records[len(records)-1].Scores, score) 767 records[len(records)-1].Scores = append(records[len(records)-1].Scores, score)
809 } 768 }
810 totalRecords = len(records)
811 if totalRecords != 0 {
812 totalPages = (totalRecords + pageSize - 1) / pageSize
813 if page > totalPages {
814 c.JSON(http.StatusOK, models.ErrorResponse("Invalid page number."))
815 return
816 }
817 startIndex := (page - 1) * pageSize
818 endIndex := startIndex + pageSize
819 if endIndex > totalRecords {
820 endIndex = totalRecords
821 }
822 records = records[startIndex:endIndex]
823 }
824 c.JSON(http.StatusOK, models.Response{ 769 c.JSON(http.StatusOK, models.Response{
825 Success: true, 770 Success: true,
826 Message: "Successfully retrieved user scores.", 771 Message: "Successfully retrieved user scores.",
@@ -834,12 +779,6 @@ func FetchUser(c *gin.Context) {
834 Links: links, 779 Links: links,
835 Rankings: rankings, 780 Rankings: rankings,
836 Records: records, 781 Records: records,
837 Pagination: models.Pagination{
838 TotalRecords: totalRecords,
839 TotalPages: totalPages,
840 CurrentPage: page,
841 PageSize: pageSize,
842 },
843 }, 782 },
844 }) 783 })
845} 784}