@@ -32,14 +32,9 @@ type QuerySchedule struct {
3232type QueryParameter struct {
3333 Name string `json:"name"`
3434 Title string `json:"title,omitempty"`
35- Type string `json:"type,omitempty"`
36- Value string `json:"value,omitempty"`
37-
38- // // This is optional and conflicts with the struct types below.
39- // // It is included for types that don't need additional type specific parameters (e.g. text or number).
40- // // They can be specified as an empty block, but `type = "text"` is easier on the eyes.
41- // Type string `json:"type,omitempty"`
4235
36+ // Type specific structs.
37+ // Only one of them may be set.
4338 Text * QueryParameterText `json:"text,omitempty"`
4439 Number * QueryParameterNumber `json:"number,omitempty"`
4540 Enum * QueryParameterEnum `json:"enum,omitempty"`
@@ -48,20 +43,24 @@ type QueryParameter struct {
4843
4944// QueryParameterText ...
5045type QueryParameterText struct {
46+ Value string `json:"value"`
5147}
5248
5349// QueryParameterNumber ...
5450type QueryParameterNumber struct {
51+ Value float64 `json:"value"`
5552}
5653
5754// QueryParameterEnum ...
5855type QueryParameterEnum struct {
56+ Value string `json:"value"`
5957 Options []string `json:"options"`
6058 Multiple * QueryParameterAllowMultiple `json:"multiple,omitempty"`
6159}
6260
6361// QueryParameterQuery ...
6462type QueryParameterQuery struct {
63+ Value string `json:"value"`
6564 QueryID string `json:"query_id"`
6665 Multiple * QueryParameterAllowMultiple `json:"multiple,omitempty"`
6766}
@@ -128,7 +127,6 @@ func (r *queryResource) toAPIObject(d *schema.ResourceData) (*api.Query, error)
128127 ap := api.QueryParameter {
129128 Name : p .Name ,
130129 Title : p .Title ,
131- Value : p .Value ,
132130 }
133131
134132 var iface interface {}
@@ -137,14 +135,17 @@ func (r *queryResource) toAPIObject(d *schema.ResourceData) (*api.Query, error)
137135 case p .Text != nil :
138136 iface = api.QueryParameterText {
139137 QueryParameter : ap ,
138+ Value : p .Text .Value ,
140139 }
141140 case p .Number != nil :
142141 iface = api.QueryParameterNumber {
143142 QueryParameter : ap ,
143+ Value : p .Number .Value ,
144144 }
145145 case p .Enum != nil :
146146 tmp := api.QueryParameterEnum {
147147 QueryParameter : ap ,
148+ Value : p .Enum .Value ,
148149 Options : strings .Join (p .Enum .Options , "\n " ),
149150 }
150151 if p .Enum .Multiple != nil {
@@ -154,25 +155,13 @@ func (r *queryResource) toAPIObject(d *schema.ResourceData) (*api.Query, error)
154155 case p .Query != nil :
155156 tmp := api.QueryParameterQuery {
156157 QueryParameter : ap ,
158+ Value : p .Query .Value ,
157159 QueryID : p .Query .QueryID ,
158160 }
159161 if p .Query .Multiple != nil {
160162 tmp .Multi = p .Query .Multiple .toAPIObject ()
161163 }
162164 iface = tmp
163- case p .Type != "" :
164- switch p .Type {
165- case "text" :
166- iface = api.QueryParameterText {
167- QueryParameter : ap ,
168- }
169- case "number" :
170- iface = api.QueryParameterNumber {
171- QueryParameter : ap ,
172- }
173- default :
174- log .Fatalf ("Don't know what to do for type: %#v" , p .Type )
175- }
176165 default :
177166 log .Fatalf ("Don't know what to do for QueryParameter..." )
178167 }
@@ -211,26 +200,28 @@ func (r *queryResource) fromAPIObject(aq *api.Query, d *schema.ResourceData) err
211200 case * api.QueryParameterText :
212201 p .Name = apv .Name
213202 p .Title = apv .Title
214- p .Type = "text"
215- p .Value = apv .Value
203+ p .Text = & QueryParameterText {
204+ Value : apv .Value ,
205+ }
216206 case * api.QueryParameterNumber :
217207 p .Name = apv .Name
218208 p .Title = apv .Title
219- p .Type = "number"
220- p .Value = apv .Value
209+ p .Number = & QueryParameterNumber {
210+ Value : apv .Value ,
211+ }
221212 case * api.QueryParameterEnum :
222213 p .Name = apv .Name
223214 p .Title = apv .Title
224- p .Value = apv .Value
225215 p .Enum = & QueryParameterEnum {
216+ Value : apv .Value ,
226217 Options : strings .Split (apv .Options , "\n " ),
227218 Multiple : newQueryParameterAllowMultiple (apv .Multi ),
228219 }
229220 case * api.QueryParameterQuery :
230221 p .Name = apv .Name
231222 p .Title = apv .Title
232- p .Value = apv .Value
233223 p .Query = & QueryParameterQuery {
224+ Value : apv .Value ,
234225 QueryID : apv .QueryID ,
235226 Multiple : newQueryParameterAllowMultiple (apv .Multi ),
236227 }
0 commit comments