diff --git a/__tests__/__snapshots__/index.js.snap b/__tests__/__snapshots__/index.js.snap
index d91b7880..f2f97d81 100644
--- a/__tests__/__snapshots__/index.js.snap
+++ b/__tests__/__snapshots__/index.js.snap
@@ -19,6 +19,8 @@ Object {
"getDetailsInit": [Function],
"getMmSubmissionsDone": [Function],
"getMmSubmissionsInit": [Function],
+ "getSubmissionInformationDone": [Function],
+ "getSubmissionInformationInit": [Function],
"getSubmissionsDone": [Function],
"getSubmissionsInit": [Function],
"loadResultsDone": [Function],
diff --git a/__tests__/reducers/__snapshots__/challenge.js.snap b/__tests__/reducers/__snapshots__/challenge.js.snap
index 7ddb822b..be090f1d 100644
--- a/__tests__/reducers/__snapshots__/challenge.js.snap
+++ b/__tests__/reducers/__snapshots__/challenge.js.snap
@@ -8,12 +8,14 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -31,12 +33,14 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -54,12 +58,14 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -74,12 +80,14 @@ Object {
"loadingDetailsForChallengeId": "12345",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -97,6 +105,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -109,6 +118,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -126,6 +136,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -140,6 +151,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -157,6 +169,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -169,6 +182,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -186,6 +200,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "12345",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -196,6 +211,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -214,6 +230,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -226,6 +243,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -243,6 +261,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -257,6 +276,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -274,6 +294,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -288,6 +309,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -305,6 +327,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -319,6 +342,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -336,6 +360,7 @@ Object {
"loadingDetailsForChallengeId": "12345",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -350,6 +375,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -367,6 +393,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -379,6 +406,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -396,6 +424,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -410,6 +439,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -427,6 +457,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -439,6 +470,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -456,6 +488,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "12345",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -466,6 +499,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -484,6 +518,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -496,6 +531,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -509,12 +545,14 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -532,12 +570,14 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -555,12 +595,14 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -575,12 +617,14 @@ Object {
"loadingDetailsForChallengeId": "12345",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -598,6 +642,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -610,6 +655,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -627,6 +673,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -641,6 +688,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -658,6 +706,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -670,6 +719,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -687,6 +737,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "12345",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -697,6 +748,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -715,6 +767,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -727,6 +780,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -740,12 +794,14 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -763,12 +819,14 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -786,12 +844,14 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -806,12 +866,14 @@ Object {
"loadingDetailsForChallengeId": "12345",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {},
"mySubmissionsManagement": Object {},
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -829,6 +891,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -841,6 +904,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -858,6 +922,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -872,6 +937,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -889,6 +955,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -901,6 +968,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -918,6 +986,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "12345",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -928,6 +997,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
@@ -946,6 +1016,7 @@ Object {
"loadingDetailsForChallengeId": "",
"loadingMMSubmissionsForChallengeId": "",
"loadingResultsForChallengeId": "",
+ "loadingSubmissionInformationForSubmissionId": "",
"loadingSubmissionsForChallengeId": "",
"mmSubmissions": Array [],
"mySubmissions": Object {
@@ -958,6 +1029,7 @@ Object {
"registering": false,
"results": null,
"resultsLoadedForChallengeId": "",
+ "submissionInformation": null,
"unregistering": false,
"updatingChallengeUuid": "",
}
diff --git a/docs/actions.challenge.md b/docs/actions.challenge.md
index 23d16fb5..33057927 100644
--- a/docs/actions.challenge.md
+++ b/docs/actions.challenge.md
@@ -24,6 +24,8 @@ Actions related to Topcoder challenges APIs.
* [.updateChallengeDone(uuid, challenge, tokenV3)](#module_actions.challenge.updateChallengeDone) ⇒ Action
* [.getActiveChallengesCountInit()](#module_actions.challenge.getActiveChallengesCountInit) ⇒ Action
* [.getActiveChallengesCountDone(handle, tokenV3)](#module_actions.challenge.getActiveChallengesCountDone) ⇒ Action
+ * [.getSubmissionInformationInit(submissionId)](#module_actions.challenge.getSubmissionInformationInit) ⇒ Action
+ * [.getSubmissionInformationDone(submissionId, tokenV3)](#module_actions.challenge.getSubmissionInformationDone) ⇒ Action
@@ -246,3 +248,20 @@ Creates an action that gets count of user's active challenges from the backend.
| handle | String
| Topcoder user handle. |
| tokenV3 | String
| Optional. Topcoder auth token v3. Without token only public challenges will be counted. With the token provided, the action will also count private challenges related to this user. |
+
+
+### actions.challenge.getSubmissionInformationInit(submissionId) ⇒ Action
+Creates an action that signals beginning of getting submission information
+
+**Kind**: static method of [actions.challenge
](#module_actions.challenge)
+
+
+### actions.challenge.getSubmissionInformationDone(submissionId, tokenV3) ⇒ Action
+Creates an action that gets submission information from the backend.
+
+**Kind**: static method of [actions.challenge
](#module_actions.challenge)
+
+| Param | Type | Description |
+| --- | --- | --- |
+| submissionId | String
| The id of submission |
+| tokenV3 | String
| Topcoder auth token v3. |
diff --git a/docs/index.md b/docs/index.md
index ec065107..649a1fae 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -202,6 +202,10 @@ Currently, we use it to save user-defined filters in the challenge search.
The Submissions service provides functionality related to Topcoder submissions
+Universal challenge filter. Must be used in all places where we need filter
or fetch challenges. This way we keep all related logic in the same place,
diff --git a/docs/reducers.challenge.md b/docs/reducers.challenge.md
index d2f2bd0e..1e0d54d0 100644
--- a/docs/reducers.challenge.md
+++ b/docs/reducers.challenge.md
@@ -27,6 +27,8 @@ State segment managed by this reducer has the following strcuture:
* [~onUpdateChallengeInit(state, actions)](#module_reducers.challenge..onUpdateChallengeInit) ⇒ Object
* [~onUpdateChallengeDone(state, actions)](#module_reducers.challenge..onUpdateChallengeDone) ⇒ Object
* [~onGetActiveChallengesCountDone(state, action)](#module_reducers.challenge..onGetActiveChallengesCountDone) ⇒ Object
+ * [~onGetSubmissionInformationInit(state, action)](#module_reducers.challenge..onGetSubmissionInformationInit) ⇒ Object
+ * [~onGetSubmissionInformationDone(state, action)](#module_reducers.challenge..onGetSubmissionInformationDone) ⇒ Object
* [~create(initialState)](#module_reducers.challenge..create) ⇒ function
@@ -198,7 +200,7 @@ Handles CHALLENGE/UPDATE_CHALLENGE_DONE.
### reducers.challenge~onGetActiveChallengesCountDone(state, action) ⇒ Object
Handles CHALLENGE/GET_ACTIVE_CHALLENGES_COUNT_DONE action.
-**Kind**: inner method of [reducers.challenge
](#module_reducers.challenge)
+**Kind**: inner method of [reducers.challenge
](#module_reducers.challenge)
**Returns**: Object
- New state
| Param | Type | Description |
@@ -206,6 +208,32 @@ Handles CHALLENGE/GET_ACTIVE_CHALLENGES_COUNT_DONE action.
| state | Object
| Old state. |
| action | Object
| Action payload/error |
+
+
+### reducers.challenge~onGetSubmissionInformationInit(state, action) ⇒ Object
+Handles CHALLENGE/GET_SUBMISSION_INFORMATION_INIT action.
+
+**Kind**: inner method of [reducers.challenge
](#module_reducers.challenge)
+**Returns**: Object
- New state
+
+| Param | Type |
+| --- | --- |
+| state | Object
|
+| action | Object
|
+
+
+
+### reducers.challenge~onGetSubmissionInformationDone(state, action) ⇒ Object
+Handles CHALLENGE/GET_SUBMISSION_INFORMATION_DONE action.
+
+**Kind**: inner method of [reducers.challenge
](#module_reducers.challenge)
+**Returns**: Object
- New state.
+
+| Param | Type |
+| --- | --- |
+| state | Object
|
+| action | Object
|
+
### reducers.challenge~create(initialState) ⇒ function
diff --git a/docs/services.submissions.md b/docs/services.submissions.md
new file mode 100644
index 00000000..104f5eed
--- /dev/null
+++ b/docs/services.submissions.md
@@ -0,0 +1,70 @@
+
+
+## services.submissions
+This module provides a service to get submissions data from Topcoder
+via API V5.
+
+
+* [services.submissions](#module_services.submissions)
+ * _static_
+ * [.getService(tokenV3)](#module_services.submissions.getService) ⇒ SubmissionsService
+ * _inner_
+ * [~SubmissionsService](#module_services.submissions..SubmissionsService)
+ * [new SubmissionsService(tokenV3)](#new_module_services.submissions..SubmissionsService_new)
+ * [.getSubmissions(filters, params)](#module_services.submissions..SubmissionsService+getSubmissions) ⇒ Promise
+ * [.getSubmissionInformation(submissionId)](#module_services.submissions..SubmissionsService+getSubmissionInformation) ⇒ Promise
+
+
+
+### services.submissions.getService(tokenV3) ⇒ SubmissionsService
+Returns a new or existing submissions service.
+
+**Kind**: static method of [services.submissions
](#module_services.submissions)
+**Returns**: SubmissionsService
- Submissions service object
+
+| Param | Type | Description |
+| --- | --- | --- |
+| tokenV3 | String
| Optional. Auth token for Topcoder API v5. |
+
+
+
+### services.submissions~SubmissionsService
+**Kind**: inner class of [services.submissions
](#module_services.submissions)
+
+* [~SubmissionsService](#module_services.submissions..SubmissionsService)
+ * [new SubmissionsService(tokenV3)](#new_module_services.submissions..SubmissionsService_new)
+ * [.getSubmissions(filters, params)](#module_services.submissions..SubmissionsService+getSubmissions) ⇒ Promise
+ * [.getSubmissionInformation(submissionId)](#module_services.submissions..SubmissionsService+getSubmissionInformation) ⇒ Promise
+
+
+
+#### new SubmissionsService(tokenV3)
+
+| Param | Type | Description |
+| --- | --- | --- |
+| tokenV3 | String
| Optional. Auth token for Topcoder API v5. |
+
+
+
+#### submissionsService.getSubmissions(filters, params) ⇒ Promise
+Gets submissions.
+
+**Kind**: instance method of [SubmissionsService
](#module_services.submissions..SubmissionsService)
+**Returns**: Promise
- Resolves to the submissions.
+
+| Param | Type | Description |
+| --- | --- | --- |
+| filters | Object
| Filters |
+| params | Object
| Parameters |
+
+
+
+#### submissionsService.getSubmissionInformation(submissionId) ⇒ Promise
+Gets submission information.
+
+**Kind**: instance method of [SubmissionsService
](#module_services.submissions..SubmissionsService)
+**Returns**: Promise
- Resolves to the submission information.
+
+| Param | Type | Description |
+| --- | --- | --- |
+| submissionId | String
| The id of submission |
diff --git a/src/actions/challenge.js b/src/actions/challenge.js
index 063a0187..cd134a2b 100644
--- a/src/actions/challenge.js
+++ b/src/actions/challenge.js
@@ -364,6 +364,31 @@ function getActiveChallengesCountDone(handle, tokenV3) {
return getChallengesService(tokenV3).getActiveChallengesCount(handle);
}
+/**
+ * @static
+ * @desc Creates an action that gets submission information by submission id
+ * @param {String} submissionId The submission id
+ * @return {Action}
+ */
+function getSubmissionInformationInit(submissionId) {
+ return _.toString(submissionId);
+}
+
+/**
+ * @static
+ * @desc Creates an action that gets submission information from the backend.
+ * @param {String} submissionId The submission id
+ * @param {String} tokenV3 Topcoder auth token v3.
+ * @return {Action}
+ */
+function getSubmissionInformationDone(submissionId, tokenV3) {
+ return getSubmissionService(tokenV3)
+ .getSubmissionInformation(submissionId)
+ .then(response => ({
+ submissionId, submission: response,
+ }));
+}
+
export default createActions({
CHALLENGE: {
DROP_CHECKPOINTS: dropCheckpoints,
@@ -387,5 +412,7 @@ export default createActions({
GET_ACTIVE_CHALLENGES_COUNT_DONE: getActiveChallengesCountDone,
GET_MM_SUBMISSIONS_INIT: getMMSubmissionsInit,
GET_MM_SUBMISSIONS_DONE: getMMSubmissionsDone,
+ GET_SUBMISSION_INFORMATION_INIT: getSubmissionInformationInit,
+ GET_SUBMISSION_INFORMATION_DONE: getSubmissionInformationDone,
},
});
diff --git a/src/reducers/challenge.js b/src/reducers/challenge.js
index 2d5b47c9..11ff0ef1 100644
--- a/src/reducers/challenge.js
+++ b/src/reducers/challenge.js
@@ -318,6 +318,45 @@ function onGetActiveChallengesCountDone(state, { payload, error }) {
return ({ ...state, activeChallengesCount: payload });
}
+/**
+ * Handles CHALLENGE/GET_SUBMISSION_INFORMATION_INIT action.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onGetSubmissionInformationInit(state, action) {
+ return {
+ ...state,
+ loadingSubmissionInformationForSubmissionId: action.payload,
+ submissionInformation: null,
+ };
+}
+
+/**
+ * Handles CHALLENGE/GET_SUBMISSION_INFORMATION_DONE action.
+ * @param {Object} state Previous state.
+ * @param {Object} action Action.
+ */
+function onGetSubmissionInformationDone(state, action) {
+ if (action.error) {
+ logger.error('Failed to get submission information', action.payload);
+ return {
+ ...state,
+ loadingSubmissionInformationForSubmissionId: '',
+ submissionInformation: null,
+ };
+ }
+
+ const { submissionId, submission } = action.payload;
+ if (submissionId !== state.loadingSubmissionInformationForSubmissionId) return state;
+
+ return {
+ ...state,
+ loadingSubmissionInformationForSubmissionId: '',
+ submissionInformation: submission,
+ };
+}
+
/**
* Creates a new Challenge reducer with the specified initial state.
* @param {Object} initialState Optional. Initial state.
@@ -359,12 +398,15 @@ function create(initialState) {
[a.updateChallengeDone]: onUpdateChallengeDone,
[a.getActiveChallengesCountInit]: state => state,
[a.getActiveChallengesCountDone]: onGetActiveChallengesCountDone,
+ [a.getSubmissionInformationInit]: onGetSubmissionInformationInit,
+ [a.getSubmissionInformationDone]: onGetSubmissionInformationDone,
}, _.defaults(initialState, {
details: null,
loadingCheckpoints: false,
loadingDetailsForChallengeId: '',
loadingResultsForChallengeId: '',
loadingMMSubmissionsForChallengeId: '',
+ loadingSubmissionInformationForSubmissionId: '',
mySubmissions: {},
checkpoints: null,
registering: false,
@@ -373,6 +415,7 @@ function create(initialState) {
unregistering: false,
updatingChallengeUuid: '',
mmSubmissions: [],
+ submissionInformation: null,
}));
}
diff --git a/src/services/submissions.js b/src/services/submissions.js
index 6de0e6c2..439afb3b 100644
--- a/src/services/submissions.js
+++ b/src/services/submissions.js
@@ -38,6 +38,18 @@ class SubmissionsService {
.then(res => (res.ok ? res.json() : new Error(res.statusText)))
.then(res => res);
}
+
+ /**
+ * Get submission information by submission id
+ * @param submissionId The submission id
+ * @returns {Promise} Resolves to the api response.
+ */
+ async getSubmissionInformation(submissionId) {
+ const url = `/submissions/${submissionId}`;
+ return this.private.apiV5.get(url)
+ .then(res => (res.ok ? res.json() : new Error(res.statusText)))
+ .then(res => res);
+ }
}
let lastInstance = null;