@@ -185,6 +185,7 @@ class ChallengesService {
185
185
totalCount : res . headers ? res . headers . get ( 'x-total' ) : 0 ,
186
186
meta : {
187
187
allChallengesCount : res . headers ? res . headers . get ( 'x-total' ) : 0 ,
188
+ allRecommendedChallengesCount : 0 ,
188
189
myChallengesCount : 0 ,
189
190
ongoingChallengesCount : 0 ,
190
191
openChallengesCount : 0 ,
@@ -527,6 +528,43 @@ class ChallengesService {
527
528
} ) ;
528
529
}
529
530
531
+ /**
532
+ * Gets challenges.
533
+ * @param {Object } filters Optional.
534
+ * @param {Object } params Optional.
535
+ * @param {String } handle user handle
536
+ * @return {Promise } Resolves to the api response.
537
+ */
538
+ async getRecommendedChallenges ( filter , handle ) {
539
+ filter . frontFilter . per_page = filter . frontFilter . perPage ;
540
+ delete filter . frontFilter . perPage ;
541
+
542
+ const query = getFilterUrl ( filter . backendFilter , filter . frontFilter ) ;
543
+
544
+ let res = { } ;
545
+ let totalCount = 0 ;
546
+ if ( _ . some ( filter . frontFilter . tracks , val => val )
547
+ && ! _ . isEqual ( filter . frontFilter . types , [ ] ) ) {
548
+ const url = `/recommender-api/${ handle } ?${ query } ` ;
549
+ res = await this . private . apiV5 . get ( url ) . then ( checkErrorV5 ) ;
550
+ totalCount = res . headers . get ( 'x-total' ) || 0 ;
551
+ }
552
+
553
+ const challenges = res . result ? res . result . filter ( ch => ch . jaccard_index > 0 ) : [ ] ;
554
+ return {
555
+ challenges,
556
+ totalCount,
557
+ meta : {
558
+ allChallengesCount : totalCount ,
559
+ allRecommendedChallengesCount : 0 ,
560
+ myChallengesCount : 0 ,
561
+ ongoingChallengesCount : 0 ,
562
+ openChallengesCount : 0 ,
563
+ totalCount,
564
+ } ,
565
+ } ;
566
+ }
567
+
530
568
/**
531
569
* Gets SRM matches.
532
570
* @param {Object } params
0 commit comments