@@ -154,7 +154,7 @@ async function searchChallenges (currentUser, criteria) {
154
154
_ . forIn ( _ . omit ( criteria , [ 'types' , 'tracks' , 'typeIds' , 'trackIds' , 'type' , 'name' , 'trackId' , 'typeId' , 'description' , 'page' , 'perPage' , 'tag' ,
155
155
'group' , 'groups' , 'memberId' , 'ids' , 'createdDateStart' , 'createdDateEnd' , 'updatedDateStart' , 'updatedDateEnd' , 'startDateStart' , 'startDateEnd' , 'endDateStart' , 'endDateEnd' ,
156
156
'tags' , 'registrationStartDateStart' , 'registrationStartDateEnd' , 'currentPhaseName' , 'submissionStartDateStart' , 'submissionStartDateEnd' ,
157
- 'registrationEndDateStart' , 'registrationEndDateEnd' , 'submissionEndDateStart' , 'submissionEndDateEnd' ,
157
+ 'registrationEndDateStart' , 'registrationEndDateEnd' , 'submissionEndDateStart' , 'submissionEndDateEnd' , 'includeAllEvents' , 'events' ,
158
158
'forumId' , 'track' , 'reviewType' , 'confidentialityType' , 'directProjectId' , 'sortBy' , 'sortOrder' , 'isLightweight' , 'isTask' , 'taskIsAssigned' , 'taskMemberId' ] ) , ( value , key ) => {
159
159
if ( ! _ . isUndefined ( value ) ) {
160
160
const filter = { match_phrase : { } }
@@ -274,6 +274,18 @@ async function searchChallenges (currentUser, criteria) {
274
274
}
275
275
}
276
276
277
+ if ( criteria . events ) {
278
+ if ( criteria . includeAllEvents ) {
279
+ for ( const e of criteria . events ) {
280
+ boolQuery . push ( { match_phrase : { 'events.key' : e } } )
281
+ }
282
+ } else {
283
+ for ( const e of criteria . events ) {
284
+ shouldQuery . push ( { match : { 'events.key' : e } } )
285
+ }
286
+ }
287
+ }
288
+
277
289
const mustNotQuery = [ ]
278
290
279
291
let groupsToFilter = [ ]
@@ -579,7 +591,9 @@ searchChallenges.schema = {
579
591
ids : Joi . array ( ) . items ( Joi . optionalId ( ) ) . unique ( ) . min ( 1 ) ,
580
592
isTask : Joi . boolean ( ) ,
581
593
taskIsAssigned : Joi . boolean ( ) ,
582
- taskMemberId : Joi . string ( )
594
+ taskMemberId : Joi . string ( ) ,
595
+ events : Joi . array ( ) . items ( Joi . number ( ) ) ,
596
+ includeAllEvents : Joi . boolean ( ) . default ( true )
583
597
} )
584
598
}
585
599
0 commit comments