diff options
Diffstat (limited to '')
| -rw-r--r-- | backend/controllers/userController.go | 60 |
1 files changed, 12 insertions, 48 deletions
diff --git a/backend/controllers/userController.go b/backend/controllers/userController.go index 6fd5049..6bca5b9 100644 --- a/backend/controllers/userController.go +++ b/backend/controllers/userController.go | |||
| @@ -24,32 +24,23 @@ func Profile(c *gin.Context) { | |||
| 24 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) | 24 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) |
| 25 | return | 25 | return |
| 26 | } | 26 | } |
| 27 | i := 0 | ||
| 28 | var recordsSP []models.RecordSP | 27 | var recordsSP []models.RecordSP |
| 29 | for rows.Next() { | 28 | for rows.Next() { |
| 30 | var mapID int | 29 | var mapID int |
| 31 | var record models.RecordSP | 30 | var record models.RecordSP |
| 32 | rows.Scan(&record.RecordID, &mapID, &record.ScoreCount, &record.ScoreTime, &record.DemoID, &record.RecordDate) | 31 | rows.Scan(&record.RecordID, &mapID, &record.ScoreCount, &record.ScoreTime, &record.DemoID, &record.RecordDate) |
| 33 | if i == 0 { | ||
| 34 | recordsSP = append(recordsSP, record) | ||
| 35 | scoresSP = append(scoresSP, models.ScoreResponse{ | ||
| 36 | MapID: mapID, | ||
| 37 | Records: recordsSP, | ||
| 38 | }) | ||
| 39 | continue | ||
| 40 | } | ||
| 41 | // More than one record in one map | 32 | // More than one record in one map |
| 42 | if mapID == scoresSP[i-1].MapID { | 33 | if len(scoresSP) != 0 && mapID == scoresSP[len(scoresSP)-1].MapID { |
| 43 | scoresSP[i-1].Records = append(scoresSP[i-1].Records.([]models.RecordSP), record) | 34 | scoresSP[len(scoresSP)-1].Records = append(scoresSP[len(scoresSP)-1].Records.([]models.RecordSP), record) |
| 44 | continue | 35 | continue |
| 45 | } | 36 | } |
| 46 | // New map | 37 | // New map |
| 38 | recordsSP = []models.RecordSP{} | ||
| 47 | recordsSP = append(recordsSP, record) | 39 | recordsSP = append(recordsSP, record) |
| 48 | scoresSP = append(scoresSP, models.ScoreResponse{ | 40 | scoresSP = append(scoresSP, models.ScoreResponse{ |
| 49 | MapID: mapID, | 41 | MapID: mapID, |
| 50 | Records: recordsSP, | 42 | Records: recordsSP, |
| 51 | }) | 43 | }) |
| 52 | i++ | ||
| 53 | } | 44 | } |
| 54 | // Retrieve multiplayer records | 45 | // Retrieve multiplayer records |
| 55 | var scoresMP []models.ScoreResponse | 46 | var scoresMP []models.ScoreResponse |
| @@ -60,32 +51,23 @@ func Profile(c *gin.Context) { | |||
| 60 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) | 51 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) |
| 61 | return | 52 | return |
| 62 | } | 53 | } |
| 63 | j := 0 | ||
| 64 | var recordsMP []models.RecordMP | 54 | var recordsMP []models.RecordMP |
| 65 | for rows.Next() { | 55 | for rows.Next() { |
| 66 | var mapID int | 56 | var mapID int |
| 67 | var record models.RecordMP | 57 | var record models.RecordMP |
| 68 | rows.Scan(&record.RecordID, &mapID, &record.HostID, &record.PartnerID, &record.ScoreCount, &record.ScoreTime, &record.HostDemoID, &record.PartnerDemoID, &record.RecordDate) | 58 | rows.Scan(&record.RecordID, &mapID, &record.HostID, &record.PartnerID, &record.ScoreCount, &record.ScoreTime, &record.HostDemoID, &record.PartnerDemoID, &record.RecordDate) |
| 69 | if j == 0 { | ||
| 70 | recordsMP = append(recordsMP, record) | ||
| 71 | scoresMP = append(scoresMP, models.ScoreResponse{ | ||
| 72 | MapID: mapID, | ||
| 73 | Records: recordsMP, | ||
| 74 | }) | ||
| 75 | continue | ||
| 76 | } | ||
| 77 | // More than one record in one map | 59 | // More than one record in one map |
| 78 | if mapID == scoresMP[j-1].MapID { | 60 | if len(scoresMP) != 0 && mapID == scoresMP[len(scoresMP)-1].MapID { |
| 79 | scoresMP[j-1].Records = append(scoresMP[j-1].Records.([]models.RecordMP), record) | 61 | scoresMP[len(scoresMP)-1].Records = append(scoresMP[len(scoresMP)-1].Records.([]models.RecordMP), record) |
| 80 | continue | 62 | continue |
| 81 | } | 63 | } |
| 82 | // New map | 64 | // New map |
| 65 | recordsMP = []models.RecordMP{} | ||
| 83 | recordsMP = append(recordsMP, record) | 66 | recordsMP = append(recordsMP, record) |
| 84 | scoresMP = append(scoresMP, models.ScoreResponse{ | 67 | scoresMP = append(scoresMP, models.ScoreResponse{ |
| 85 | MapID: mapID, | 68 | MapID: mapID, |
| 86 | Records: recordsMP, | 69 | Records: recordsMP, |
| 87 | }) | 70 | }) |
| 88 | j++ | ||
| 89 | } | 71 | } |
| 90 | c.JSON(http.StatusOK, models.Response{ | 72 | c.JSON(http.StatusOK, models.Response{ |
| 91 | Success: true, | 73 | Success: true, |
| @@ -133,32 +115,23 @@ func FetchUser(c *gin.Context) { | |||
| 133 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) | 115 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) |
| 134 | return | 116 | return |
| 135 | } | 117 | } |
| 136 | i := 0 | ||
| 137 | var recordsSP []models.RecordSP | 118 | var recordsSP []models.RecordSP |
| 138 | for rows.Next() { | 119 | for rows.Next() { |
| 139 | var mapID int | 120 | var mapID int |
| 140 | var record models.RecordSP | 121 | var record models.RecordSP |
| 141 | rows.Scan(&record.RecordID, &mapID, &record.ScoreCount, &record.ScoreTime, &record.DemoID, &record.RecordDate) | 122 | rows.Scan(&record.RecordID, &mapID, &record.ScoreCount, &record.ScoreTime, &record.DemoID, &record.RecordDate) |
| 142 | if i == 0 { | ||
| 143 | recordsSP = append(recordsSP, record) | ||
| 144 | scoresSP = append(scoresSP, models.ScoreResponse{ | ||
| 145 | MapID: mapID, | ||
| 146 | Records: recordsSP, | ||
| 147 | }) | ||
| 148 | continue | ||
| 149 | } | ||
| 150 | // More than one record in one map | 123 | // More than one record in one map |
| 151 | if mapID == scoresSP[i-1].MapID { | 124 | if len(scoresSP) != 0 && mapID == scoresSP[len(scoresSP)-1].MapID { |
| 152 | scoresSP[i-1].Records = append(scoresSP[i-1].Records.([]models.RecordSP), record) | 125 | scoresSP[len(scoresSP)-1].Records = append(scoresSP[len(scoresSP)-1].Records.([]models.RecordSP), record) |
| 153 | continue | 126 | continue |
| 154 | } | 127 | } |
| 155 | // New map | 128 | // New map |
| 129 | recordsSP = []models.RecordSP{} | ||
| 156 | recordsSP = append(recordsSP, record) | 130 | recordsSP = append(recordsSP, record) |
| 157 | scoresSP = append(scoresSP, models.ScoreResponse{ | 131 | scoresSP = append(scoresSP, models.ScoreResponse{ |
| 158 | MapID: mapID, | 132 | MapID: mapID, |
| 159 | Records: recordsSP, | 133 | Records: recordsSP, |
| 160 | }) | 134 | }) |
| 161 | i++ | ||
| 162 | } | 135 | } |
| 163 | // Retrieve multiplayer records | 136 | // Retrieve multiplayer records |
| 164 | var scoresMP []models.ScoreResponse | 137 | var scoresMP []models.ScoreResponse |
| @@ -169,32 +142,23 @@ func FetchUser(c *gin.Context) { | |||
| 169 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) | 142 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) |
| 170 | return | 143 | return |
| 171 | } | 144 | } |
| 172 | j := 0 | ||
| 173 | var recordsMP []models.RecordMP | 145 | var recordsMP []models.RecordMP |
| 174 | for rows.Next() { | 146 | for rows.Next() { |
| 175 | var mapID int | 147 | var mapID int |
| 176 | var record models.RecordMP | 148 | var record models.RecordMP |
| 177 | rows.Scan(&record.RecordID, &mapID, &record.HostID, &record.PartnerID, &record.ScoreCount, &record.ScoreTime, &record.HostDemoID, &record.PartnerDemoID, &record.RecordDate) | 149 | rows.Scan(&record.RecordID, &mapID, &record.HostID, &record.PartnerID, &record.ScoreCount, &record.ScoreTime, &record.HostDemoID, &record.PartnerDemoID, &record.RecordDate) |
| 178 | if j == 0 { | ||
| 179 | recordsMP = append(recordsMP, record) | ||
| 180 | scoresMP = append(scoresMP, models.ScoreResponse{ | ||
| 181 | MapID: mapID, | ||
| 182 | Records: recordsMP, | ||
| 183 | }) | ||
| 184 | continue | ||
| 185 | } | ||
| 186 | // More than one record in one map | 150 | // More than one record in one map |
| 187 | if mapID == scoresMP[j-1].MapID { | 151 | if len(scoresMP) != 0 && mapID == scoresMP[len(scoresMP)-1].MapID { |
| 188 | scoresMP[j-1].Records = append(scoresMP[j-1].Records.([]models.RecordMP), record) | 152 | scoresMP[len(scoresMP)-1].Records = append(scoresMP[len(scoresMP)-1].Records.([]models.RecordMP), record) |
| 189 | continue | 153 | continue |
| 190 | } | 154 | } |
| 191 | // New map | 155 | // New map |
| 156 | recordsMP = []models.RecordMP{} | ||
| 192 | recordsMP = append(recordsMP, record) | 157 | recordsMP = append(recordsMP, record) |
| 193 | scoresMP = append(scoresMP, models.ScoreResponse{ | 158 | scoresMP = append(scoresMP, models.ScoreResponse{ |
| 194 | MapID: mapID, | 159 | MapID: mapID, |
| 195 | Records: recordsMP, | 160 | Records: recordsMP, |
| 196 | }) | 161 | }) |
| 197 | j++ | ||
| 198 | } | 162 | } |
| 199 | c.JSON(http.StatusOK, models.Response{ | 163 | c.JSON(http.StatusOK, models.Response{ |
| 200 | Success: true, | 164 | Success: true, |