@@ -468,85 +468,59 @@ export const validateFile = ( val ) => {
468468 }
469469}
470470
471- export const validateBoolean = ( val ) => {
472- if ( ! ( val === "true" || val === "false" || val === true || val === false ) ) {
473- return "Value must be a boolean"
474- }
475- }
476-
477- export const validateString = ( val ) => {
478- if ( val && typeof val !== "string" ) {
479- return "Value must be a string"
480- }
481- }
482-
483471// validation of parameters before execute
484472export const validateParam = ( param , isXml ) => {
485473 let errors = [ ]
486474 let value = isXml && param . get ( "in" ) === "body" ? param . get ( "value_xml" ) : param . get ( "value" )
487475 let required = param . get ( "required" )
488476 let type = param . get ( "type" )
489477
490- // If the parameter is required OR the parameter has a value (meaning optional, but filled in)
491- // then we should do our validation routine
492- if ( required || value ) {
493- // These checks should evaluate to true if the parameter's value is valid
494- let stringCheck = type === "string" && value && ! validateString ( value )
495- let arrayCheck = type === "array" && Array . isArray ( value ) && value . length
496- let listCheck = type === "array" && Im . List . isList ( value ) && value . count ( )
497- let fileCheck = type === "file" && value instanceof win . File
498- let booleanCheck = type === "boolean" && ! validateBoolean ( value )
499- let numberCheck = type === "number" && ! validateNumber ( value ) // validateNumber returns undefined if the value is a number
500- let integerCheck = type === "integer" && ! validateInteger ( value ) // validateInteger returns undefined if the value is an integer
501-
502- if ( required && ! ( stringCheck || arrayCheck || listCheck || fileCheck || booleanCheck || numberCheck || integerCheck ) ) {
503- errors . push ( "Required field is not provided" )
504- return errors
505- }
478+ let stringCheck = type === "string" && ! value
479+ let arrayCheck = type === "array" && Array . isArray ( value ) && ! value . length
480+ let listCheck = type === "array" && Im . List . isList ( value ) && ! value . count ( )
481+ let fileCheck = type === "file" && ! ( value instanceof win . File )
506482
507- if ( type === "string" ) {
508- let err = validateString ( value )
509- if ( ! err ) return errors
510- errors . push ( err )
511- } else if ( type === "boolean" ) {
512- let err = validateBoolean ( value )
513- if ( ! err ) return errors
514- errors . push ( err )
515- } else if ( type === "number" ) {
516- let err = validateNumber ( value )
517- if ( ! err ) return errors
518- errors . push ( err )
519- } else if ( type === "integer" ) {
520- let err = validateInteger ( value )
521- if ( ! err ) return errors
522- errors . push ( err )
523- } else if ( type === "array" ) {
524- let itemType
525-
526- if ( ! value . count ( ) ) { return errors }
527-
528- itemType = param . getIn ( [ "items" , "type" ] )
529-
530- value . forEach ( ( item , index ) => {
531- let err
532-
533- if ( itemType === "number" ) {
534- err = validateNumber ( item )
535- } else if ( itemType === "integer" ) {
536- err = validateInteger ( item )
537- } else if ( itemType === "string" ) {
538- err = validateString ( item )
539- }
483+ if ( required && ( stringCheck || arrayCheck || listCheck || fileCheck ) ) {
484+ errors . push ( "Required field is not provided" )
485+ return errors
486+ }
540487
541- if ( err ) {
542- errors . push ( { index : index , error : err } )
543- }
544- } )
545- } else if ( type === "file" ) {
546- let err = validateFile ( value )
547- if ( ! err ) return errors
548- errors . push ( err )
549- }
488+ if ( value === null || value === undefined ) {
489+ return errors
490+ }
491+
492+ if ( type === "number" ) {
493+ let err = validateNumber ( value )
494+ if ( ! err ) return errors
495+ errors . push ( err )
496+ } else if ( type === "integer" ) {
497+ let err = validateInteger ( value )
498+ if ( ! err ) return errors
499+ errors . push ( err )
500+ } else if ( type === "array" ) {
501+ let itemType
502+
503+ if ( ! value . count ( ) ) { return errors }
504+
505+ itemType = param . getIn ( [ "items" , "type" ] )
506+
507+ value . forEach ( ( item , index ) => {
508+ let err
509+
510+ if ( itemType === "number" ) {
511+ err = validateNumber ( item )
512+ } else if ( itemType === "integer" ) {
513+ err = validateInteger ( item )
514+ }
515+
516+ if ( err ) {
517+ errors . push ( { index : index , error : err } )
518+ }
519+ } )
520+ } else if ( type === "file" ) {
521+ let err = validateFile ( value )
522+ if ( ! err ) return errors
523+ errors . push ( err )
550524 }
551525
552526 return errors
0 commit comments