diff --git a/src/execute/oas3/parameter-builders.js b/src/execute/oas3/parameter-builders.js index 2a9011c476..a8832ae13a 100644 --- a/src/execute/oas3/parameter-builders.js +++ b/src/execute/oas3/parameter-builders.js @@ -2,6 +2,7 @@ import stylize from './style-serializer' export default { path, + matrix, query, header, cookie @@ -20,6 +21,22 @@ function path({req, value, parameter}) { req.url = req.url.replace(`{${name}}`, styledValue) } +function matrix({req, value, parameter}) { + const {name, style, explode} = parameter + const styledValue = stylize({ + key: parameter.name, + value, + style: style || 'simple', + explode: explode || false, + escape: true, + }) + + var queryStart = req.url.indexOf('?'); + var prefix = queryStart == -1 ? req.url : req.url.substr(0, queryStart); + var suffix = queryStart == -1 ? '' : req.url.substr(queryStart); + req.url = prefix + ';' + parameter.name + "=" + styledValue + suffix; +} + function query({req, value, parameter}) { req.query = req.query || {}