diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-02 13:48:55 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-02 13:48:55 +0300 |
| commit | bef18a1641c8c9f0a8faf7d613729f439dc80a82 (patch) | |
| tree | b32f8da1dfd184c11f5656d366a17953baffa977 /backend/handlers/logs.go | |
| parent | feat: finalize score logs (#55) (diff) | |
| download | lphub-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.go | 19 |
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 | ||
| 42 | type ScoreLogsResponseDetails struct { | 42 | type 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 | ||
| 88 | func ScoreLogs(c *gin.Context) { | 89 | func 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 |