mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-15 05:09:54 +05:00
fix for regexp meta chars
This commit is contained in:
@@ -764,13 +764,13 @@ func TestMongoGetStoredCdrs(t *testing.T) {
|
||||
t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs))
|
||||
}
|
||||
// Filter on destPrefix
|
||||
if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{DestPrefixes: []string{"\\+498651"}}); err != nil {
|
||||
if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{DestPrefixes: []string{"+498651"}}); err != nil {
|
||||
t.Error(err.Error())
|
||||
} else if len(storedCdrs) != 4 {
|
||||
t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs))
|
||||
}
|
||||
// Filter on multiple destPrefixes
|
||||
if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{DestPrefixes: []string{"1001", "\\+498651"}}); err != nil {
|
||||
if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{DestPrefixes: []string{"1001", "+498651"}}); err != nil {
|
||||
t.Error(err.Error())
|
||||
} else if len(storedCdrs) != 5 {
|
||||
t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs))
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package engine
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -48,7 +49,7 @@ func (ms *MongoStorage) GetTpTableIds(tpid, table string, distinct utils.TPDisti
|
||||
var searchItems []bson.M
|
||||
for _, d := range distinct {
|
||||
searchItems = append(searchItems, bson.M{d: bson.RegEx{
|
||||
Pattern: ".*" + pag.SearchTerm + ".*",
|
||||
Pattern: ".*" + regexp.QuoteMeta(pag.SearchTerm) + ".*",
|
||||
Options: ""}})
|
||||
}
|
||||
findMap["$and"] = []bson.M{bson.M{"$or": searchItems}}
|
||||
@@ -805,14 +806,14 @@ func (ms *MongoStorage) GetStoredCdrs(qryFltr *utils.CdrsFilter) ([]*StoredCdr,
|
||||
if len(qryFltr.DestPrefixes) != 0 {
|
||||
var regexes []bson.RegEx
|
||||
for _, prefix := range qryFltr.DestPrefixes {
|
||||
regexes = append(regexes, bson.RegEx{Pattern: prefix + ".*"})
|
||||
regexes = append(regexes, bson.RegEx{Pattern: regexp.QuoteMeta(prefix) + ".*"})
|
||||
}
|
||||
filters["destination"] = bson.M{"$in": regexes}
|
||||
}
|
||||
if len(qryFltr.NotDestPrefixes) != 0 {
|
||||
var notRegexes []bson.RegEx
|
||||
for _, prefix := range qryFltr.DestPrefixes {
|
||||
notRegexes = append(notRegexes, bson.RegEx{Pattern: prefix + ".*"})
|
||||
notRegexes = append(notRegexes, bson.RegEx{Pattern: regexp.QuoteMeta(prefix) + ".*"})
|
||||
}
|
||||
if m, ok := filters["destination"]; ok {
|
||||
m.(bson.M)["$nin"] = notRegexes
|
||||
|
||||
Reference in New Issue
Block a user