@@ -86,7 +86,17 @@ export function normalizeChallengeDetails(v4, v4Filtered, v4User, username) {
86
86
registrants : v4 . registrants || [ ] ,
87
87
} ;
88
88
89
- if ( challenge . technologies . includes ( 'Data Science' ) || challenge . subTrack === 'MARATHON_MATCH' ) {
89
+ // v4 Winners have different field names, needs to be normalized to match v4 filtered and v3
90
+ challenge . winners = _ . map (
91
+ v4 . winners ,
92
+ ( winner , index ) => ( {
93
+ ...winner ,
94
+ handle : winner . submitter ,
95
+ placement : winner . rank || index + 1 , // Legacy MMs do not have a rank but are sorted by points
96
+ } ) ,
97
+ ) ;
98
+
99
+ if ( challenge . subTrack === 'MARATHON_MATCH' ) {
90
100
challenge . track = 'DATA_SCIENCE' ;
91
101
}
92
102
@@ -120,14 +130,6 @@ export function normalizeChallengeDetails(v4, v4Filtered, v4User, username) {
120
130
numSubmissions : v4Filtered . numSubmissions ,
121
131
groups,
122
132
} ) ;
123
-
124
- /* Taking winners from v3_filtered, because winners are returned empty in v3 */
125
- /* TODO: Enforced due to problems with /v3/challenge/{ID} endpoint */
126
- challenge . winners = v4Filtered . winners || [ ] ;
127
- /* TODO: To compenstate the difference in structure of `submissions`
128
- * in v3 and v3Filetered results (existing code needs v4Filtered version).
129
- */
130
- challenge . submissions = v4Filtered . submissions || [ ] ;
131
133
}
132
134
133
135
// Fill missing data from v3_user
@@ -177,14 +179,6 @@ export function normalizeChallenge(challenge, username) {
177
179
groups [ id ] = true ;
178
180
} ) ;
179
181
}
180
-
181
- _ . defaults ( challenge , {
182
- communities : new Set ( [ COMPETITION_TRACKS [ challenge . track ] ] ) ,
183
- groups,
184
- registrationOpen,
185
- submissionEndTimestamp : challenge . submissionEndDate ,
186
- users : username ? { [ username ] : true } : { } ,
187
- } ) ;
188
182
/* eslint-disable no-param-reassign */
189
183
if ( ! challenge . prizes ) challenge . prizes = challenge . prize || [ ] ;
190
184
if ( ! challenge . totalPrize ) {
@@ -198,6 +192,14 @@ export function normalizeChallenge(challenge, username) {
198
192
challenge . subTrack = 'MARATHON_MATCH' ;
199
193
}
200
194
/* eslint-enable no-param-reassign */
195
+
196
+ _ . defaults ( challenge , {
197
+ communities : new Set ( [ COMPETITION_TRACKS [ challenge . track ] ] ) ,
198
+ groups,
199
+ registrationOpen,
200
+ submissionEndTimestamp : challenge . submissionEndDate ,
201
+ users : username ? { [ username ] : true } : { } ,
202
+ } ) ;
201
203
}
202
204
203
205
/**
0 commit comments