Skip to content

Commit 319a61e

Browse files
authored
Merge branch 'develop-auth0-sync' into feature/auth0-RS256-Idtoken
2 parents 862c044 + 12adaec commit 319a61e

File tree

5 files changed

+19
-7
lines changed

5 files changed

+19
-7
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@
140140
"supertest": "^3.1.0",
141141
"tc-core-library-js": "github:appirio-tech/tc-core-library-js#v2.6.3",
142142
"tc-ui": "^1.0.12",
143-
"topcoder-react-lib": "1000.23.1",
143+
"topcoder-react-lib": "1000.23.2",
144144
"topcoder-react-ui-kit": "2.0.1",
145145
"topcoder-react-utils": "0.7.8",
146146
"turndown": "^4.0.2",

src/server/services/mmLeaderboard.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55
import { services } from 'topcoder-react-lib';
66

7-
const { api } = services;
7+
const { api, submissions } = services;
88

99
/**
1010
* Auxiliary class that handles communication with MMLeaderboard
@@ -18,11 +18,14 @@ export default class MMLService {
1818
async getLeaderboard(req, res, next) {
1919
try {
2020
const m2mToken = await api.getTcM2mToken();
21+
const subSrv = submissions.getService(m2mToken);
22+
const reviewIds = await subSrv.getScanReviewIds();
2123
const v5api = api.getApiV5(m2mToken);
2224
const subs = await v5api.get(`/submissions?challengeId=${req.params.id}&page=1&perPage=500`);
2325
return res.send({
2426
id: req.params.id,
2527
subs: await subs.json(),
28+
reviewIds,
2629
});
2730
} catch (err) {
2831
return next(err);

src/shared/actions/mmLeaderboard.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,13 @@ async function getMMLeaderboardDone(id) {
1919
if (res) {
2020
const groupedData = _.groupBy(res.subs, 'createdBy');
2121
_.each(groupedData, (subs, handle) => {
22-
const sortedSubs = _.orderBy(subs, ['updated'], ['desc']);
22+
// filter member subs from reviewIds
23+
const filteredSubs = _.map(subs, (sub) => {
24+
// eslint-disable-next-line no-param-reassign
25+
sub.review = _.filter(sub.review, r => res.reviewIds.indexOf(r.typeId) === -1);
26+
return sub;
27+
});
28+
const sortedSubs = _.orderBy(filteredSubs, ['updated'], ['desc']);
2329
const scores = _.orderBy(_.compact(sortedSubs[0].review), ['updated'], ['desc']);
2430
data.push({
2531
createdBy: handle,
@@ -28,7 +34,7 @@ async function getMMLeaderboardDone(id) {
2834
score: scores && scores.length ? scores[0].score : '...',
2935
});
3036
});
31-
data = _.orderBy(data, ['score', 'updated'], ['desc']).map((r, i) => ({
37+
data = _.orderBy(data, [d => (Number(d.score) ? Number(d.score) : 0)], ['desc']).map((r, i) => ({
3238
...r,
3339
rank: i + 1,
3440
score: r.score % 1 ? Number(r.score).toFixed(5) : r.score,

src/shared/components/MMatchLeaderboard/index.jsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,10 @@ export default class MMLeaderboard extends Component {
6868

6969
if (sortParam.field) {
7070
// Use Lodash to sort array
71-
data = _.orderBy(data, [d => (typeof d[sortParam.field] === 'string' ? d[sortParam.field].toLowerCase() : d[sortParam.field])], [sortParam.order]);
71+
data = _.orderBy(
72+
data,
73+
[d => String(d[sortParam.field]).toLowerCase()], [sortParam.order],
74+
);
7275
}
7376

7477
const renderData = () => {
@@ -217,7 +220,7 @@ export default class MMLeaderboard extends Component {
217220
};
218221
return (
219222
<React.Fragment>
220-
{ data.length ? renderData() : <h4>No data available yet.</h4> }
223+
{ data.length ? renderData() : <h4 styleName="no-data-title">No data available yet.</h4> }
221224
</React.Fragment>
222225
);
223226
}

src/shared/components/MMatchLeaderboard/style.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
$light-gray: #d4d4d4;
44

5-
h4 {
5+
.no-data-title {
66
text-align: center;
77
}
88

0 commit comments

Comments
 (0)