fix: 2.0 object parameter validation (#5583)

This commit is contained in:
kyle
2019-09-02 10:06:55 -07:00
committed by GitHub
parent 7b737f607f
commit 4ebbc042ae

View File

@@ -498,6 +498,7 @@ export const validatePattern = (val, rxPattern) => {
// validation of parameters before execute // validation of parameters before execute
export const validateParam = (param, value, { isOAS3 = false, bypassRequiredCheck = false } = {}) => { export const validateParam = (param, value, { isOAS3 = false, bypassRequiredCheck = false } = {}) => {
let errors = [] let errors = []
let required = param.get("required") let required = param.get("required")
@@ -527,31 +528,23 @@ export const validateParam = (param, value, { isOAS3 = false, bypassRequiredChec
let booleanCheck = type === "boolean" && (value || value === false) let booleanCheck = type === "boolean" && (value || value === false)
let numberCheck = type === "number" && (value || value === 0) let numberCheck = type === "number" && (value || value === 0)
let integerCheck = type === "integer" && (value || value === 0) let integerCheck = type === "integer" && (value || value === 0)
let objectCheck = type === "object" && typeof value === "object" && value !== null
let objectStringCheck = type === "object" && typeof value === "string" && value
let oas3ObjectCheck = false // if(type === "object" && typeof value === "string") {
// // Disabled because `validateParam` doesn't consider the MediaType of the
if(isOAS3 && type === "object") { // // `Parameter.content` hint correctly.
if(typeof value === "object" && value !== null) {
oas3ObjectCheck = true
} else if(typeof value === "string") {
oas3ObjectCheck = true
}
// Disabled because `validateParam` doesn't consider the MediaType of the
// `Parameter.content` hint correctly.
// } else if(typeof value === "string") {
// try { // try {
// JSON.parse(value) // JSON.parse(value)
// oas3ObjectCheck = true
// } catch(e) { // } catch(e) {
// errors.push("Parameter string value must be valid JSON") // errors.push("Parameter string value must be valid JSON")
// return errors // return errors
// } // }
// } // }
}
const allChecks = [ const allChecks = [
stringCheck, arrayCheck, listCheck, fileCheck, booleanCheck, stringCheck, arrayCheck, listCheck, fileCheck, booleanCheck,
numberCheck, integerCheck, oas3ObjectCheck numberCheck, integerCheck, objectCheck, objectStringCheck,
] ]
const passedAnyCheck = allChecks.some(v => !!v) const passedAnyCheck = allChecks.some(v => !!v)