Skip to content

Commit 80f0a63

Browse files
fix(plugin): route-level validation > controller-level validation
1 parent e83cb92 commit 80f0a63

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

lib/plugin.ts

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)