File tree Expand file tree Collapse file tree 3 files changed +14
-18
lines changed Expand file tree Collapse file tree 3 files changed +14
-18
lines changed Original file line number Diff line number Diff line change 1
1
import { applyDecorators } from '@nestjs/common' ;
2
2
import { EnumType , makeEnum } from '@seedcompany/nest' ;
3
- import { Transform } from 'class-transformer' ;
4
- import { uniq } from 'lodash' ;
5
3
import { rankSens } from '~/core/database/query' ;
6
4
import { DbSort } from './db-sort.decorator' ;
5
+ import { ListField , ListFieldOptions } from './list-field' ;
7
6
import { OptionalField , OptionalFieldOptions } from './optional-field' ;
8
7
9
8
export type Sensitivity = EnumType < typeof Sensitivity > ;
@@ -22,8 +21,13 @@ export const SensitivityField = (options?: OptionalFieldOptions) =>
22
21
DbSort ( rankSens ) ,
23
22
) ;
24
23
25
- export const SensitivitiesFilter = ( ) =>
26
- Transform ( ( { value } ) => {
27
- const sens = uniq ( value ) ;
28
- return sens . length > 0 && sens . length < 3 ? sens : undefined ;
24
+ export const SensitivitiesFilterField = ( options ?: ListFieldOptions ) =>
25
+ ListField ( ( ) => Sensitivity , {
26
+ description : 'Only these sensitivities' ,
27
+ ...options ,
28
+ optional : true ,
29
+ empty : 'omit' ,
30
+ transform : ( value ) =>
31
+ // If given all options, there is no need to filter
32
+ ! value || value . length === Sensitivity . values . size ? undefined : value ,
29
33
} ) ;
Original file line number Diff line number Diff line change 4
4
ID ,
5
5
PaginatedList ,
6
6
SecuredList ,
7
- SensitivitiesFilter ,
7
+ SensitivitiesFilterField ,
8
8
Sensitivity ,
9
9
SortablePaginationInput ,
10
10
} from '~/common' ;
@@ -35,11 +35,7 @@ export abstract class LanguageFilters {
35
35
} )
36
36
readonly name ?: string ;
37
37
38
- @Field ( ( ) => [ Sensitivity ] , {
39
- description : 'Only languages with these sensitivities' ,
40
- nullable : true ,
41
- } )
42
- @SensitivitiesFilter ( )
38
+ @SensitivitiesFilterField ( )
43
39
readonly sensitivity ?: Sensitivity [ ] ;
44
40
45
41
@Field ( {
Original file line number Diff line number Diff line change 8
8
ID ,
9
9
PaginatedList ,
10
10
SecuredList ,
11
- SensitivitiesFilter ,
11
+ SensitivitiesFilterField ,
12
12
Sensitivity ,
13
13
SortablePaginationInput ,
14
14
} from '~/common' ;
@@ -37,11 +37,7 @@ export abstract class ProjectFilters {
37
37
} )
38
38
readonly type ?: ProjectType [ ] ;
39
39
40
- @Field ( ( ) => [ Sensitivity ] , {
41
- description : 'Only projects with these sensitivities' ,
42
- nullable : true ,
43
- } )
44
- @SensitivitiesFilter ( )
40
+ @SensitivitiesFilterField ( )
45
41
readonly sensitivity ?: Sensitivity [ ] ;
46
42
47
43
@Field ( ( ) => [ ProjectStatus ] , {
You can’t perform that action at this time.
0 commit comments