Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
should(param.name).have.type('string');
should(param).have.property('in');
should(param.in).have.type('string');
should(param.in).equalOneOf('query', 'header', 'path', 'cookie');
if (param.in === 'path') {
should(param).have.property('required');
should(param.required).be.exactly(true, 'Path parameters must have an explicit required:true');
if (path) { // if we're not looking at a param from #/components (checked when used)
should(path.indexOf('{'+param.name+'}')).be.greaterThan(-1,'path parameters must appear in the path');
}
}
if (typeof param.required !== 'undefined') should(param.required).have.type('boolean');
should(param).not.have.property('items');
should(param).not.have.property('collectionFormat');
should(param).not.have.property('type');
for (let prop of common.parameterTypeProperties) {
should(param).not.have.property(prop);
}
should(param.in).not.be.exactly('body', 'Parameter type body is no-longer valid');
should(param.in).not.be.exactly('formData', 'Parameter type formData is no-longer valid');
if (param.description) {
should(param.description).have.type('string');
}
if (typeof param.deprecated !== 'undefined') {
should(param.deprecated).be.a.Boolean();
}
if (typeof param.schema !== 'undefined') {
should(param).not.have.property('content');
if (typeof param.style !== 'undefined') {
should(param.style).be.type('string');
if (param.in === 'path') {
should(param.style).not.be.exactly('form');
param.schema.type = param.type;
if (param.items) {
param.schema.items = param.items;
delete param.items;
recurse(param.schema.items, null, function (obj, key, state) {
if ((key === 'collectionFormat') && (typeof obj[key] === 'string')) {
if (oldCollectionFormat && obj[key] !== oldCollectionFormat) {
throwOrWarn('Nested collectionFormats are not supported', param, options);
}
delete obj[key]; // not lossless
}
// items in 2.0 was a subset of the JSON-Schema items
// object, it gets fixed up below
});
}
for (let prop of common.parameterTypeProperties) {
if (typeof param[prop] !== 'undefined') param.schema[prop] = param[prop];
delete param[prop];
}
}
}
if (param.schema) {
fixUpSchema(param.schema,options);
}
if (param["x-ms-skip-url-encoding"]) {
if (param.in === 'query') { // might be in:path, not allowed in OAS3
param.allowReserved = true;
delete param["x-ms-skip-url-encoding"];
}
}