aboutsummaryrefslogtreecommitdiff
path: root/backend/handlers/logs.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-02 13:48:55 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-02 13:48:55 +0300
commitbef18a1641c8c9f0a8faf7d613729f439dc80a82 (patch)
treeb32f8da1dfd184c11f5656d366a17953baffa977 /backend/handlers/logs.go
parentfeat: finalize score logs (#55) (diff)
downloadlphub-bef18a1641c8c9f0a8faf7d613729f439dc80a82.tar.gz
lphub-bef18a1641c8c9f0a8faf7d613729f439dc80a82.tar.bz2
lphub-bef18a1641c8c9f0a8faf7d613729f439dc80a82.zip
feat: sike, add game to score logs (#55)
Former-commit-id: 4ffa3b1269c0859b6cc85defc3fa6e095102252a
Diffstat (limited to 'backend/handlers/logs.go')
-rw-r--r--backend/handlers/logs.go19
1 files changed, 12 insertions, 7 deletions
diff --git a/backend/handlers/logs.go b/backend/handlers/logs.go
index c77d643..0ebba47 100644
--- a/backend/handlers/logs.go
+++ b/backend/handlers/logs.go
@@ -40,6 +40,7 @@ type ScoreLogsResponse struct {
40} 40}
41 41
42type ScoreLogsResponseDetails struct { 42type ScoreLogsResponseDetails struct {
43 Game models.Game `json:"game"`
43 User models.UserShort `json:"user"` 44 User models.UserShort `json:"user"`
44 Map models.MapShort `json:"map"` 45 Map models.MapShort `json:"map"`
45 ScoreCount int `json:"score_count"` 46 ScoreCount int `json:"score_count"`
@@ -87,7 +88,10 @@ func ModLogs(c *gin.Context) {
87 88
88func ScoreLogs(c *gin.Context) { 89func ScoreLogs(c *gin.Context) {
89 response := ScoreLogsResponse{Logs: []ScoreLogsResponseDetails{}} 90 response := ScoreLogsResponse{Logs: []ScoreLogsResponseDetails{}}
90 sql := `SELECT rs.map_id, 91 sql := `SELECT g.id,
92 g."name",
93 g.is_coop,
94 rs.map_id,
91 m.name AS map_name, 95 m.name AS map_name,
92 u.steam_id, 96 u.steam_id,
93 u.user_name, 97 u.user_name,
@@ -97,20 +101,21 @@ func ScoreLogs(c *gin.Context) {
97 rs.record_date 101 rs.record_date
98 FROM ( 102 FROM (
99 SELECT id, map_id, user_id, score_count, score_time, demo_id, record_date 103 SELECT id, map_id, user_id, score_count, score_time, demo_id, record_date
100 FROM public.records_sp 104 FROM records_sp
101 105
102 UNION ALL 106 UNION ALL
103 107
104 SELECT id, map_id, host_id AS user_id, score_count, score_time, host_demo_id AS demo_id, record_date 108 SELECT id, map_id, host_id AS user_id, score_count, score_time, host_demo_id AS demo_id, record_date
105 FROM public.records_mp 109 FROM records_mp
106 110
107 UNION ALL 111 UNION ALL
108 112
109 SELECT id, map_id, partner_id AS user_id, score_count, score_time, partner_demo_id AS demo_id, record_date 113 SELECT id, map_id, partner_id AS user_id, score_count, score_time, partner_demo_id AS demo_id, record_date
110 FROM public.records_mp 114 FROM records_mp
111 ) AS rs 115 ) AS rs
112 JOIN public.users AS u ON rs.user_id = u.steam_id 116 JOIN users u ON rs.user_id = u.steam_id
113 JOIN public.maps AS m ON rs.map_id = m.id 117 JOIN maps m ON rs.map_id = m.id
118 JOIN games g ON m.game_id = g.id
114 ORDER BY rs.record_date DESC LIMIT 100;` 119 ORDER BY rs.record_date DESC LIMIT 100;`
115 rows, err := database.DB.Query(sql) 120 rows, err := database.DB.Query(sql)
116 if err != nil { 121 if err != nil {
@@ -119,7 +124,7 @@ func ScoreLogs(c *gin.Context) {
119 } 124 }
120 for rows.Next() { 125 for rows.Next() {
121 score := ScoreLogsResponseDetails{} 126 score := ScoreLogsResponseDetails{}
122 err = rows.Scan(&score.Map.ID, &score.Map.Name, &score.User.SteamID, &score.User.UserName, &score.ScoreCount, &score.ScoreTime, &score.DemoID, &score.Date) 127 err = rows.Scan(&score.Game.ID, &score.Game.Name, &score.Game.IsCoop, &score.Map.ID, &score.Map.Name, &score.User.SteamID, &score.User.UserName, &score.ScoreCount, &score.ScoreTime, &score.DemoID, &score.Date)
123 if err != nil { 128 if err != nil {
124 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) 129 c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error()))
125 return 130 return