@@ -154,7 +154,7 @@ async function searchChallenges (currentUser, criteria) {
154154 _ . forIn ( _ . omit ( criteria , [ 'types' , 'tracks' , 'typeIds' , 'trackIds' , 'type' , 'name' , 'trackId' , 'typeId' , 'description' , 'page' , 'perPage' , 'tag' ,
155155 'group' , 'groups' , 'memberId' , 'ids' , 'createdDateStart' , 'createdDateEnd' , 'updatedDateStart' , 'updatedDateEnd' , 'startDateStart' , 'startDateEnd' , 'endDateStart' , 'endDateEnd' ,
156156 'tags' , 'registrationStartDateStart' , 'registrationStartDateEnd' , 'currentPhaseName' , 'submissionStartDateStart' , 'submissionStartDateEnd' ,
157- 'registrationEndDateStart' , 'registrationEndDateEnd' , 'submissionEndDateStart' , 'submissionEndDateEnd' ,
157+ 'registrationEndDateStart' , 'registrationEndDateEnd' , 'submissionEndDateStart' , 'submissionEndDateEnd' , 'includeAllEvents' , 'events' ,
158158 'forumId' , 'track' , 'reviewType' , 'confidentialityType' , 'directProjectId' , 'sortBy' , 'sortOrder' , 'isLightweight' , 'isTask' , 'taskIsAssigned' , 'taskMemberId' ] ) , ( value , key ) => {
159159 if ( ! _ . isUndefined ( value ) ) {
160160 const filter = { match_phrase : { } }
@@ -274,6 +274,18 @@ async function searchChallenges (currentUser, criteria) {
274274 }
275275 }
276276
277+ if ( criteria . events ) {
278+ if ( criteria . includeAllEvents ) {
279+ for ( const e of criteria . events ) {
280+ boolQuery . push ( { match_phrase : { 'events.id' : e } } )
281+ }
282+ } else {
283+ for ( const e of criteria . events ) {
284+ shouldQuery . push ( { match : { 'events.id' : e } } )
285+ }
286+ }
287+ }
288+
277289 const mustNotQuery = [ ]
278290
279291 let groupsToFilter = [ ]
@@ -577,7 +589,9 @@ searchChallenges.schema = {
577589 ids : Joi . array ( ) . items ( Joi . optionalId ( ) ) . unique ( ) . min ( 1 ) ,
578590 isTask : Joi . boolean ( ) ,
579591 taskIsAssigned : Joi . boolean ( ) ,
580- taskMemberId : Joi . string ( )
592+ taskMemberId : Joi . string ( ) ,
593+ events : Joi . array ( ) . items ( Joi . number ( ) ) ,
594+ includeAllEvents : Joi . boolean ( ) . default ( true )
581595 } )
582596}
583597
0 commit comments