Skip to content

Commit 8e66d3f

Browse files
dusanmiDMLucis
andauthored
FIX: issue #917 (#935)
Co-authored-by: Dušan Miška <[email protected]>
1 parent 2d75db4 commit 8e66d3f

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

Diff for: src/middlewares/parsers/req.parameter.mutator.ts

+10-2
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export class RequestParameterMutator {
7676
const i = req.originalUrl.indexOf('?');
7777
const queryString = req.originalUrl.substr(i + 1);
7878

79-
if (parameter.in === 'query' && !parameter.allowReserved) {
79+
if (parameter.in === 'query' && !parameter.allowReserved && parameter.explode === true) {
8080
this.validateReservedCharacters(name, rawQuery);
8181
}
8282

@@ -94,7 +94,15 @@ export class RequestParameterMutator {
9494
} else if (type === 'array' && !explode) {
9595
const delimiter = ARRAY_DELIMITER[parameter.style];
9696
this.validateArrayDelimiter(delimiter, parameter);
97-
this.parseJsonArrayAndMutateRequest(req, parameter.in, name, delimiter);
97+
if (parameter.in === "query") {
98+
const field = REQUEST_FIELDS[parameter.in];
99+
const vs = rawQuery.get(name);
100+
if (vs) {
101+
req[field][name] = vs[0].split(delimiter).map(v => decodeURIComponent(v));
102+
}
103+
} else {
104+
this.parseJsonArrayAndMutateRequest(req, parameter.in, name, delimiter);
105+
}
98106
} else if (type === 'array' && explode) {
99107
this.explodeJsonArrayAndMutateRequest(req, parameter.in, name);
100108
} else if (style === 'form' && explode) {

0 commit comments

Comments
 (0)