diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-08-24 22:42:22 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-08-24 22:42:22 +0300 |
| commit | 17fb28437214712d7b7a9db02a2c0b8d87f0559d (patch) | |
| tree | f0d00ae12bfb6c14d5df6658e1c37f729c04e3e8 | |
| parent | fix: mod flag for easy check (#49) (diff) | |
| download | lphub-17fb28437214712d7b7a9db02a2c0b8d87f0559d.tar.gz lphub-17fb28437214712d7b7a9db02a2c0b8d87f0559d.tar.bz2 lphub-17fb28437214712d7b7a9db02a2c0b8d87f0559d.zip | |
feat: profile cleanup before rework (#51)
Former-commit-id: 639d3d4a42b147cf0712775ce5218f613edf6de5
Diffstat (limited to '')
| -rw-r--r-- | backend/controllers/userController.go | 59 |
1 files changed, 12 insertions, 47 deletions
diff --git a/backend/controllers/userController.go b/backend/controllers/userController.go index 64f144a..960ecb4 100644 --- a/backend/controllers/userController.go +++ b/backend/controllers/userController.go | |||
| @@ -143,58 +143,21 @@ func FetchUser(c *gin.Context) { | |||
| 143 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) | 143 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) |
| 144 | return | 144 | return |
| 145 | } | 145 | } |
| 146 | // Retrieve singleplayer records | 146 | // Get user titles |
| 147 | var scoresSP []ScoreResponse | 147 | sql := `SELECT t.title_name, t.title_color FROM titles t |
| 148 | sql := `SELECT id, map_id, score_count, score_time, demo_id, record_date FROM records_sp WHERE user_id = $1 ORDER BY map_id` | 148 | INNER JOIN user_titles ut ON t.id=ut.title_id WHERE ut.user_id = $1` |
| 149 | rows, err := database.DB.Query(sql, user.SteamID) | 149 | rows, err := database.DB.Query(sql, user.SteamID) |
| 150 | if err != nil { | 150 | if err != nil { |
| 151 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) | 151 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) |
| 152 | return | 152 | return |
| 153 | } | 153 | } |
| 154 | var recordsSP []models.RecordSP | ||
| 155 | for rows.Next() { | 154 | for rows.Next() { |
| 156 | var mapID int | 155 | var title models.Title |
| 157 | var record models.RecordSP | 156 | if err := rows.Scan(&title.Name, &title.Color); err != nil { |
| 158 | rows.Scan(&record.RecordID, &mapID, &record.ScoreCount, &record.ScoreTime, &record.DemoID, &record.RecordDate) | 157 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) |
| 159 | // More than one record in one map | 158 | return |
| 160 | if len(scoresSP) != 0 && mapID == scoresSP[len(scoresSP)-1].MapID { | ||
| 161 | scoresSP[len(scoresSP)-1].Records = append(scoresSP[len(scoresSP)-1].Records.([]models.RecordSP), record) | ||
| 162 | continue | ||
| 163 | } | ||
| 164 | // New map | ||
| 165 | recordsSP = []models.RecordSP{} | ||
| 166 | recordsSP = append(recordsSP, record) | ||
| 167 | scoresSP = append(scoresSP, ScoreResponse{ | ||
| 168 | MapID: mapID, | ||
| 169 | Records: recordsSP, | ||
| 170 | }) | ||
| 171 | } | ||
| 172 | // Retrieve multiplayer records | ||
| 173 | var scoresMP []ScoreResponse | ||
| 174 | sql = `SELECT id, map_id, host_id, partner_id, score_count, score_time, host_demo_id, partner_demo_id, record_date FROM records_mp | ||
| 175 | WHERE host_id = $1 OR partner_id = $2 ORDER BY map_id` | ||
| 176 | rows, err = database.DB.Query(sql, user.SteamID, user.SteamID) | ||
| 177 | if err != nil { | ||
| 178 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) | ||
| 179 | return | ||
| 180 | } | ||
| 181 | var recordsMP []models.RecordMP | ||
| 182 | for rows.Next() { | ||
| 183 | var mapID int | ||
| 184 | var record models.RecordMP | ||
| 185 | rows.Scan(&record.RecordID, &mapID, &record.HostID, &record.PartnerID, &record.ScoreCount, &record.ScoreTime, &record.HostDemoID, &record.PartnerDemoID, &record.RecordDate) | ||
| 186 | // More than one record in one map | ||
| 187 | if len(scoresMP) != 0 && mapID == scoresMP[len(scoresMP)-1].MapID { | ||
| 188 | scoresMP[len(scoresMP)-1].Records = append(scoresMP[len(scoresMP)-1].Records.([]models.RecordMP), record) | ||
| 189 | continue | ||
| 190 | } | 159 | } |
| 191 | // New map | 160 | user.Titles = append(user.Titles, title) |
| 192 | recordsMP = []models.RecordMP{} | ||
| 193 | recordsMP = append(recordsMP, record) | ||
| 194 | scoresMP = append(scoresMP, ScoreResponse{ | ||
| 195 | MapID: mapID, | ||
| 196 | Records: recordsMP, | ||
| 197 | }) | ||
| 198 | } | 161 | } |
| 199 | c.JSON(http.StatusOK, models.Response{ | 162 | c.JSON(http.StatusOK, models.Response{ |
| 200 | Success: true, | 163 | Success: true, |
| @@ -205,8 +168,10 @@ func FetchUser(c *gin.Context) { | |||
| 205 | UserName: user.UserName, | 168 | UserName: user.UserName, |
| 206 | AvatarLink: user.AvatarLink, | 169 | AvatarLink: user.AvatarLink, |
| 207 | CountryCode: user.CountryCode, | 170 | CountryCode: user.CountryCode, |
| 208 | ScoresSP: scoresSP, | 171 | Titles: user.Titles, |
| 209 | ScoresMP: scoresMP, | 172 | Links: models.Links{}, |
| 173 | Rankings: ProfileRankings{}, | ||
| 174 | Records: ProfileRecords{}, | ||
| 210 | }, | 175 | }, |
| 211 | }) | 176 | }) |
| 212 | return | 177 | return |