@@ -101,18 +101,23 @@ class Internals {
101101 route : Route ,
102102 controller : Controller ,
103103 key : 'params' | 'query' | 'response' | 'payload' ,
104- fallback ?: any ,
105104 ) {
106105 if ( key === 'payload' && this . skipPayloadValidation ( route ) ) {
107106 return ;
108107 }
109108
109+ // tslint:disable-next-line: max-line-length
110+ const validateKey = `validate${ key . substring ( 0 , 1 ) . toUpperCase ( ) } ${ key . substring ( 1 ) } ` as keyof Route [ 'options' ] ;
111+ if ( route . options [ validateKey ] ) {
112+ return route . options [ validateKey ] ;
113+ }
114+
110115 if ( typeof route . action !== 'string' ) {
111- return fallback ;
116+ return null ;
112117 }
113118
114119 if ( ! controller ) {
115- return fallback ;
120+ return null ;
116121 }
117122
118123 let validator = controller . validate ;
@@ -121,12 +126,12 @@ class Internals {
121126 }
122127
123128 if ( ! validator ) {
124- return fallback ;
129+ return null ;
125130 }
126131
127132 const validationEntry = validator [ key ] ;
128133 if ( ! validationEntry ) {
129- return fallback ;
134+ return null ;
130135 }
131136
132137 let validate ;
@@ -135,36 +140,29 @@ class Internals {
135140 } else {
136141 validate = validationEntry [ route . action ] ;
137142 }
138- if ( validate ) {
139- return validate ;
140- }
141- return fallback ;
143+ return validate ;
142144 }
143145 buildValidate ( route : Route , controller : Controller ) {
144146 return {
145147 params : this . resolveControllerValidator (
146148 route ,
147149 controller ,
148150 'params' ,
149- route . options . validateParams ,
150151 ) ,
151152 query : this . resolveControllerValidator (
152153 route ,
153154 controller ,
154155 'query' ,
155- route . options . validateQuery ,
156156 ) ,
157157 response : this . resolveControllerValidator (
158158 route ,
159159 controller ,
160160 'response' ,
161- route . options . validateResponse ,
162161 ) ,
163162 payload : this . resolveControllerValidator (
164163 route ,
165164 controller ,
166165 'payload' ,
167- route . options . validatePayload ,
168166 ) ,
169167 } ;
170168 }
0 commit comments