Skip to content

Commit 9e8cf86

Browse files
Merge pull request topcoder-platform#311 from topcoder-platform/develop
Release v1.1.8
2 parents 2f70b94 + 0fece44 commit 9e8cf86

File tree

4 files changed

+23
-10
lines changed

4 files changed

+23
-10
lines changed

package.json

Lines changed: 1 addition & 1 deletion
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.1.7",
34+
"version": "1.1.8",
3535
"dependencies": {
3636
"auth0-js": "^6.8.4",
3737
"config": "^3.2.0",

src/actions/members.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ async function getStatsInit(handle, uuid) {
114114
* @static
115115
* @desc Create an action that loads member statistics.
116116
* @param {String} handle Member handle.
117-
* @param {String} groupIds Group ids.
117+
* @param {Array<String>|String} groupIds Group ids.
118118
* @param {String} uuid Operation UUID.
119119
* @param {String} tokenV3 v3 auth token.
120120
* @return {Action}

src/actions/profile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ function getStatsInit() {}
132132
* @static
133133
* @desc Creates an action that loads member's stats.
134134
* @param {String} handle Member handle.
135-
* @param {String} groupIds Group ids.
135+
* @param {Array<String>|String} groupIds Group ids.
136136
* @return {Action}
137137
*/
138138
function getStatsDone(handle, groupIds) {

src/services/members.js

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,17 +83,30 @@ class MembersService {
8383
/**
8484
* Gets member statistics.
8585
* @param {String} handle
86-
* @param {String} groupIds
86+
* @param {Array<String>|String} groupIds
8787
* @return {Promise} Resolves to the stats object.
8888
*/
8989
async getStats(handle, groupIds) {
90-
let res;
91-
if (groupIds) {
92-
res = await this.private.api.get(`/members/${handle}/stats?groupIds=${groupIds}`);
93-
} else {
94-
res = await this.private.api.get(`/members/${handle}/stats`);
90+
if (!groupIds || (_.isArray(groupIds) && groupIds.length === 0)) {
91+
const res = await this.private.api.get(`/members/${handle}/stats`);
92+
return getApiResponsePayload(res);
9593
}
96-
return getApiResponsePayload(res);
94+
95+
const groupIdsArray = _.isArray(groupIds) ? groupIds : _.split(groupIds, ',');
96+
const groupIdChunks = _.chunk(groupIdsArray, 50);
97+
98+
const getStatRequests = _.map(groupIdChunks, async (groupIdChunk) => {
99+
const res = await this.private.api.get(`/members/${handle}/stats?groupIds=${_.join(groupIdChunk)}`);
100+
return getApiResponsePayload(res, false);
101+
});
102+
const results = await Promise.all(getStatRequests);
103+
104+
return _.uniqBy(
105+
_.flatten(
106+
_.filter(results, _.isArray),
107+
),
108+
item => item.groupId,
109+
);
97110
}
98111

99112
/**

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy