File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1313
1414const Joi = require ( 'joi' ) ;
1515const PaginationDto = require ( './PaginationDto' ) ;
16+ const { FromToFilterDto } = require ( './filters/FromToFilterDto' ) ;
1617
1718/**
1819 * Separate filter DTO for get all environments, because EnvironmentsFilterDto
@@ -23,6 +24,7 @@ const FilterDto = Joi.object({
2324 currentStatus : Joi . string ( ) . trim ( ) . optional ( ) ,
2425 statusHistory : Joi . string ( ) . trim ( ) . optional ( ) ,
2526 runNumbers : Joi . string ( ) . trim ( ) . optional ( ) ,
27+ created : FromToFilterDto ,
2628} ) ;
2729
2830const QueryDto = Joi . object ( {
Original file line number Diff line number Diff line change @@ -85,10 +85,17 @@ class GetAllEnvironmentsUseCase {
8585 currentStatus : currentStatusExpression ,
8686 statusHistory,
8787 runNumbers : runNumbersExpression ,
88+ created,
8889 } = filter ;
8990
9091 const filterQueryBuilder = prepareQueryBuilder ( ) ;
9192
93+ if ( created ) {
94+ const from = created . from != null ? created . from : 0 ;
95+ const to = created . to != null ? created . to : Date . now ( ) ;
96+ filterQueryBuilder . where ( 'createdAt' ) . between ( from , to ) ;
97+ }
98+
9299 if ( idsExpression ) {
93100 const filters = idsExpression . split ( ',' ) . map ( ( id ) => id . trim ( ) ) ;
94101
@@ -167,12 +174,18 @@ class GetAllEnvironmentsUseCase {
167174 }
168175
169176 const filteredEnvironmentsIds = ( await EnvironmentRepository . findAll ( filterQueryBuilder ) ) . map ( ( { id } ) => id ) ;
177+ // If no environments match the filter, return an empty result
178+ if ( filteredEnvironmentsIds . length === 0 ) {
179+ return {
180+ count : 0 ,
181+ environments : [ ] ,
182+ } ;
183+ }
170184 fetchQueryBuilder . where ( 'id' ) . oneOf ( filteredEnvironmentsIds ) ;
171185 }
172186
173187 fetchQueryBuilder . include ( { association : 'runs' } ) ;
174188 fetchQueryBuilder . include ( { association : 'historyItems' } ) ;
175-
176189 const { count, rows } = await EnvironmentRepository . findAndCountAll ( fetchQueryBuilder ) ;
177190 return {
178191 count,
You can’t perform that action at this time.
0 commit comments