aboutsummaryrefslogtreecommitdiff
path: root/backend/controllers
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-01-16 21:00:37 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-01-16 21:00:37 +0300
commitec0ba16a8d43a0a545f34a0428808dadc19aa1f2 (patch)
tree19c411c15aedf4ab9d4b556ed73e81e9e3bd391c /backend/controllers
parentretrieving competitive user records (#26) (diff)
downloadlphub-ec0ba16a8d43a0a545f34a0428808dadc19aa1f2.tar.gz
lphub-ec0ba16a8d43a0a545f34a0428808dadc19aa1f2.tar.bz2
lphub-ec0ba16a8d43a0a545f34a0428808dadc19aa1f2.zip
fixed logic behind record history for each map (#26)
Diffstat (limited to 'backend/controllers')
-rw-r--r--backend/controllers/userController.go60
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,