Skip to content

Commit b5517a7

Browse files
pieternnfx
authored andcommitted
Deduplicate parameter type name strings
1 parent e9c5582 commit b5517a7

File tree

1 file changed

+25
-14
lines changed

1 file changed

+25
-14
lines changed

sqlanalytics/api/query.go

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,19 @@ func (o *QueryOptions) UnmarshalJSON(b []byte) error {
6666
// Acquire pointer to the correct parameter type.
6767
var i interface{}
6868
switch qp.Type {
69-
case "text":
69+
case queryParameterTextTypeName:
7070
i = &QueryParameterText{}
71-
case "number":
71+
case queryParameterNumberTypeName:
7272
i = &QueryParameterNumber{}
73-
case "enum":
73+
case queryParameterEnumTypeName:
7474
i = &QueryParameterEnum{}
75-
case "query":
75+
case queryParameterQueryTypeName:
7676
i = &QueryParameterQuery{}
77-
case "date":
77+
case queryParameterDateTypeName:
7878
i = &QueryParameterDate{}
79-
case "datetime-local":
79+
case queryParameterDateTimeTypeName:
8080
i = &QueryParameterDateTime{}
81-
case "datetime-with-seconds":
81+
case queryParameterDateTimeSecTypeName:
8282
i = &QueryParameterDateTimeSec{}
8383
default:
8484
panic("don't know what to do...")
@@ -103,6 +103,17 @@ type QueryParameter struct {
103103
Type string `json:"type"`
104104
}
105105

106+
// Valid type values.
107+
const (
108+
queryParameterTextTypeName = "text"
109+
queryParameterNumberTypeName = "number"
110+
queryParameterEnumTypeName = "enum"
111+
queryParameterQueryTypeName = "query"
112+
queryParameterDateTypeName = "date"
113+
queryParameterDateTimeTypeName = "datetime-local"
114+
queryParameterDateTimeSecTypeName = "datetime-with-seconds"
115+
)
116+
106117
// QueryParameterText ...
107118
type QueryParameterText struct {
108119
QueryParameter
@@ -112,7 +123,7 @@ type QueryParameterText struct {
112123

113124
// MarshalJSON sets the type before marshaling.
114125
func (p QueryParameterText) MarshalJSON() ([]byte, error) {
115-
p.QueryParameter.Type = "text"
126+
p.QueryParameter.Type = queryParameterTextTypeName
116127
type localQueryParameter QueryParameterText
117128
return json.Marshal((localQueryParameter)(p))
118129
}
@@ -126,7 +137,7 @@ type QueryParameterNumber struct {
126137

127138
// MarshalJSON sets the type before marshaling.
128139
func (p QueryParameterNumber) MarshalJSON() ([]byte, error) {
129-
p.QueryParameter.Type = "number"
140+
p.QueryParameter.Type = queryParameterNumberTypeName
130141
type localQueryParameter QueryParameterNumber
131142
return json.Marshal((localQueryParameter)(p))
132143
}
@@ -149,7 +160,7 @@ type QueryParameterEnum struct {
149160

150161
// MarshalJSON sets the type before marshaling.
151162
func (p QueryParameterEnum) MarshalJSON() ([]byte, error) {
152-
p.QueryParameter.Type = "enum"
163+
p.QueryParameter.Type = queryParameterEnumTypeName
153164
type localQueryParameter QueryParameterEnum
154165
return json.Marshal((localQueryParameter)(p))
155166
}
@@ -165,7 +176,7 @@ type QueryParameterQuery struct {
165176

166177
// MarshalJSON sets the type before marshaling.
167178
func (p QueryParameterQuery) MarshalJSON() ([]byte, error) {
168-
p.QueryParameter.Type = "query"
179+
p.QueryParameter.Type = queryParameterQueryTypeName
169180
type localQueryParameter QueryParameterQuery
170181
return json.Marshal((localQueryParameter)(p))
171182
}
@@ -179,7 +190,7 @@ type QueryParameterDate struct {
179190

180191
// MarshalJSON sets the type before marshaling.
181192
func (p QueryParameterDate) MarshalJSON() ([]byte, error) {
182-
p.QueryParameter.Type = "date"
193+
p.QueryParameter.Type = queryParameterDateTypeName
183194
type localQueryParameter QueryParameterDate
184195
return json.Marshal((localQueryParameter)(p))
185196
}
@@ -193,7 +204,7 @@ type QueryParameterDateTime struct {
193204

194205
// MarshalJSON sets the type before marshaling.
195206
func (p QueryParameterDateTime) MarshalJSON() ([]byte, error) {
196-
p.QueryParameter.Type = "datetime-local"
207+
p.QueryParameter.Type = queryParameterDateTimeTypeName
197208
type localQueryParameter QueryParameterDateTime
198209
return json.Marshal((localQueryParameter)(p))
199210
}
@@ -207,7 +218,7 @@ type QueryParameterDateTimeSec struct {
207218

208219
// MarshalJSON sets the type before marshaling.
209220
func (p QueryParameterDateTimeSec) MarshalJSON() ([]byte, error) {
210-
p.QueryParameter.Type = "datetime-with-seconds"
221+
p.QueryParameter.Type = queryParameterDateTimeSecTypeName
211222
type localQueryParameter QueryParameterDateTimeSec
212223
return json.Marshal((localQueryParameter)(p))
213224
}

0 commit comments

Comments
 (0)