CDR filter on OriginIDs

This commit is contained in:
TeoV
2018-01-12 15:53:50 +02:00
committed by Dan Christian Bogos
parent 537b0241df
commit 6e384d0dea
4 changed files with 23 additions and 2 deletions

View File

@@ -526,6 +526,13 @@ func testGetCDRs(cfg *config.CGRConfig) error {
} else if len(CDRs) != 5 {
return fmt.Errorf("testGetCDRs #23, unexpected number of CDRs returned: %+v", CDRs)
}
// Filter on OriginID
if CDRs, _, err := cdrStorage.GetCDRs(&utils.CDRsFilter{OriginIDs: []string{
"testevent1", "testevent3"}}, false); err != nil {
return fmt.Errorf("testGetCDRs #22 err: %v", err)
} else if len(CDRs) != 5 {
return fmt.Errorf("testGetCDRs #23, unexpected number of CDRs returned: %+v", CDRs)
}
// Filter on TOR
if CDRs, _, err := cdrStorage.GetCDRs(&utils.CDRsFilter{ToRs: []string{utils.SMS}}, false); err != nil {
return fmt.Errorf("testGetCDRs #23 err: %v", err)

View File

@@ -1004,6 +1004,7 @@ func (ms *MongoStorage) GetCDRs(qryFltr *utils.CDRsFilter, remove bool) ([]*CDR,
filters := bson.M{
CGRIDLow: bson.M{"$in": qryFltr.CGRIDs, "$nin": qryFltr.NotCGRIDs},
RunIDLow: bson.M{"$in": qryFltr.RunIDs, "$nin": qryFltr.NotRunIDs},
OriginIDLow: bson.M{"$in": qryFltr.OriginIDs, "$nin": qryFltr.NotOriginIDs},
OrderIDLow: bson.M{"$gte": qryFltr.OrderIDStart, "$lt": qryFltr.OrderIDEnd},
ToRLow: bson.M{"$in": qryFltr.ToRs, "$nin": qryFltr.NotToRs},
CDRHostLow: bson.M{"$in": qryFltr.OriginHosts, "$nin": qryFltr.NotOriginHosts},

View File

@@ -868,6 +868,12 @@ func (self *SQLStorage) GetCDRs(qryFltr *utils.CDRsFilter, remove bool) ([]*CDR,
if len(qryFltr.NotRunIDs) != 0 {
q = q.Where("run_id not in (?)", qryFltr.NotRunIDs)
}
if len(qryFltr.OriginIDs) != 0 {
q = q.Where("origin_id in (?)", qryFltr.OriginIDs)
}
if len(qryFltr.NotOriginIDs) != 0 {
q = q.Where("origin_id not in (?)", qryFltr.NotOriginIDs)
}
if len(qryFltr.ToRs) != 0 {
q = q.Where("tor in (?)", qryFltr.ToRs)
}