@@ -2,59 +2,8 @@ import { Request, Response } from 'express';
22import { isKeyInModel } from '../utils' ;
33import { queryTypes , queryTypeKeys } from './query-types' ;
44import { getReadableFields , getReadableRelations } from '../bodyguard' ;
5- import {
6- validateSync ,
7- MetadataStorage ,
8- getFromContainer
9- } from 'class-validator' ;
10-
11- /**
12- * Get class-validator constraints for a class
13- * @param someClass BaseModel class(e.g `request.payloadType`)
14- * @param key (Optional) Key to get constraints for. If unset, constraints for
15- * all keys will be returned.
16- */
17- function getValidationConstraints ( someClass : Function , key ?: string ) {
18- const container = < MetadataStorage > getFromContainer ( MetadataStorage ) ;
19- const metadata = container . getTargetValidationMetadatas (
20- someClass ,
21- JSON . stringify ( someClass )
22- ) ;
23- const properties = container . groupByPropertyName ( metadata ) ;
24-
25- const validators = Object . keys ( properties ) . reduce ( ( schema , property ) => {
26- schema [ property ] = properties [
27- property
28- ] . reduce ( ( propertySchema , { type, constraints } ) => {
29- if ( Array . isArray ( constraints ) && constraints . length === 1 ) {
30- constraints = constraints [ 0 ] ;
31- }
32-
33- if ( typeof constraints === 'undefined' ) {
34- propertySchema [ type ] = true ;
35- }
36- else {
37- propertySchema [ type ] = constraints ;
38- }
39-
40- return propertySchema ;
41- } , { } ) ;
42-
43- return schema ;
44- } , { } ) ;
45-
46- if ( key ) {
47- if ( key in validators ) {
48- return validators [ key ] ;
49- }
50- else {
51- return false ;
52- }
53- }
54- else {
55- return validators ;
56- }
57- }
5+ import { validateSync } from 'class-validator' ;
6+ import { getValidationConstraints } from './get-validation-constraints' ;
587
598/**
609 * Validate a GET query type
0 commit comments