swagger-model-validator
Advanced tools
Comparing version
@@ -323,3 +323,3 @@ 'use strict'; | ||
var errors = []; | ||
var matchCount = 0; | ||
for(var x in oneOfArray) { | ||
@@ -329,19 +329,27 @@ var modelName = oneOfArray[x]; | ||
var errorResult = validateType(name, value, oneOfArray[x], models, allowBlankTargets, disallowExtraProperties); | ||
if(errorResult===null) { | ||
return null; | ||
if(errorResult===null || errorResult.valid) { | ||
matchCount = matchCount + 1; | ||
} else { | ||
var error = new Error( | ||
name + | ||
" is not a valid target for a oneOf " + | ||
JSON.stringify(modelName) | ||
); | ||
// error.errors = errorResult; | ||
errors.push(errorResult.errors); | ||
errors.push(error); | ||
} | ||
if (errorResult.valid) { | ||
return createReturnObject(); | ||
} | ||
var error = new Error( | ||
name + | ||
" is not a valid target for a oneOf " + | ||
JSON.stringify(modelName) | ||
); | ||
// error.errors = errorResult; | ||
errors.push(errorResult.errors); | ||
errors.push(error); | ||
} | ||
if(matchCount === 0) { | ||
return createReturnObject(errors, name); | ||
} else if(matchCount === 1) { | ||
return createReturnObject(); | ||
} else { | ||
var matchErrors = []; | ||
matchErrors.push(new Error( name + "matches more than one entry in a oneOf.")) | ||
return createReturnObject(matchErrors, name); | ||
} | ||
return createReturnObject(errors, name); | ||
@@ -358,18 +366,19 @@ } else if(field.anyOf) { | ||
var errorResult = validateType(name, value, anyOfArray[x], models, allowBlankTargets, disallowExtraProperties); | ||
if(errorResult===null) { | ||
if (errorResult === null) { | ||
return null; | ||
} | ||
var error = new Error(name + " is not a valid target for anyOf"); | ||
error.errors = errorResult; | ||
errors.push(error); | ||
} | ||
return createReturnObject(errors, name); | ||
} | ||
return createReturnObject(errors, name); | ||
} else if(field.allOf) { | ||
var allOfArray = field.allOf; | ||
for(var x in allofArray) { | ||
for(var x in allOfArray) { | ||
field.type = allOfArray[x].type; | ||
var errorResult = validateType(name, value, allOfArray[x], models, allowBlankTargets, false); | ||
if(!errorsResult===null) { | ||
if(errorResult !== null) { | ||
var error = new Error(name + " is not a valid target for an allOf"); | ||
@@ -675,3 +684,3 @@ error.errors = errorResult; | ||
try { | ||
if(!object.hasOwnProperty(property) || object[property] === "" || (object[property] === null && !modelFields[property]['x-nullable'] === true && !modelFields[property]['nullable'] === true )) { | ||
if(!object.hasOwnProperty(property) || object[property] === "" || object[property] === undefined || (object[property] === null && !modelFields[property]['x-nullable'] === true && !modelFields[property]['nullable'] === true )) { | ||
errors.push(new Error(property + ' is a required field')); | ||
@@ -678,0 +687,0 @@ } |
{ | ||
"name": "swagger-model-validator", | ||
"version": "3.0.14", | ||
"version": "3.0.15", | ||
"description": "Validate incoming objects against Swagger Models.", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
63334
0.74%1070
0.75%