-
Notifications
You must be signed in to change notification settings - Fork 5
/
tag.go
executable file
·69 lines (58 loc) · 1.42 KB
/
tag.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package swaggos
import (
"reflect"
"github.com/go-openapi/spec"
)
type documentTag struct {
tag reflect.StructTag
attribute *Attribute
}
func newTags(tag reflect.StructTag) *documentTag {
dt := new(documentTag)
dt.tag = tag
a := &Attribute{}
a.parseTag(tag)
dt.attribute = a
return dt
}
func (t *documentTag) name() string {
if t.attribute.Model != "" {
return t.attribute.Model
}
if t.attribute.JSON != "" {
return t.attribute.JSON
}
return ""
}
func (t *documentTag) ignore() bool {
return t.attribute.Ignore
}
func (t *documentTag) jsonTag() string {
return t.tag.Get("json")
}
func (t *documentTag) required() bool {
return t.attribute.Required
}
func (t *documentTag) Attribute() *Attribute {
return t.attribute
}
func (t *documentTag) jsonName() string {
return t.attribute.JSON
}
func (t *documentTag) mergeSchema(schema spec.Schema) spec.Schema {
schema.Description = t.attribute.Description
schema.Example = t.attribute.Example
schema.Nullable = t.attribute.Nullable
schema.Format = t.attribute.Format
schema.Title = t.attribute.Title
schema.MaxLength = t.attribute.MaxLength
schema.MinLength = t.attribute.MinLength
schema.Pattern = t.attribute.Pattern
schema.Maximum = t.attribute.Maximum
schema.Minimum = t.attribute.Minimum
schema.MaxItems = t.attribute.MaxItems
schema.MinItems = t.attribute.MinItems
schema.Enum = t.attribute.Enum
schema.Default = t.attribute.Default
return schema
}