@@ -220,30 +220,34 @@ func (p Parser) ParseFindOne(modelName string, data map[string]interface{}) (op
220
220
Key : fieldName ,
221
221
Val : value ,
222
222
},
223
- ModelName : modelName ,
223
+ ModelID : m . ID ,
224
224
}
225
225
return
226
226
}
227
227
228
228
func (p Parser ) ParseFindMany (modelName string , data map [string ]interface {}) (op FindManyOperation , err error ) {
229
- q , err := p .ParseQuery (modelName , data )
229
+ m , err := p .tx .GetModel (modelName )
230
+ if err != nil {
231
+ return
232
+ }
233
+ q , err := p .ParseWhere (modelName , data )
230
234
if err != nil {
231
235
return
232
236
}
233
237
234
238
op = FindManyOperation {
235
- Query : q ,
236
- ModelName : modelName ,
239
+ Where : q ,
240
+ ModelID : m . ID ,
237
241
}
238
242
return op , nil
239
243
}
240
244
241
- func (p Parser ) parseCompositeQueryList (modelName string , opVal interface {}) (ql []Query , err error ) {
245
+ func (p Parser ) parseCompositeQueryList (modelName string , opVal interface {}) (ql []Where , err error ) {
242
246
opList := opVal .([]interface {})
243
247
for _ , opData := range opList {
244
248
opMap := opData .(map [string ]interface {})
245
- var opQ Query
246
- opQ , err = p .ParseQuery (modelName , opMap )
249
+ var opQ Where
250
+ opQ , err = p .ParseWhere (modelName , opMap )
247
251
if err != nil {
248
252
return
249
253
}
@@ -252,12 +256,12 @@ func (p Parser) parseCompositeQueryList(modelName string, opVal interface{}) (ql
252
256
return
253
257
}
254
258
255
- func (p Parser ) ParseQuery (modelName string , data map [string ]interface {}) (q Query , err error ) {
259
+ func (p Parser ) ParseWhere (modelName string , data map [string ]interface {}) (q Where , err error ) {
256
260
m , err := p .tx .GetModel (modelName )
257
261
if err != nil {
258
262
return
259
263
}
260
- q = Query {}
264
+ q = Where {}
261
265
fc , err := parseFieldCriteria (m , data )
262
266
if err != nil {
263
267
return
@@ -275,23 +279,23 @@ func (p Parser) ParseQuery(modelName string, data map[string]interface{}) (q Que
275
279
q .AggregateRelationshipCriteria = arc
276
280
277
281
if orVal , ok := data ["OR" ]; ok {
278
- var orQL []Query
282
+ var orQL []Where
279
283
orQL , err = p .parseCompositeQueryList (modelName , orVal )
280
284
if err != nil {
281
285
return
282
286
}
283
287
q .Or = orQL
284
288
}
285
289
if andVal , ok := data ["AND" ]; ok {
286
- var andQL []Query
290
+ var andQL []Where
287
291
andQL , err = p .parseCompositeQueryList (modelName , andVal )
288
292
if err != nil {
289
293
return
290
294
}
291
295
q .And = andQL
292
296
}
293
297
if notVal , ok := data ["NOT" ]; ok {
294
- var notQL []Query
298
+ var notQL []Where
295
299
notQL , err = p .parseCompositeQueryList (modelName , notVal )
296
300
if err != nil {
297
301
return
@@ -406,18 +410,20 @@ func (p Parser) parseRelationshipCriterion(b db.Binding, value interface{}) (rc
406
410
return
407
411
}
408
412
rc = RelationshipCriterion {
409
- Binding : b ,
410
- RelatedFieldCriteria : fc ,
411
- RelatedRelationshipCriteria : rrc ,
412
- RelatedAggregateRelationshipCriteria : arrc ,
413
+ Binding : b ,
414
+ Where : Where {
415
+ FieldCriteria : fc ,
416
+ RelationshipCriteria : rrc ,
417
+ AggregateRelationshipCriteria : arrc ,
418
+ },
413
419
}
414
420
return
415
421
}
416
422
417
423
func (p Parser ) parseInclusion (b db.Binding , value interface {}) Inclusion {
418
424
if v , ok := value .(bool ); ok {
419
425
if v {
420
- return Inclusion {Binding : b , Query : Query {}}
426
+ return Inclusion {Binding : b , Where : Where {}}
421
427
} else {
422
428
panic ("Include specified as false?" )
423
429
}
0 commit comments