Skip to content

Commit 706933a

Browse files
committed
Refactoring and draft docs are ready; pending any bug fixes to do
1 parent 6e95eb6 commit 706933a

30 files changed

+1642
-266
lines changed

docs/index.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,72 @@ actions and reducer; thus, this module.</p>
5858
<dd><p>Actions related to Topcoder terms of use.</p>
5959
</dd>
6060
<dt>
61+
<a href="reducers.auth.md">reducers.auth</a></dt>
62+
<dd><p>Reducer for <a href="#module_actions.auth">actions.auth</a> actions.</p>
63+
<p>State segment managed by this reducer has the following structure:</p>
64+
</dd>
65+
<dt>
66+
<a href="reducers.challenge.md">reducers.challenge</a></dt>
67+
<dd><p>Reducer for <a href="#module_actions.challenge">actions.challenge</a> actions.</p>
68+
<p>State segment managed by this reducer has the following strcuture:</p>
69+
</dd>
70+
<dt>
71+
<a href="reducers.direct.md">reducers.direct</a></dt>
72+
<dd><p>Reducer for handling the results of Direct-related actions.</p>
73+
</dd>
74+
<dt>
75+
<a href="reducers.errors.md">reducers.errors</a></dt>
76+
<dd><p>Redux Reducer for application-wide error handling.</p>
77+
<p>Description:
78+
Implements state reducers for application-wide error handling.</p>
79+
</dd>
80+
<dt>
81+
<a href="reducers.groups.md">reducers.groups</a></dt>
82+
<dd><p>This reducer handles information related to user-groups.</p>
83+
<p>Corresponding segment of the Redux state is designed to have the following
84+
fields:</p>
85+
<p>groups {Object} - Holds loaded information about user groups. Keys of this
86+
object are group IDs, and the values are group data object. To keep the state
87+
flat, and our code efficient; for any group that has sub-groups, subGroups
88+
field is removed, while subGroupsIds {String[]} field is added, and each
89+
sub group data object is added to the groups object.</p>
90+
<p>loading {Object} - Holds IDs of the groups being loaded. Removing ID from
91+
this object will result in silent discard of the data loaded by the
92+
corresponding GROUPS/GET_DONE action; though such functionality does
93+
not look really necessary at the moment, thus we do not provide an
94+
action to really cancel group loading.</p>
95+
</dd>
96+
<dt>
97+
<a href="reduces.member-tasks.md">reduces.member-tasks</a></dt>
98+
<dd><p>Member tasks reducer.</p>
99+
</dd>
100+
<dt>
101+
<a href="reducers.members.md">reducers.members</a></dt>
102+
<dd><p>Reducer for the Redux store segment that holds members data.</p>
103+
</dd>
104+
<dt>
105+
<a href="reducers.my-submissions-management.md">reducers.my-submissions-management</a></dt>
106+
<dd><p>This reducer and corresponding actions control the logic for
107+
submission management.</p>
108+
</dd>
109+
<dt>
110+
<a href="reducers.profile.md">reducers.profile</a></dt>
111+
<dd><p>Reducer for Profile API data</p>
112+
</dd>
113+
<dt>
114+
<a href="reducers.reviewOpportunity.md">reducers.reviewOpportunity</a></dt>
115+
<dd><p>Reducer for state.reviewOpportunity</p>
116+
</dd>
117+
<dt>
118+
<a href="reducers.stats.md">reducers.stats</a></dt>
119+
<dd><p>Reducer for state.stats. That part of Redux state is intended to keep
120+
user- and group-related statistics to render in the frontend.</p>
121+
</dd>
122+
<dt>
123+
<a href="reducers.terms.md">reducers.terms</a></dt>
124+
<dd><p>Reducer for state.terms.</p>
125+
</dd>
126+
<dt>
61127
<a href="services.api.md">services.api</a></dt>
62128
<dd><p>This module provides a service for conventient access to Topcoder APIs.</p>
63129
</dd>

