@@ -60,6 +60,13 @@ export const reject = useExpressValidators([
6060 . withMessage ( ValidationReasons . TOO_SHORT ( CompanyApplicationConstants . rejectReason . min_length ) ) ,
6161] ) ;
6262
63+ const isAfterSubmissionDateFrom = ( submissionDateTo , { req } ) => {
64+
65+ const { submissionDateFrom } = req . body ;
66+
67+ return submissionDateFrom <= submissionDateTo ;
68+ } ;
69+
6370const sortByParamValidator = ( val ) => {
6471
6572 const regex = / ^ ( \w + ( : ( d e s c | a s c ) ) ? ) ( , \w + ( : ( d e s c | a s c ) ) ? ) * $ / ;
@@ -84,31 +91,38 @@ const parseSortByField = (val) => val.split(",");
8491export const search = useExpressValidators ( [
8592 query ( "limit" , ValidationReasons . DEFAULT )
8693 . optional ( )
87- . isInt ( { min : 1 , max : MAX_LIMIT_RESULTS } )
88- . withMessage ( ValidationReasons . MAX ( MAX_LIMIT_RESULTS ) ) ,
94+ . isInt ( ) . withMessage ( ValidationReasons . INT ) . bail ( )
95+ . toInt ( )
96+ . isInt ( { min : 1 } ) . withMessage ( ValidationReasons . MIN ( 1 ) ) . bail ( )
97+ . isInt ( { max : MAX_LIMIT_RESULTS } ) . withMessage ( ValidationReasons . MAX ( MAX_LIMIT_RESULTS ) ) . bail ( )
98+ . toInt ( ) ,
8999 query ( "offset" , ValidationReasons . DEFAULT )
90100 . optional ( )
91- . isInt ( { min : 0 } )
92- . withMessage ( ValidationReasons . MIN ( 0 ) ) ,
101+ . isInt ( ) . withMessage ( ValidationReasons . INT ) . bail ( )
102+ . toInt ( )
103+ . isInt ( { min : 0 } ) . withMessage ( ValidationReasons . MIN ( 0 ) ) . bail ( )
104+ . toInt ( ) ,
93105 query ( "companyName" , ValidationReasons . DEFAULT )
94106 . optional ( )
95- . isString ( ) . withMessage ( ValidationReasons . STRING ) ,
107+ . isString ( ) . withMessage ( ValidationReasons . STRING ) . bail ( ) ,
96108 query ( "state" , ValidationReasons . DEFAULT )
97109 . optional ( )
98- . customSanitizer ( ensureArray )
99110 . isArray ( ) . withMessage ( ValidationReasons . ARRAY ) . bail ( )
111+ . customSanitizer ( ensureArray )
100112 . custom ( valuesInSet ( Object . keys ( ApplicationStatus ) ) ) ,
101113 query ( "submissionDateFrom" , ValidationReasons . DEFAULT )
102114 . optional ( )
103- . toDate ( )
104- . isISO8601 ( ) . withMessage ( ValidationReasons . DATE ) ,
115+ . isISO8601 ( ) . withMessage ( ValidationReasons . DATE ) . bail ( )
116+ . toDate ( ) ,
105117 query ( "submissionDateTo" , ValidationReasons . DEFAULT )
106118 . optional ( )
119+ . isISO8601 ( ) . withMessage ( ValidationReasons . DATE ) . bail ( )
107120 . toDate ( )
108- . isISO8601 ( ) . withMessage ( ValidationReasons . DATE ) ,
121+ . if ( ( submissionDateTo , { req } ) => req . query . submissionDateFrom !== undefined )
122+ . custom ( isAfterSubmissionDateFrom ) . withMessage ( ValidationReasons . MUST_BE_AFTER ( "submissionDateFrom" ) ) ,
109123 query ( "sortBy" , ValidationReasons . DEFAULT )
110124 . optional ( )
111- . isString ( ) . withMessage ( ValidationReasons . STRING )
125+ . isString ( ) . withMessage ( ValidationReasons . STRING ) . bail ( )
112126 . custom ( sortByParamValidator )
113127 . customSanitizer ( parseSortByField ) ,
114128] ) ;
0 commit comments