@@ -16,6 +16,15 @@ import (
1616 "github.com/go-openapi/jsonpointer"
1717)
1818
19+ const (
20+ TypeArray = "array"
21+ TypeBoolean = "boolean"
22+ TypeInteger = "integer"
23+ TypeNumber = "number"
24+ TypeObject = "object"
25+ TypeString = "string"
26+ )
27+
1928var (
2029 // SchemaErrorDetailsDisabled disables printing of details about schema errors.
2130 SchemaErrorDetailsDisabled = false
@@ -297,72 +306,72 @@ func NewAllOfSchema(schemas ...*Schema) *Schema {
297306
298307func NewBoolSchema () * Schema {
299308 return & Schema {
300- Type : "boolean" ,
309+ Type : TypeBoolean ,
301310 }
302311}
303312
304313func NewFloat64Schema () * Schema {
305314 return & Schema {
306- Type : "number" ,
315+ Type : TypeNumber ,
307316 }
308317}
309318
310319func NewIntegerSchema () * Schema {
311320 return & Schema {
312- Type : "integer" ,
321+ Type : TypeInteger ,
313322 }
314323}
315324
316325func NewInt32Schema () * Schema {
317326 return & Schema {
318- Type : "integer" ,
327+ Type : TypeInteger ,
319328 Format : "int32" ,
320329 }
321330}
322331
323332func NewInt64Schema () * Schema {
324333 return & Schema {
325- Type : "integer" ,
334+ Type : TypeInteger ,
326335 Format : "int64" ,
327336 }
328337}
329338
330339func NewStringSchema () * Schema {
331340 return & Schema {
332- Type : "string" ,
341+ Type : TypeString ,
333342 }
334343}
335344
336345func NewDateTimeSchema () * Schema {
337346 return & Schema {
338- Type : "string" ,
347+ Type : TypeString ,
339348 Format : "date-time" ,
340349 }
341350}
342351
343352func NewUUIDSchema () * Schema {
344353 return & Schema {
345- Type : "string" ,
354+ Type : TypeString ,
346355 Format : "uuid" ,
347356 }
348357}
349358
350359func NewBytesSchema () * Schema {
351360 return & Schema {
352- Type : "string" ,
361+ Type : TypeString ,
353362 Format : "byte" ,
354363 }
355364}
356365
357366func NewArraySchema () * Schema {
358367 return & Schema {
359- Type : "array" ,
368+ Type : TypeArray ,
360369 }
361370}
362371
363372func NewObjectSchema () * Schema {
364373 return & Schema {
365- Type : "object" ,
374+ Type : TypeObject ,
366375 Properties : make (map [string ]* SchemaRef ),
367376 }
368377}
@@ -637,8 +646,8 @@ func (schema *Schema) validate(ctx context.Context, stack []*Schema) (err error)
637646 schemaType := schema .Type
638647 switch schemaType {
639648 case "" :
640- case "boolean" :
641- case "number" :
649+ case TypeBoolean :
650+ case TypeNumber :
642651 if format := schema .Format ; len (format ) > 0 {
643652 switch format {
644653 case "float" , "double" :
@@ -648,7 +657,7 @@ func (schema *Schema) validate(ctx context.Context, stack []*Schema) (err error)
648657 }
649658 }
650659 }
651- case "integer" :
660+ case TypeInteger :
652661 if format := schema .Format ; len (format ) > 0 {
653662 switch format {
654663 case "int32" , "int64" :
@@ -658,7 +667,7 @@ func (schema *Schema) validate(ctx context.Context, stack []*Schema) (err error)
658667 }
659668 }
660669 }
661- case "string" :
670+ case TypeString :
662671 if format := schema .Format ; len (format ) > 0 {
663672 switch format {
664673 // Supported by OpenAPIv3.0.1:
@@ -681,11 +690,11 @@ func (schema *Schema) validate(ctx context.Context, stack []*Schema) (err error)
681690 return err
682691 }
683692 }
684- case "array" :
693+ case TypeArray :
685694 if schema .Items == nil {
686695 return errors .New ("when schema type is 'array', schema 'items' must be non-null" )
687696 }
688- case "object" :
697+ case TypeObject :
689698 default :
690699 return fmt .Errorf ("unsupported 'type' value %q" , schemaType )
691700 }
@@ -966,8 +975,8 @@ func (schema *Schema) VisitJSONBoolean(value bool) error {
966975}
967976
968977func (schema * Schema ) visitJSONBoolean (settings * schemaValidationSettings , value bool ) (err error ) {
969- if schemaType := schema .Type ; schemaType != "" && schemaType != "boolean" {
970- return schema .expectedType (settings , "boolean" )
978+ if schemaType := schema .Type ; schemaType != "" && schemaType != TypeBoolean {
979+ return schema .expectedType (settings , TypeBoolean )
971980 }
972981 return
973982}
@@ -996,7 +1005,7 @@ func (schema *Schema) visitJSONNumber(settings *schemaValidationSettings, value
9961005 }
9971006 me = append (me , err )
9981007 }
999- } else if schemaType != "" && schemaType != "number" {
1008+ } else if schemaType != "" && schemaType != TypeNumber {
10001009 return schema .expectedType (settings , "number, integer" )
10011010 }
10021011
@@ -1101,8 +1110,8 @@ func (schema *Schema) VisitJSONString(value string) error {
11011110}
11021111
11031112func (schema * Schema ) visitJSONString (settings * schemaValidationSettings , value string ) error {
1104- if schemaType := schema .Type ; schemaType != "" && schemaType != "string" {
1105- return schema .expectedType (settings , "string" )
1113+ if schemaType := schema .Type ; schemaType != "" && schemaType != TypeString {
1114+ return schema .expectedType (settings , TypeString )
11061115 }
11071116
11081117 var me MultiError
@@ -1220,8 +1229,8 @@ func (schema *Schema) VisitJSONArray(value []interface{}) error {
12201229}
12211230
12221231func (schema * Schema ) visitJSONArray (settings * schemaValidationSettings , value []interface {}) error {
1223- if schemaType := schema .Type ; schemaType != "" && schemaType != "array" {
1224- return schema .expectedType (settings , "array" )
1232+ if schemaType := schema .Type ; schemaType != "" && schemaType != TypeArray {
1233+ return schema .expectedType (settings , TypeArray )
12251234 }
12261235
12271236 var me MultiError
@@ -1316,8 +1325,8 @@ func (schema *Schema) VisitJSONObject(value map[string]interface{}) error {
13161325}
13171326
13181327func (schema * Schema ) visitJSONObject (settings * schemaValidationSettings , value map [string ]interface {}) error {
1319- if schemaType := schema .Type ; schemaType != "" && schemaType != "object" {
1320- return schema .expectedType (settings , "object" )
1328+ if schemaType := schema .Type ; schemaType != "" && schemaType != TypeObject {
1329+ return schema .expectedType (settings , TypeObject )
13211330 }
13221331
13231332 var me MultiError
0 commit comments