docs/reducers.auth.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<a name="module_reducers.auth"></a>
2+
3+
## reducers.auth
4+
Reducer for [actions.auth](#module_actions.auth) actions.
5+
6+
State segment managed by this reducer has the following structure:
7+
8+
9+
| Param | Type | Default | Description |
10+
| --- | --- | --- | --- |
11+
| authenticating | <code>Boolean</code> | <code>true</code> | `true` if authentication is still in progress; `false` if it has already completed or failed. |
12+
| profile | <code>Object</code> | <code></code> | Topcoder user profile. |
13+
| tokenV2 | <code>String</code> | <code>&#x27;&#x27;</code> | Topcoder v2 auth token. |
14+
| tokenV3 | <code>String</code> | <code>&#x27;&#x27;</code> | Topcoder v3 auth token. |
15+
| user | <code>Object</code> | <code></code> | Topcoder user object (user information stored in v3 auth token). |
16+
17+
18+
* [reducers.auth](#module_reducers.auth)
19+
* _static_
20+
* [.default](#module_reducers.auth.default)
21+
* [.factory(options)](#module_reducers.auth.factory) ⇒ <code>Promise</code>
22+
* _inner_
23+
* [~onProfileLoaded(state, action)](#module_reducers.auth..onProfileLoaded)
24+
* [~create(initialState, mergeReducers)](#module_reducers.auth..create) ⇒ <code>function</code>
25+
26+
<a name="module_reducers.auth.default"></a>
27+
28+
### reducers.auth.default
29+
Reducer with default initial state.
30+
31+
**Kind**: static property of [<code>reducers.auth</code>](#module_reducers.auth)
32+
<a name="module_reducers.auth.factory"></a>
33+
34+
### reducers.auth.factory(options) ⇒ <code>Promise</code>
35+
Creates a new reducer.
36+
37+
**Kind**: static method of [<code>reducers.auth</code>](#module_reducers.auth)
38+
**Resolves**: <code>Function(state, action): state</code> New reducer.
39+
40+
| Param | Type | Default | Description |
41+
| --- | --- | --- | --- |
42+
| options | <code>Object</code> | <code>{}</code> | Optional. Options for customization of initial state. |
43+
| [options.auth.tokenV2] | <code>String</code> | <code>&#x27;&#x27;</code> | Optional. Topcoder v2 auth token. |
44+
| [options.auth.tokenV3] | <code>String</code> | <code>&#x27;&#x27;</code> | Optional. Topcoder v3 auth token. |
45+
46+
<a name="module_reducers.auth..onProfileLoaded"></a>
47+
48+
### reducers.auth~onProfileLoaded(state, action)
49+
Handles actions.auth.loadProfile action.
50+
51+
**Kind**: inner method of [<code>reducers.auth</code>](#module_reducers.auth)
52+
53+
| Param | Type |
54+
| --- | --- |
55+
| state | <code>Object</code> |
56+
| action | <code>Object</code> |
57+
58+
<a name="module_reducers.auth..create"></a>
59+
60+
### reducers.auth~create(initialState, mergeReducers) ⇒ <code>function</code>
61+
Creates a new Auth reducer with the specified initial state.
62+
63+
**Kind**: inner method of [<code>reducers.auth</code>](#module_reducers.auth)
64+
**Returns**: <code>function</code> - Auth reducer.
65+
66+
| Param | Type | Description |
67+
| --- | --- | --- |
68+
| initialState | <code>Object</code> | Optional. Initial state. |
69+
| mergeReducers | <code>Object</code> | Optional. Reducers to merge. |
70+

docs/reducers.challenge.md

Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
<a name="module_reducers.challenge"></a>
2+
3+
## reducers.challenge
4+
Reducer for [actions.challenge](#module_actions.challenge) actions.
5+
6+
State segment managed by this reducer has the following strcuture:
7+
8+
**Todo**
9+
10+
- [ ] Document the structure.
11+
12+
13+
* [reducers.challenge](#module_reducers.challenge)
14+
* _static_
15+
* [.default](#module_reducers.challenge.default)
16+
* [.factory(options)](#module_reducers.challenge.factory) ⇒ <code>Promise</code>
17+
* _inner_
18+
* [~onGetDetailsInit(state, action)](#module_reducers.challenge..onGetDetailsInit) ⇒ <code>Object</code>
19+
* [~onGetDetailsDone(state, action)](#module_reducers.challenge..onGetDetailsDone) ⇒ <code>Object</code>
20+
* [~onGetSubmissionsInit(state, action)](#module_reducers.challenge..onGetSubmissionsInit) ⇒ <code>Object</code>
21+
* [~onGetSubmissionsDone(state, action)](#module_reducers.challenge..onGetSubmissionsDone)
22+
* [~onFetchCheckpointsDone(state, action)](#module_reducers.challenge..onFetchCheckpointsDone)
23+
* [~onLoadResultsInit(state, action)](#module_reducers.challenge..onLoadResultsInit) ⇒ <code>Object</code>
24+
* [~onLoadResultsDone(state, action)](#module_reducers.challenge..onLoadResultsDone) ⇒ <code>Object</code>
25+
* [~onRegisterDone(state, action)](#module_reducers.challenge..onRegisterDone) ⇒ <code>Object</code>
26+
* [~onUnregisterDone(state, action)](#module_reducers.challenge..onUnregisterDone) ⇒ <code>Object</code>
27+
* [~onUpdateChallengeInit(state, actions)](#module_reducers.challenge..onUpdateChallengeInit) ⇒ <code>Object</code>
28+
* [~onUpdateChallengeDone(state, actions)](#module_reducers.challenge..onUpdateChallengeDone) ⇒ <code>Object</code>
29+
* [~create(initialState)](#module_reducers.challenge..create) ⇒ <code>function</code>
30+
31+
<a name="module_reducers.challenge.default"></a>
32+
33+
### reducers.challenge.default
34+
Reducer with default intial state.
35+
36+
**Kind**: static property of [<code>reducers.challenge</code>](#module_reducers.challenge)
37+
<a name="module_reducers.challenge.factory"></a>
38+
39+
### reducers.challenge.factory(options) ⇒ <code>Promise</code>
40+
Factory which creates a new reducer with its initial state tailored to the
41+
given options object, if specified (for server-side rendering). If options
42+
object is not specified, it creates just the default reducer. Accepted options are:
43+
44+
**Kind**: static method of [<code>reducers.challenge</code>](#module_reducers.challenge)
45+
**Resolves**: <code>Function(state, action): state</code> New reducer.
46+
47+
| Param | Type | Default | Description |
48+
| --- | --- | --- | --- |
49+
| options | <code>Object</code> | <code>{}</code> | Optional. Factory options. |
50+
| [options.auth.tokenV2] | <code>String</code> | <code>&#x27;&#x27;</code> | Optional. Topcoder v2 auth token. |
51+
| [options.auth.tokenV3] | <code>String</code> | <code>&#x27;&#x27;</code> | Optional. Topcoder v3 auth token. |
52+
| [options.challenge.challengeDetails.id] | <code>String</code> | <code>&#x27;&#x27;</code> | Optional. ID of the challenge to load details for. |
53+
| [options.challenge.challengeDetails.mySubmission] | <code>Boolean</code> | <code>false</code> | Optional. The flag indicates whether load my submission. |
54+
55+
<a name="module_reducers.challenge..onGetDetailsInit"></a>
56+
57+
### reducers.challenge~onGetDetailsInit(state, action) ⇒ <code>Object</code>
58+
Handles CHALLENGE/GET_DETAILS_INIT action.
59+
60+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
61+
**Returns**: <code>Object</code> - New state
62+
63+
| Param | Type |
64+
| --- | --- |
65+
| state | <code>Object</code> |
66+
| action | <code>Object</code> |
67+
68+
<a name="module_reducers.challenge..onGetDetailsDone"></a>
69+
70+
### reducers.challenge~onGetDetailsDone(state, action) ⇒ <code>Object</code>
71+
Handles CHALLENGE/GET_DETAILS_DONE action.
72+
Note, that it silently discards received details if the ID of received
73+
challenge mismatches the one stored in loadingDetailsForChallengeId field
74+
of the state.
75+
76+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
77+
**Returns**: <code>Object</code> - New state.
78+
79+
| Param | Type |
80+
| --- | --- |
81+
| state | <code>Object</code> |
82+
| action | <code>Object</code> |
83+
84+
<a name="module_reducers.challenge..onGetSubmissionsInit"></a>
85+
86+
### reducers.challenge~onGetSubmissionsInit(state, action) ⇒ <code>Object</code>
87+
Handles CHALLENGE/GET_SUBMISSION_INIT action.
88+
89+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
90+
**Returns**: <code>Object</code> - New state.
91+
92+
| Param | Type |
93+
| --- | --- |
94+
| state | <code>Object</code> |
95+
| action | <code>Object</code> |
96+
97+
<a name="module_reducers.challenge..onGetSubmissionsDone"></a>
98+
99+
### reducers.challenge~onGetSubmissionsDone(state, action)
100+
Handles challengeActions.fetchSubmissionsDone action.
101+
102+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
103+
104+
| Param | Type | Description |
105+
| --- | --- | --- |
106+
| state | <code>Object</code> | Previous state. |
107+
| action | <code>Object</code> | Action. |
108+
109+
<a name="module_reducers.challenge..onFetchCheckpointsDone"></a>
110+
111+
### reducers.challenge~onFetchCheckpointsDone(state, action)
112+
Handles challengeActions.fetchCheckpointsDone action.
113+
114+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
115+
116+
| Param | Type | Description |
117+
| --- | --- | --- |
118+
| state | <code>Object</code> | Previous state. |
119+
| action | <code>Object</code> | Action. |
120+
121+
<a name="module_reducers.challenge..onLoadResultsInit"></a>
122+
123+
### reducers.challenge~onLoadResultsInit(state, action) ⇒ <code>Object</code>
124+
Handles CHALLENGE/LOAD_RESULTS_INIT action.
125+
126+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
127+
128+
| Param | Type |
129+
| --- | --- |
130+
| state | <code>Object</code> |
131+
| action | <code>Object</code> |
132+
133+
<a name="module_reducers.challenge..onLoadResultsDone"></a>
134+
135+
### reducers.challenge~onLoadResultsDone(state, action) ⇒ <code>Object</code>
136+
Handles CHALLENGE/LOAD_RESULTS_DONE action.
137+
138+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
139+
140+
| Param | Type |
141+
| --- | --- |
142+
| state | <code>Object</code> |
143+
| action | <code>Object</code> |
144+
145+
<a name="module_reducers.challenge..onRegisterDone"></a>
146+
147+
### reducers.challenge~onRegisterDone(state, action) ⇒ <code>Object</code>
148+
Handles CHALLENGE/REGISTER_DONE action.
149+
150+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
151+
152+
| Param | Type |
153+
| --- | --- |
154+
| state | <code>Object</code> |
155+
| action | <code>Object</code> |
156+
157+
<a name="module_reducers.challenge..onUnregisterDone"></a>
158+
159+
### reducers.challenge~onUnregisterDone(state, action) ⇒ <code>Object</code>
160+
Handles CHALLENGE/UNREGISTER_DONE action.
161+
162+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
163+
164+
| Param | Type |
165+
| --- | --- |
166+
| state | <code>Object</code> |
167+
| action | <code>Object</code> |
168+
169+
<a name="module_reducers.challenge..onUpdateChallengeInit"></a>
170+
171+
### reducers.challenge~onUpdateChallengeInit(state, actions) ⇒ <code>Object</code>
172+
Handles CHALLENGE/UPDATE_CHALLENGE_INIT.
173+
174+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
175+
**Returns**: <code>Object</code> - New state.
176+
177+
| Param | Type | Description |
178+
| --- | --- | --- |
179+
| state | <code>Object</code> | Old state. |
180+
| actions | <code>Object</code> | Action. |
181+
182+
<a name="module_reducers.challenge..onUpdateChallengeDone"></a>
183+
184+
### reducers.challenge~onUpdateChallengeDone(state, actions) ⇒ <code>Object</code>
185+
Handles CHALLENGE/UPDATE_CHALLENGE_DONE.
186+
187+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
188+
**Returns**: <code>Object</code> - New state.
189+
190+
| Param | Type | Description |
191+
| --- | --- | --- |
192+
| state | <code>Object</code> | Old state. |
193+
| actions | <code>Object</code> | Action. |
194+
195+
<a name="module_reducers.challenge..create"></a>
196+
197+
### reducers.challenge~create(initialState) ⇒ <code>function</code>
198+
Creates a new Challenge reducer with the specified initial state.
199+
200+
**Kind**: inner method of [<code>reducers.challenge</code>](#module_reducers.challenge)
201+
**Returns**: <code>function</code> - Challenge reducer.
202+
203+
| Param | Type | Description |
204+
| --- | --- | --- |
205+
| initialState | <code>Object</code> | Optional. Initial state. |
206+

0 commit comments

Comments
 (0)