-
Notifications
You must be signed in to change notification settings - Fork 10
/
validation_message.go
167 lines (136 loc) · 4.73 KB
/
validation_message.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"bytes"
"context"
"encoding/json"
"io"
"github.com/go-openapi/errors"
"github.com/go-openapi/runtime"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/validate"
)
// ValidationMessage ValidationMessage
//
// Model used for validation responses.
//
// swagger:discriminator ValidationMessage Model used for validation responses.
type ValidationMessage interface {
runtime.Validatable
runtime.ContextValidatable
// Name of pipeline / stage / name in the hierarchy where they belong to.
// Example: vrcsPipeline.DEV for a stage
ContainerName() string
SetContainerName(string)
// Field in the input which is causing validation to fail in the deeper JSON.
// Example: inputProperties.jobName.value
FieldName() string
SetFieldName(string)
// Message level.
// Example: SEVERE/WARNING/INFO
Level() string
SetLevel(string)
// Validation message.
// Example: Validation successful
Message() string
SetMessage(string)
// AdditionalProperties in base type shoud be handled just like regular properties
// At this moment, the base type property is pushed down to the subtype
}
type validationMessage struct {
containerNameField string
fieldNameField string
levelField string
messageField string
}
// ContainerName gets the container name of this polymorphic type
func (m *validationMessage) ContainerName() string {
return m.containerNameField
}
// SetContainerName sets the container name of this polymorphic type
func (m *validationMessage) SetContainerName(val string) {
m.containerNameField = val
}
// FieldName gets the field name of this polymorphic type
func (m *validationMessage) FieldName() string {
return m.fieldNameField
}
// SetFieldName sets the field name of this polymorphic type
func (m *validationMessage) SetFieldName(val string) {
m.fieldNameField = val
}
// Level gets the level of this polymorphic type
func (m *validationMessage) Level() string {
return m.levelField
}
// SetLevel sets the level of this polymorphic type
func (m *validationMessage) SetLevel(val string) {
m.levelField = val
}
// Message gets the message of this polymorphic type
func (m *validationMessage) Message() string {
return m.messageField
}
// SetMessage sets the message of this polymorphic type
func (m *validationMessage) SetMessage(val string) {
m.messageField = val
}
// UnmarshalValidationMessageSlice unmarshals polymorphic slices of ValidationMessage
func UnmarshalValidationMessageSlice(reader io.Reader, consumer runtime.Consumer) ([]ValidationMessage, error) {
var elements []json.RawMessage
if err := consumer.Consume(reader, &elements); err != nil {
return nil, err
}
var result []ValidationMessage
for _, element := range elements {
obj, err := unmarshalValidationMessage(element, consumer)
if err != nil {
return nil, err
}
result = append(result, obj)
}
return result, nil
}
// UnmarshalValidationMessage unmarshals polymorphic ValidationMessage
func UnmarshalValidationMessage(reader io.Reader, consumer runtime.Consumer) (ValidationMessage, error) {
// we need to read this twice, so first into a buffer
data, err := io.ReadAll(reader)
if err != nil {
return nil, err
}
return unmarshalValidationMessage(data, consumer)
}
func unmarshalValidationMessage(data []byte, consumer runtime.Consumer) (ValidationMessage, error) {
buf := bytes.NewBuffer(data)
buf2 := bytes.NewBuffer(data)
// the first time this is read is to fetch the value of the Model used for validation responses. property.
var getType struct {
ModelUsedForValidationResponses string `json:"Model used for validation responses."`
}
if err := consumer.Consume(buf, &getType); err != nil {
return nil, err
}
if err := validate.RequiredString("Model used for validation responses.", "body", getType.ModelUsedForValidationResponses); err != nil {
return nil, err
}
// The value of Model used for validation responses. is used to determine which type to create and unmarshal the data into
switch getType.ModelUsedForValidationResponses {
case "ValidationMessage":
var result validationMessage
if err := consumer.Consume(buf2, &result); err != nil {
return nil, err
}
return &result, nil
}
return nil, errors.New(422, "invalid Model used for validation responses. value: %q", getType.ModelUsedForValidationResponses)
}
// Validate validates this validation message
func (m *validationMessage) Validate(formats strfmt.Registry) error {
return nil
}
// ContextValidate validates this validation message based on context it is used
func (m *validationMessage) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}