aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/handlers/home.go9
-rw-r--r--backend/handlers/map.go42
-rw-r--r--backend/models/models.go11
3 files changed, 30 insertions, 32 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
diff --git a/backend/models/models.go b/backend/models/models.go
index b706d25..2d54295 100644
--- a/backend/models/models.go
+++ b/backend/models/models.go
@@ -33,6 +33,12 @@ type UserShort struct {
33 UserName string `json:"user_name"` 33 UserName string `json:"user_name"`
34} 34}
35 35
36type UserShortWithAvatar struct {
37 SteamID string `json:"steam_id"`
38 UserName string `json:"user_name"`
39 AvatarLink string `json:"avatar_link"`
40}
41
36type Map struct { 42type Map struct {
37 ID int `json:"id"` 43 ID int `json:"id"`
38 GameName string `json:"game_name"` 44 GameName string `json:"game_name"`
@@ -71,9 +77,8 @@ type MapRecords struct {
71} 77}
72 78
73type UserRanking struct { 79type UserRanking struct {
74 UserID string `json:"user_id"` 80 User UserShort `json:"user"`
75 UserName string `json:"user_name"` 81 TotalScore int `json:"total_score"`
76 TotalScore int `json:"total_score"`
77} 82}
78 83
79type Game struct { 84type Game struct {