@@ -2,7 +2,14 @@ import { Body, Controller, Get, Param, Post, Query, UploadedFiles, UseIntercepto
22import { ApiBody , ApiConsumes , ApiOperation , ApiParam , ApiQuery , ApiResponse , ApiTags } from '@nestjs/swagger' ;
33import { FileFieldsInterceptor } from '@nestjs/platform-express' ;
44import { Identifiable , IPaginatedList } from '@domain/core' ;
5- import { CrowdAction , CrowdActionStatusEnum , ICrowdAction } from '@domain/crowdaction' ;
5+ import {
6+ CrowdAction ,
7+ CrowdActionStatusEnum ,
8+ ICrowdAction ,
9+ joinStatusToFilter ,
10+ statusToFilter ,
11+ statusesToFilter ,
12+ } from '@domain/crowdaction' ;
613import { ICQRSHandler } from '@common/cqrs' ;
714import { CreateCrowdActionDto , FilterCrowdActionDto , GetCrowdActionDto , PaginatedCrowdActionResponse } from '@infrastructure/crowdaction' ;
815import {
@@ -33,20 +40,23 @@ export class CrowdActionController {
3340 } )
3441 async getAllCrowdActions (
3542 @Query ( ) { page, pageSize } : PaginationDto ,
36- @Query ( ) { id, status, joinStatus, startAt , joinEndAt , endAt , category , subcategory , slug } : FilterCrowdActionDto ,
43+ @Query ( ) { id, status, joinStatus, slug } : FilterCrowdActionDto ,
3744 ) : Promise < IPaginatedList < GetCrowdActionDto > > {
38- const filter : any = {
45+ let filter : any = {
3946 id : id !== undefined ? { in : id } : undefined ,
40- status : status !== undefined ? { in : status } : undefined ,
41- joinStatus : joinStatus !== undefined ? { in : joinStatus } : undefined ,
42- startAt : startAt !== undefined ? { in : startAt } : undefined ,
43- joinEndAt : joinEndAt !== undefined ? { in : joinEndAt } : undefined ,
44- endAt : endAt !== undefined ? { in : endAt } : undefined ,
45- category : category !== undefined ? { in : category } : undefined ,
46- subcategory : subcategory !== undefined ? { in : subcategory } : undefined ,
4747 slug : slug !== undefined ? { in : slug } : undefined ,
4848 } ;
4949
50+ if ( status != undefined ) {
51+ const statusFilter = status instanceof Array ? statusesToFilter ( status ) : statusToFilter ( status ) ;
52+ filter = { ...filter , ...statusFilter } ;
53+ }
54+
55+ if ( joinStatus != undefined ) {
56+ const joinStatusFilter = joinStatusToFilter ( joinStatus ) ;
57+ filter [ 'joinEndAt' ] = joinStatusFilter . joinEndAt ;
58+ }
59+
5060 for ( const param in filter ) {
5161 if ( filter [ param ] === undefined ) delete filter [ param ] ;
5262 }
0 commit comments