diff --git a/package-lock.json b/package-lock.json index 79c3acd5..71c9f053 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21387,4 +21387,4 @@ } } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 1b8cc0ab..335e9970 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "lint:js": "./node_modules/.bin/eslint --ext .js,.jsx .", "test": "npm run lint && npm run jest" }, - "version": "1.1.6", + "version": "1.1.7", "dependencies": { "auth0-js": "^6.8.4", "config": "^3.2.0", diff --git a/src/services/challenges.js b/src/services/challenges.js index dcc1f108..7c020789 100644 --- a/src/services/challenges.js +++ b/src/services/challenges.js @@ -185,6 +185,7 @@ class ChallengesService { totalCount: res.headers ? res.headers.get('x-total') : 0, meta: { allChallengesCount: res.headers ? res.headers.get('x-total') : 0, + allRecommendedChallengesCount: 0, myChallengesCount: 0, ongoingChallengesCount: 0, openChallengesCount: 0, @@ -527,6 +528,43 @@ class ChallengesService { }); } + /** + * Gets challenges. + * @param {Object} filters Optional. + * @param {Object} params Optional. + * @param {String} handle user handle + * @return {Promise} Resolves to the api response. + */ + async getRecommendedChallenges(filter, handle) { + filter.frontFilter.per_page = filter.frontFilter.perPage; + delete filter.frontFilter.perPage; + + const query = getFilterUrl(filter.backendFilter, filter.frontFilter); + + let res = {}; + let totalCount = 0; + if (_.some(filter.frontFilter.tracks, val => val) + && !_.isEqual(filter.frontFilter.types, [])) { + const url = `/recommender-api/${handle}?${query}`; + res = await this.private.apiV5.get(url).then(checkErrorV5); + totalCount = res.headers.get('x-total') || 0; + } + + const challenges = res.result ? res.result.filter(ch => ch.jaccard_index > 0) : []; + return { + challenges, + totalCount, + meta: { + allChallengesCount: totalCount, + allRecommendedChallengesCount: 0, + myChallengesCount: 0, + ongoingChallengesCount: 0, + openChallengesCount: 0, + totalCount, + }, + }; + } + /** * Gets SRM matches. * @param {Object} params