Skip to content

Commit c093fd8

Browse files
committed
after merge with feature-my-challenges
2 parents 6e4583b + df22528 commit c093fd8

File tree

5 files changed

+1525
-52
lines changed

5 files changed

+1525
-52
lines changed

dist/dev/index.js

+1,445
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/services.challenges.md

+60-47
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ This module provides a service for convenient manipulation with
2121
* [.getChallengeSubtracks()](#module_services.challenges..ChallengesService+getChallengeSubtracks) ⇒ <code>Promise</code>
2222
* [.getChallengeTags()](#module_services.challenges..ChallengesService+getChallengeTags) ⇒ <code>Promise</code>
2323
* [.getChallenges(filters, params)](#module_services.challenges..ChallengesService+getChallenges) ⇒ <code>Promise</code>
24+
* [.getMyChallenges(filters, params)](#module_services.challenges..ChallengesService+getChallenges) ⇒ <code>Promise</code>
2425
* [.getMarathonMatches(filters, params)](#module_services.challenges..ChallengesService+getMarathonMatches) ⇒ <code>Promise</code>
2526
* [.getSrms(params)](#module_services.challenges..ChallengesService+getSrms) ⇒ <code>Promise</code>
2627
* [.getUserChallenges(username, filters, params)](#module_services.challenges..ChallengesService+getUserChallenges) ⇒ <code>Promise</code>
@@ -41,8 +42,8 @@ NOTE: It is possible, that this normalization is not necessary after we
4142
have moved to Topcoder API v3, but it is kept for now to minimize a risk of
4243
breaking anything.
4344

44-
**Kind**: static method of [<code>services.challenges</code>](#module_services.challenges)
45-
**Returns**: <code>Object</code> - Normalized challenge object.
45+
**Kind**: static method of [<code>services.challenges</code>](#module_services.challenges)
46+
**Returns**: <code>Object</code> - Normalized challenge object.
4647
**Todo**
4748

4849
- [ ] Why this one is exported? It should be only used internally!
@@ -65,7 +66,7 @@ component. It is possible, that this normalization is not necessary after we
6566
have moved to Topcoder API v3, but it is kept for now to minimize a risk of
6667
breaking anything.
6768

68-
**Kind**: static method of [<code>services.challenges</code>](#module_services.challenges)
69+
**Kind**: static method of [<code>services.challenges</code>](#module_services.challenges)
6970
**Todo**
7071

7172
- [ ] Should be used only internally!
@@ -85,8 +86,8 @@ component. It is possible, that this normalization is not necessary after we
8586
have moved to Topcoder API v3, but it is kept for now to minimize a risk of
8687
breaking anything.
8788

88-
**Kind**: static method of [<code>services.challenges</code>](#module_services.challenges)
89-
**Returns**: <code>Object</code> - Normalized challenge.
89+
**Kind**: static method of [<code>services.challenges</code>](#module_services.challenges)
90+
**Returns**: <code>Object</code> - Normalized challenge.
9091

9192
| Param | Type | Description |
9293
| --- | --- | --- |
@@ -98,8 +99,8 @@ breaking anything.
9899
### services.challenges.getService(tokenV3, tokenV2) ⇒ <code>ChallengesService</code>
99100
Returns a new or existing challenges service.
100101

101-
**Kind**: static method of [<code>services.challenges</code>](#module_services.challenges)
102-
**Returns**: <code>ChallengesService</code> - Challenges service object
102+
**Kind**: static method of [<code>services.challenges</code>](#module_services.challenges)
103+
**Returns**: <code>ChallengesService</code> - Challenges service object
103104

104105
| Param | Type | Description |
105106
| --- | --- | --- |
@@ -111,7 +112,7 @@ Returns a new or existing challenges service.
111112
### services.challenges~ChallengesService
112113
Challenge service.
113114

114-
**Kind**: inner class of [<code>services.challenges</code>](#module_services.challenges)
115+
**Kind**: inner class of [<code>services.challenges</code>](#module_services.challenges)
115116

116117
* [~ChallengesService](#module_services.challenges..ChallengesService)
117118
* [new ChallengesService(tokenV3, tokenV2)](#new_module_services.challenges..ChallengesService_new)
@@ -122,6 +123,7 @@ Challenge service.
122123
* [.getChallengeSubtracks()](#module_services.challenges..ChallengesService+getChallengeSubtracks) ⇒ <code>Promise</code>
123124
* [.getChallengeTags()](#module_services.challenges..ChallengesService+getChallengeTags) ⇒ <code>Promise</code>
124125
* [.getChallenges(filters, params)](#module_services.challenges..ChallengesService+getChallenges) ⇒ <code>Promise</code>
126+
* [.getMyChallenges(filters, params)](#module_services.challenges..ChallengesService+getMyChallenges) ⇒ <code>Promise</code>
125127
* [.getMarathonMatches(filters, params)](#module_services.challenges..ChallengesService+getMarathonMatches) ⇒ <code>Promise</code>
126128
* [.getSrms(params)](#module_services.challenges..ChallengesService+getSrms) ⇒ <code>Promise</code>
127129
* [.getUserChallenges(username, filters, params)](#module_services.challenges..ChallengesService+getUserChallenges) ⇒ <code>Promise</code>
@@ -149,22 +151,22 @@ Creates a new ChallengeService instance.
149151
#### challengesService.activate(challengeId) ⇒ <code>Promise</code>
150152
Activates the specified challenge.
151153

152-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
154+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
153155
**Returns**: <code>Promise</code> - Resolves to null value in case of success; otherwise it
154-
is rejected.
156+
is rejected.
155157

156158
| Param | Type |
157159
| --- | --- |
158-
| challengeId | <code>Number</code> |
160+
| challengeId | <code>Number</code> |
159161

160162
<a name="module_services.challenges..ChallengesService+close"></a>
161163

162164
#### challengesService.close(challengeId, winnerId) ⇒ <code>Promise</code>
163165
Closes the specified challenge.
164166

165-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
167+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
166168
**Returns**: <code>Promise</code> - Resolves to null value in case of success; otherwise it
167-
is rejected.
169+
is rejected.
168170

169171
| Param | Type | Description |
170172
| --- | --- | --- |
@@ -176,8 +178,8 @@ Closes the specified challenge.
176178
#### challengesService.createTask(projectId, accountId, title, description, assignee, payment) ⇒ <code>Promise</code>
177179
Creates a new payment task.
178180

179-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
180-
**Returns**: <code>Promise</code> - Resolves to the created challenge object (payment task).
181+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
182+
**Returns**: <code>Promise</code> - Resolves to the created challenge object (payment task).
181183

182184
| Param | Type | Description |
183185
| --- | --- | --- |
@@ -196,34 +198,45 @@ NOTE: This function also uses API v2 and other v3 endpoints for now, due
196198
to some information is missing or
197199
incorrect in the main v3 endpoint. This may change in the future.
198200

199-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
200-
**Returns**: <code>Promise</code> - Resolves to the challenge object.
201+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
202+
**Returns**: <code>Promise</code> - Resolves to the challenge object.
201203

202204
| Param | Type |
203205
| --- | --- |
204-
| challengeId | <code>Number</code> \| <code>String</code> |
206+
| challengeId | <code>Number</code> \| <code>String</code> |
205207

206208
<a name="module_services.challenges..ChallengesService+getChallengeSubtracks"></a>
207209

208210
#### challengesService.getChallengeSubtracks() ⇒ <code>Promise</code>
209211
Gets possible challenge subtracks.
210212

211-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
212-
**Returns**: <code>Promise</code> - Resolves to the array of subtrack names.
213+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
214+
**Returns**: <code>Promise</code> - Resolves to the array of subtrack names.
213215
<a name="module_services.challenges..ChallengesService+getChallengeTags"></a>
214216

215217
#### challengesService.getChallengeTags() ⇒ <code>Promise</code>
216218
Gets possible challenge tags (technologies).
217219

218-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
219-
**Returns**: <code>Promise</code> - Resolves to the array of tag strings.
220+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
221+
**Returns**: <code>Promise</code> - Resolves to the array of tag strings.
220222
<a name="module_services.challenges..ChallengesService+getChallenges"></a>
221223

222224
#### challengesService.getChallenges(filters, params) ⇒ <code>Promise</code>
223225
Gets challenges.
224226

225-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
226-
**Returns**: <code>Promise</code> - Resolves to the api response.
227+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
228+
**Returns**: <code>Promise</code> - Resolves to the api response.
229+
230+
| Param | Type | Description |
231+
| --- | --- | --- |
232+
| filters | <code>Object</code> | Optional. |
233+
| params | <code>Object</code> | Optional. |
234+
235+
#### challengesService.getMyChallenges(filters, params) ⇒ <code>Promise</code>
236+
Gets my challenges.
237+
238+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
239+
**Returns**: <code>Promise</code> - Resolves to the api response.
227240

228241
| Param | Type | Description |
229242
| --- | --- | --- |
@@ -235,8 +248,8 @@ Gets challenges.
235248
#### challengesService.getMarathonMatches(filters, params) ⇒ <code>Promise</code>
236249
Gets marathon matches.
237250

238-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
239-
**Returns**: <code>Promise</code> - Resolve to the api response.
251+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
252+
**Returns**: <code>Promise</code> - Resolve to the api response.
240253

241254
| Param | Type | Description |
242255
| --- | --- | --- |
@@ -248,19 +261,19 @@ Gets marathon matches.
248261
#### challengesService.getSrms(params) ⇒ <code>Promise</code>
249262
Gets SRM matches.
250263

251-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
264+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
252265

253266
| Param | Type |
254267
| --- | --- |
255-
| params | <code>Object</code> |
268+
| params | <code>Object</code> |
256269

257270
<a name="module_services.challenges..ChallengesService+getUserChallenges"></a>
258271

259272
#### challengesService.getUserChallenges(username, filters, params) ⇒ <code>Promise</code>
260273
Gets challenges of the specified user.
261274

262-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
263-
**Returns**: <code>Promise</code> - Resolves to the api response.
275+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
276+
**Returns**: <code>Promise</code> - Resolves to the api response.
264277

265278
| Param | Type | Description |
266279
| --- | --- | --- |
@@ -273,42 +286,42 @@ Gets challenges of the specified user.
273286
#### challengesService.getUserSrms(handle, params) ⇒ <code>Promise</code>
274287
Gets SRM matches related to the user.
275288

276-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
289+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
277290

278291
| Param | Type |
279292
| --- | --- |
280-
| handle | <code>String</code> |
281-
| params | <code>Object</code> |
293+
| handle | <code>String</code> |
294+
| params | <code>Object</code> |
282295

283296
<a name="module_services.challenges..ChallengesService+register"></a>
284297

285298
#### challengesService.register(challengeId) ⇒ <code>Promise</code>
286299
Registers user to the specified challenge.
287300

288-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
301+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
289302

290303
| Param | Type |
291304
| --- | --- |
292-
| challengeId | <code>String</code> |
305+
| challengeId | <code>String</code> |
293306

294307
<a name="module_services.challenges..ChallengesService+unregister"></a>
295308

296309
#### challengesService.unregister(challengeId) ⇒ <code>Promise</code>
297310
Unregisters user from the specified challenge.
298311

299-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
312+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
300313

301314
| Param | Type |
302315
| --- | --- |
303-
| challengeId | <code>String</code> |
316+
| challengeId | <code>String</code> |
304317

305318
<a name="module_services.challenges..ChallengesService+getUserMarathonMatches"></a>
306319

307320
#### challengesService.getUserMarathonMatches(username, filters, params) ⇒ <code>Promise</code>
308321
Gets marathon matches of the specified user.
309322

310-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
311-
**Returns**: <code>Promise</code> - Resolves to the api response.
323+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
324+
**Returns**: <code>Promise</code> - Resolves to the api response.
312325

313326
| Param | Type | Description |
314327
| --- | --- | --- |
@@ -321,8 +334,8 @@ Gets marathon matches of the specified user.
321334
#### challengesService.getActiveChallengesCount(handle) ⇒ <code>Action</code>
322335
Gets count of user's active challenges.
323336

324-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
325-
**Returns**: <code>Action</code> - Resolves to the api response.
337+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
338+
**Returns**: <code>Action</code> - Resolves to the api response.
326339

327340
| Param | Type | Description |
328341
| --- | --- | --- |
@@ -334,7 +347,7 @@ Gets count of user's active challenges.
334347
Submits a challenge submission. Uses APIV2 for Development submission
335348
and APIV3 for Design submisisons.
336349

337-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
350+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
338351

339352
| Param | Type | Description |
340353
| --- | --- | --- |
@@ -347,20 +360,20 @@ and APIV3 for Design submisisons.
347360
#### challengesService.updateChallenge(challenge, tokenV3) ⇒ <code>Promise</code>
348361
Updates the challenge (saves the give challenge to the API).
349362

350-
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
363+
**Kind**: instance method of [<code>ChallengesService</code>](#module_services.challenges..ChallengesService)
351364

352365
| Param | Type |
353366
| --- | --- |
354-
| challenge | <code>Object</code> |
355-
| tokenV3 | <code>String</code> |
367+
| challenge | <code>Object</code> |
368+
| tokenV3 | <code>String</code> |
356369

357370
<a name="module_services.challenges..normalizeNameConventionForSubtrack"></a>
358371

359372
### services.challenges~normalizeNameConventionForSubtrack(subTrack) ⇒ <code>String</code>
360373
Normalize name convention for subtrack
361374

362-
**Kind**: inner method of [<code>services.challenges</code>](#module_services.challenges)
363-
**Returns**: <code>String</code> - Normalized subtrack ID.
375+
**Kind**: inner method of [<code>services.challenges</code>](#module_services.challenges)
376+
**Returns**: <code>String</code> - Normalized subtrack ID.
364377

365378
| Param | Type | Description |
366379
| --- | --- | --- |

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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": "0.9.0",
34+
"version": "1000.10.0",
3535
"dependencies": {
3636
"auth0-js": "^6.8.4",
3737
"config": "^3.2.0",

src/services/challenges.js

+17-2
Original file line numberDiff line numberDiff line change
@@ -250,9 +250,10 @@ class ChallengesService {
250250
};
251251
const url = `${endpoint}?${qs.stringify(query)}`;
252252
const res = await this.private.api.get(url).then(checkError);
253+
const challengeList = res.content || [];
253254
return {
254-
challenges: res.content || [],
255-
totalCount: res.metadata.totalCount,
255+
challenges: challengeList,
256+
totalCount: res.metadata ? res.metadata.totalCount : challengeList.length,
256257
meta: res.metadata,
257258
};
258259
};
@@ -440,6 +441,20 @@ class ChallengesService {
440441
});
441442
}
442443

444+
/**
445+
* Gets my challenges.
446+
* @param {Object} filters Optional.
447+
* @param {Object} params Optional.
448+
* @return {Promise} Resolves to the api response.
449+
*/
450+
getMyChallenges(filters, params) {
451+
return this.private.getChallenges('/challenges/member', filters, params)
452+
.then((res) => {
453+
res.challenges.forEach(item => normalizeChallenge(item));
454+
return res;
455+
});
456+
}
457+
443458
/**
444459
* Gets SRM matches.
445460
* @param {Object} params

0 commit comments

Comments
 (0)