aboutsummaryrefslogtreecommitdiff
path: root/backend/handlers
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-02 16:26:48 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-02 16:26:48 +0300
commitdd9a047dc6512b3b6419ac4bd05a77bc22be95b0 (patch)
tree6ab30abac6f5785c812a268070c148283168f588 /backend/handlers
parentfix: optimize rankings (diff)
downloadlphub-dd9a047dc6512b3b6419ac4bd05a77bc22be95b0.tar.gz
lphub-dd9a047dc6512b3b6419ac4bd05a77bc22be95b0.tar.bz2
lphub-dd9a047dc6512b3b6419ac4bd05a77bc22be95b0.zip
fix: imrpoved user models on responses
Former-commit-id: 3aeb7e76928081664f33a4012bd1d84c81eef77c
Diffstat (limited to 'backend/handlers')
-rw-r--r--backend/handlers/home.go9
-rw-r--r--backend/handlers/map.go42
2 files changed, 22 insertions, 29 deletions
diff --git a/backend/handlers/home.go b/backend/handlers/home.go
index 53be1de..eb3912c 100644
--- a/backend/handlers/home.go
+++ b/backend/handlers/home.go
@@ -68,7 +68,7 @@ func Rankings(c *gin.Context) {
68 ranking := models.UserRanking{} 68 ranking := models.UserRanking{}
69 var currentCount int 69 var currentCount int
70 var totalCount int 70 var totalCount int
71 err = rows.Scan(&ranking.UserID, &ranking.UserName, &currentCount, &totalCount, &ranking.TotalScore) 71 err = rows.Scan(&ranking.User.SteamID, &ranking.User.UserName, &currentCount, &totalCount, &ranking.TotalScore)
72 if err != nil { 72 if err != nil {
73 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) 73 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error()))
74 return 74 return
@@ -100,7 +100,7 @@ func Rankings(c *gin.Context) {
100 ranking := models.UserRanking{} 100 ranking := models.UserRanking{}
101 var currentCount int 101 var currentCount int
102 var totalCount int 102 var totalCount int
103 err = rows.Scan(&ranking.UserID, &ranking.UserName, &currentCount, &totalCount, &ranking.TotalScore) 103 err = rows.Scan(&ranking.User.SteamID, &ranking.User.UserName, &currentCount, &totalCount, &ranking.TotalScore)
104 if err != nil { 104 if err != nil {
105 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) 105 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error()))
106 return 106 return
@@ -113,11 +113,10 @@ func Rankings(c *gin.Context) {
113 // Has both so they are qualified for overall ranking 113 // Has both so they are qualified for overall ranking
114 for _, spRanking := range response.Singleplayer { 114 for _, spRanking := range response.Singleplayer {
115 for _, mpRanking := range response.Multiplayer { 115 for _, mpRanking := range response.Multiplayer {
116 if spRanking.UserID == mpRanking.UserID { 116 if spRanking.User.SteamID == mpRanking.User.SteamID {
117 totalScore := spRanking.TotalScore + mpRanking.TotalScore 117 totalScore := spRanking.TotalScore + mpRanking.TotalScore
118 overallRanking := models.UserRanking{ 118 overallRanking := models.UserRanking{
119 UserID: spRanking.UserID, 119 User: spRanking.User,
120 UserName: spRanking.UserName,
121 TotalScore: totalScore, 120 TotalScore: totalScore,
122 } 121 }
123 response.Overall = append(response.Overall, overallRanking) 122 response.Overall = append(response.Overall, overallRanking)
diff --git a/backend/handlers/map.go b/backend/handlers/map.go
index 0a0206e..1d9cee8 100644
--- a/backend/handlers/map.go
+++ b/backend/handlers/map.go
@@ -31,31 +31,25 @@ type ChapterMapsResponse struct {
31} 31}
32 32
33type RecordSingleplayer struct { 33type RecordSingleplayer struct {
34 Placement int `json:"placement"` 34 Placement int `json:"placement"`
35 RecordID int `json:"record_id"` 35 RecordID int `json:"record_id"`
36 ScoreCount int `json:"score_count"` 36 ScoreCount int `json:"score_count"`
37 ScoreTime int `json:"score_time"` 37 ScoreTime int `json:"score_time"`
38 UserID string `json:"user_id"` 38 User models.UserShortWithAvatar `json:"user"`
39 UserName string `json:"user_name"` 39 DemoID string `json:"demo_id"`
40 UserAvatar string `json:"user_avatar"` 40 RecordDate time.Time `json:"record_date"`
41 DemoID string `json:"demo_id"`
42 RecordDate time.Time `json:"record_date"`
43} 41}
44 42
45type RecordMultiplayer struct { 43type RecordMultiplayer struct {
46 Placement int `json:"placement"` 44 Placement int `json:"placement"`
47 RecordID int `json:"record_id"` 45 RecordID int `json:"record_id"`
48 ScoreCount int `json:"score_count"` 46 ScoreCount int `json:"score_count"`
49 ScoreTime int `json:"score_time"` 47 ScoreTime int `json:"score_time"`
50 HostID string `json:"host_id"` 48 Host models.UserShortWithAvatar `json:"host"`
51 HostName string `json:"host_name"` 49 Partner models.UserShortWithAvatar `json:"partner"`
52 HostAvatar string `json:"host_avatar"` 50 HostDemoID string `json:"host_demo_id"`
53 PartnerID string `json:"partner_id"` 51 PartnerDemoID string `json:"partner_demo_id"`
54 PartnerName string `json:"partner_name"` 52 RecordDate time.Time `json:"record_date"`
55 PartnerAvatar string `json:"partner_avatar"`
56 HostDemoID string `json:"host_demo_id"`
57 PartnerDemoID string `json:"partner_demo_id"`
58 RecordDate time.Time `json:"record_date"`
59} 53}
60 54
61// GET Map Summary 55// GET Map Summary
@@ -195,7 +189,7 @@ func FetchMapLeaderboards(c *gin.Context) {
195 ties := 0 189 ties := 0
196 for rows.Next() { 190 for rows.Next() {
197 var record RecordMultiplayer 191 var record RecordMultiplayer
198 err := rows.Scan(&record.RecordID, &record.HostID, &record.HostName, &record.HostAvatar, &record.PartnerID, &record.PartnerName, &record.PartnerAvatar, &record.ScoreCount, &record.ScoreTime, &record.HostDemoID, &record.PartnerDemoID, &record.RecordDate) 192 err := rows.Scan(&record.RecordID, &record.Host.SteamID, &record.Host.UserName, &record.Host.AvatarLink, &record.Partner.SteamID, &record.Partner.UserName, &record.Partner.AvatarLink, &record.ScoreCount, &record.ScoreTime, &record.HostDemoID, &record.PartnerDemoID, &record.RecordDate)
199 if err != nil { 193 if err != nil {
200 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) 194 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error()))
201 return 195 return
@@ -230,7 +224,7 @@ func FetchMapLeaderboards(c *gin.Context) {
230 ties := 0 224 ties := 0
231 for rows.Next() { 225 for rows.Next() {
232 var record RecordSingleplayer 226 var record RecordSingleplayer
233 err := rows.Scan(&record.RecordID, &record.UserID, &record.UserName, &record.UserAvatar, &record.ScoreCount, &record.ScoreTime, &record.DemoID, &record.RecordDate) 227 err := rows.Scan(&record.RecordID, &record.User.SteamID, &record.User.UserName, &record.User.AvatarLink, &record.ScoreCount, &record.ScoreTime, &record.DemoID, &record.RecordDate)
234 if err != nil { 228 if err != nil {
235 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) 229 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error()))
236 return 230 return