Skip to content

Commit 07b6620

Browse files
Merge pull request #324 from topcoder-platform/mm-dashboard
Add support for fetching challenge statistics
2 parents 83a7c5c + 93f5a72 commit 07b6620

File tree

7 files changed

+99
-2
lines changed

7 files changed

+99
-2
lines changed

Diff for: .circleci/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
- attach_workspace:
2929
at: .
3030
- run: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
31-
- run: npm publish
31+
- run: npm publish --tag test-release
3232
# dont change anything
3333
workflows:
3434
version: 2

Diff for: __tests__/__snapshots__/index.js.snap

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ Object {
1212
"challenge": Object {
1313
"dropCheckpoints": [Function],
1414
"dropResults": [Function],
15+
"fetchChallengeStatisticsDone": [Function],
16+
"fetchChallengeStatisticsInit": [Function],
1517
"fetchCheckpointsDone": [Function],
1618
"fetchCheckpointsInit": [Function],
1719
"getActiveChallengesCountDone": [Function],

Diff for: __tests__/reducers/__snapshots__/challenge.js.snap

+36
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Object {
1515
"registering": false,
1616
"results": null,
1717
"resultsLoadedForChallengeId": "",
18+
"statisticsData": null,
1819
"submissionInformation": null,
1920
"unregistering": false,
2021
"updatingChallengeUuid": "",
@@ -40,6 +41,7 @@ Object {
4041
"registering": false,
4142
"results": null,
4243
"resultsLoadedForChallengeId": "",
44+
"statisticsData": null,
4345
"submissionInformation": null,
4446
"unregistering": false,
4547
"updatingChallengeUuid": "",
@@ -65,6 +67,7 @@ Object {
6567
"registering": false,
6668
"results": null,
6769
"resultsLoadedForChallengeId": "",
70+
"statisticsData": null,
6871
"submissionInformation": null,
6972
"unregistering": false,
7073
"updatingChallengeUuid": "",
@@ -87,6 +90,7 @@ Object {
8790
"registering": false,
8891
"results": null,
8992
"resultsLoadedForChallengeId": "",
93+
"statisticsData": null,
9094
"submissionInformation": null,
9195
"unregistering": false,
9296
"updatingChallengeUuid": "",
@@ -118,6 +122,7 @@ Object {
118122
"registering": false,
119123
"results": null,
120124
"resultsLoadedForChallengeId": "",
125+
"statisticsData": null,
121126
"submissionInformation": null,
122127
"unregistering": false,
123128
"updatingChallengeUuid": "",
@@ -151,6 +156,7 @@ Object {
151156
"registering": false,
152157
"results": null,
153158
"resultsLoadedForChallengeId": "",
159+
"statisticsData": null,
154160
"submissionInformation": null,
155161
"unregistering": false,
156162
"updatingChallengeUuid": "",
@@ -182,6 +188,7 @@ Object {
182188
"registering": false,
183189
"results": null,
184190
"resultsLoadedForChallengeId": "",
191+
"statisticsData": null,
185192
"submissionInformation": null,
186193
"unregistering": false,
187194
"updatingChallengeUuid": "",
@@ -211,6 +218,7 @@ Object {
211218
"registering": false,
212219
"results": null,
213220
"resultsLoadedForChallengeId": "",
221+
"statisticsData": null,
214222
"submissionInformation": null,
215223
"unregistering": false,
216224
"updatingChallengeUuid": "",
@@ -243,6 +251,7 @@ Object {
243251
"registering": false,
244252
"results": null,
245253
"resultsLoadedForChallengeId": "",
254+
"statisticsData": null,
246255
"submissionInformation": null,
247256
"unregistering": false,
248257
"updatingChallengeUuid": "",
@@ -276,6 +285,7 @@ Object {
276285
"registering": false,
277286
"results": null,
278287
"resultsLoadedForChallengeId": "",
288+
"statisticsData": null,
279289
"submissionInformation": null,
280290
"unregistering": false,
281291
"updatingChallengeUuid": "",
@@ -309,6 +319,7 @@ Object {
309319
"registering": false,
310320
"results": null,
311321
"resultsLoadedForChallengeId": "",
322+
"statisticsData": null,
312323
"submissionInformation": null,
313324
"unregistering": false,
314325
"updatingChallengeUuid": "",
@@ -342,6 +353,7 @@ Object {
342353
"registering": false,
343354
"results": null,
344355
"resultsLoadedForChallengeId": "",
356+
"statisticsData": null,
345357
"submissionInformation": null,
346358
"unregistering": false,
347359
"updatingChallengeUuid": "",
@@ -375,6 +387,7 @@ Object {
375387
"registering": false,
376388
"results": null,
377389
"resultsLoadedForChallengeId": "",
390+
"statisticsData": null,
378391
"submissionInformation": null,
379392
"unregistering": false,
380393
"updatingChallengeUuid": "",
@@ -406,6 +419,7 @@ Object {
406419
"registering": false,
407420
"results": null,
408421
"resultsLoadedForChallengeId": "",
422+
"statisticsData": null,
409423
"submissionInformation": null,
410424
"unregistering": false,
411425
"updatingChallengeUuid": "",
@@ -439,6 +453,7 @@ Object {
439453
"registering": false,
440454
"results": null,
441455
"resultsLoadedForChallengeId": "",
456+
"statisticsData": null,
442457
"submissionInformation": null,
443458
"unregistering": false,
444459
"updatingChallengeUuid": "",
@@ -470,6 +485,7 @@ Object {
470485
"registering": false,
471486
"results": null,
472487
"resultsLoadedForChallengeId": "",
488+
"statisticsData": null,
473489
"submissionInformation": null,
474490
"unregistering": false,
475491
"updatingChallengeUuid": "",
@@ -499,6 +515,7 @@ Object {
499515
"registering": false,
500516
"results": null,
501517
"resultsLoadedForChallengeId": "",
518+
"statisticsData": null,
502519
"submissionInformation": null,
503520
"unregistering": false,
504521
"updatingChallengeUuid": "",
@@ -531,6 +548,7 @@ Object {
531548
"registering": false,
532549
"results": null,
533550
"resultsLoadedForChallengeId": "",
551+
"statisticsData": null,
534552
"submissionInformation": null,
535553
"unregistering": false,
536554
"updatingChallengeUuid": "",
@@ -552,6 +570,7 @@ Object {
552570
"registering": false,
553571
"results": null,
554572
"resultsLoadedForChallengeId": "",
573+
"statisticsData": null,
555574
"submissionInformation": null,
556575
"unregistering": false,
557576
"updatingChallengeUuid": "",
@@ -577,6 +596,7 @@ Object {
577596
"registering": false,
578597
"results": null,
579598
"resultsLoadedForChallengeId": "",
599+
"statisticsData": null,
580600
"submissionInformation": null,
581601
"unregistering": false,
582602
"updatingChallengeUuid": "",
@@ -602,6 +622,7 @@ Object {
602622
"registering": false,
603623
"results": null,
604624
"resultsLoadedForChallengeId": "",
625+
"statisticsData": null,
605626
"submissionInformation": null,
606627
"unregistering": false,
607628
"updatingChallengeUuid": "",
@@ -624,6 +645,7 @@ Object {
624645
"registering": false,
625646
"results": null,
626647
"resultsLoadedForChallengeId": "",
648+
"statisticsData": null,
627649
"submissionInformation": null,
628650
"unregistering": false,
629651
"updatingChallengeUuid": "",
@@ -655,6 +677,7 @@ Object {
655677
"registering": false,
656678
"results": null,
657679
"resultsLoadedForChallengeId": "",
680+
"statisticsData": null,
658681
"submissionInformation": null,
659682
"unregistering": false,
660683
"updatingChallengeUuid": "",
@@ -688,6 +711,7 @@ Object {
688711
"registering": false,
689712
"results": null,
690713
"resultsLoadedForChallengeId": "",
714+
"statisticsData": null,
691715
"submissionInformation": null,
692716
"unregistering": false,
693717
"updatingChallengeUuid": "",
@@ -719,6 +743,7 @@ Object {
719743
"registering": false,
720744
"results": null,
721745
"resultsLoadedForChallengeId": "",
746+
"statisticsData": null,
722747
"submissionInformation": null,
723748
"unregistering": false,
724749
"updatingChallengeUuid": "",
@@ -748,6 +773,7 @@ Object {
748773
"registering": false,
749774
"results": null,
750775
"resultsLoadedForChallengeId": "",
776+
"statisticsData": null,
751777
"submissionInformation": null,
752778
"unregistering": false,
753779
"updatingChallengeUuid": "",
@@ -780,6 +806,7 @@ Object {
780806
"registering": false,
781807
"results": null,
782808
"resultsLoadedForChallengeId": "",
809+
"statisticsData": null,
783810
"submissionInformation": null,
784811
"unregistering": false,
785812
"updatingChallengeUuid": "",
@@ -801,6 +828,7 @@ Object {
801828
"registering": false,
802829
"results": null,
803830
"resultsLoadedForChallengeId": "",
831+
"statisticsData": null,
804832
"submissionInformation": null,
805833
"unregistering": false,
806834
"updatingChallengeUuid": "",
@@ -826,6 +854,7 @@ Object {
826854
"registering": false,
827855
"results": null,
828856
"resultsLoadedForChallengeId": "",
857+
"statisticsData": null,
829858
"submissionInformation": null,
830859
"unregistering": false,
831860
"updatingChallengeUuid": "",
@@ -851,6 +880,7 @@ Object {
851880
"registering": false,
852881
"results": null,
853882
"resultsLoadedForChallengeId": "",
883+
"statisticsData": null,
854884
"submissionInformation": null,
855885
"unregistering": false,
856886
"updatingChallengeUuid": "",
@@ -873,6 +903,7 @@ Object {
873903
"registering": false,
874904
"results": null,
875905
"resultsLoadedForChallengeId": "",
906+
"statisticsData": null,
876907
"submissionInformation": null,
877908
"unregistering": false,
878909
"updatingChallengeUuid": "",
@@ -904,6 +935,7 @@ Object {
904935
"registering": false,
905936
"results": null,
906937
"resultsLoadedForChallengeId": "",
938+
"statisticsData": null,
907939
"submissionInformation": null,
908940
"unregistering": false,
909941
"updatingChallengeUuid": "",
@@ -937,6 +969,7 @@ Object {
937969
"registering": false,
938970
"results": null,
939971
"resultsLoadedForChallengeId": "",
972+
"statisticsData": null,
940973
"submissionInformation": null,
941974
"unregistering": false,
942975
"updatingChallengeUuid": "",
@@ -968,6 +1001,7 @@ Object {
9681001
"registering": false,
9691002
"results": null,
9701003
"resultsLoadedForChallengeId": "",
1004+
"statisticsData": null,
9711005
"submissionInformation": null,
9721006
"unregistering": false,
9731007
"updatingChallengeUuid": "",
@@ -997,6 +1031,7 @@ Object {
9971031
"registering": false,
9981032
"results": null,
9991033
"resultsLoadedForChallengeId": "",
1034+
"statisticsData": null,
10001035
"submissionInformation": null,
10011036
"unregistering": false,
10021037
"updatingChallengeUuid": "",
@@ -1029,6 +1064,7 @@ Object {
10291064
"registering": false,
10301065
"results": null,
10311066
"resultsLoadedForChallengeId": "",
1067+
"statisticsData": null,
10321068
"submissionInformation": null,
10331069
"unregistering": false,
10341070
"updatingChallengeUuid": "",

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"lint:js": "./node_modules/.bin/eslint --ext .js,.jsx .",
3232
"test": "npm run lint && npm run jest"
3333
},
34-
"version": "1.2.2",
34+
"version": "1000.28.6",
3535
"dependencies": {
3636
"auth0-js": "^6.8.4",
3737
"config": "^3.2.0",

Diff for: src/actions/challenge.js

+21
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,25 @@ function getSubmissionInformationDone(challengeId, submissionId, tokenV3) {
392392
});
393393
}
394394

395+
/**
396+
* @static
397+
* @desc Creates an action that signals beginning of fetching challenge statistics
398+
* @return {Action}
399+
*/
400+
function fetchChallengeStatisticsInit() {}
401+
402+
/**
403+
* @static
404+
* @desc Creates an action that gets challenge statistics from the backend.
405+
* @param {String} challengeId The challenge id
406+
* @param {String} tokenV3 Topcoder auth token v3.
407+
* @return {Action}
408+
*/
409+
function fetchChallengeStatisticsDone(challengeId, tokenV3) {
410+
const challengeService = getChallengesService(tokenV3);
411+
return challengeService.getChallengeStatistics(challengeId);
412+
}
413+
395414
export default createActions({
396415
CHALLENGE: {
397416
DROP_CHECKPOINTS: dropCheckpoints,
@@ -417,5 +436,7 @@ export default createActions({
417436
GET_MM_SUBMISSIONS_DONE: getMMSubmissionsDone,
418437
GET_SUBMISSION_INFORMATION_INIT: getSubmissionInformationInit,
419438
GET_SUBMISSION_INFORMATION_DONE: getSubmissionInformationDone,
439+
FETCH_CHALLENGE_STATISTICS_INIT: fetchChallengeStatisticsInit,
440+
FETCH_CHALLENGE_STATISTICS_DONE: fetchChallengeStatisticsDone,
420441
},
421442
});

Diff for: src/reducers/challenge.js

+23
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,26 @@ function onGetSubmissionInformationDone(state, action) {
368368
};
369369
}
370370

371+
/**
372+
* Handles CHALLENGE/GET_CHALLENGE_STATISTICS_DONE action.
373+
* @param {Object} state Previous state.
374+
* @param {Object} action Action.
375+
*/
376+
function onFetchChallengeStatisticsDone(state, action) {
377+
if (action.error) {
378+
logger.error('Failed to get challenge statistics', action.payload);
379+
return {
380+
...state,
381+
statisticsData: null,
382+
};
383+
}
384+
385+
return {
386+
...state,
387+
statisticsData: action.payload,
388+
};
389+
}
390+
371391
/**
372392
* Creates a new Challenge reducer with the specified initial state.
373393
* @param {Object} initialState Optional. Initial state.
@@ -411,6 +431,8 @@ function create(initialState) {
411431
[a.getActiveChallengesCountDone]: onGetActiveChallengesCountDone,
412432
[a.getSubmissionInformationInit]: onGetSubmissionInformationInit,
413433
[a.getSubmissionInformationDone]: onGetSubmissionInformationDone,
434+
[a.fetchChallengeStatisticsInit]: state => state,
435+
[a.fetchChallengeStatisticsDone]: onFetchChallengeStatisticsDone,
414436
}, _.defaults(initialState, {
415437
details: null,
416438
loadingCheckpoints: false,
@@ -427,6 +449,7 @@ function create(initialState) {
427449
updatingChallengeUuid: '',
428450
mmSubmissions: [],
429451
submissionInformation: null,
452+
statisticsData: null,
430453
}));
431454
}
432455

0 commit comments

Comments
 (0)