Updated datadbcfg AsMapInterface method

This commit is contained in:
porosnicuadrian
2020-09-16 17:13:54 +03:00
committed by Dan Christian Bogos
parent 34ce1addab
commit 893c1af1d1
4 changed files with 27 additions and 43 deletions

View File

@@ -169,8 +169,12 @@ func (itm *ItemOpt) AsMapInterface() (initialMP map[string]interface{}) {
initialMP = map[string]interface{}{
utils.RemoteCfg: itm.Remote,
utils.ReplicateCfg: itm.Replicate,
utils.RouteID: itm.RouteID,
utils.APIKey: itm.APIKey,
}
if itm.APIKey != utils.EmptyString {
initialMP[utils.ApiKeyCfg] = itm.APIKey
}
if itm.RouteID != utils.EmptyString {
initialMP[utils.RouteIDCfg] = itm.RouteID
}
return
}

View File

@@ -403,9 +403,6 @@ func TestDataDbCfgloadFromJsonCfgItems(t *testing.T) {
}
func TestDataDbCfgAsMapInterface(t *testing.T) {
var dbcfg DataDbCfg
dbcfg.Opts = make(map[string]interface{})
dbcfg.Items = make(map[string]*ItemOpt)
cfgJSONStr := `{
"data_db": {
"db_type": "*redis",
@@ -421,27 +418,27 @@ func TestDataDbCfgAsMapInterface(t *testing.T) {
"remote_conns":[],
"replication_conns":[],
"items":{
"*accounts":{"remote":true, "replicate":false},
"*reverse_destinations": {"remote":false, "replicate":false},
"*accounts":{"remote":true, "replicate":false, "api_key": "randomVal", "route_id": "randomVal"},
"*reverse_destinations": {"remote":false, "replicate":false, "api_key": "randomVal", "route_id": "randomVal"},
},
},
}`
eMap := map[string]interface{}{
"db_type": "*redis",
"db_host": "127.0.0.1",
"db_port": 6379,
"db_name": "10",
"db_user": "cgrates",
"db_password": "",
"opts": map[string]interface{}{
"redis_sentinel": "",
"query_timeout": "10s",
utils.DataDbTypeCfg: "*redis",
utils.DataDbHostCfg: "127.0.0.1",
utils.DataDbPortCfg: 6379,
utils.DataDbNameCfg: "10",
utils.DataDbUserCfg: "cgrates",
utils.DataDbPassCfg: "",
utils.OptsCfg: map[string]interface{}{
utils.RedisSentinelNameCfg: "",
utils.QueryTimeoutCfg: "10s",
},
"remote_conns": []string{},
"replication_conns": []string{},
"items": map[string]interface{}{
"*accounts": map[string]interface{}{"remote": true, "replicate": false, "ApiKey": "", "RouteID": ""},
"*reverse_destinations": map[string]interface{}{"remote": false, "replicate": false, "ApiKey": "", "RouteID": ""},
utils.RemoteConnsCfg: []string{},
utils.ReplicationConnsCfg: []string{},
utils.ItemsCfg: map[string]interface{}{
utils.MetaAccounts: map[string]interface{}{utils.RemoteCfg: true, utils.ReplicateCfg: false, utils.ApiKeyCfg: "randomVal", utils.RouteIDCfg: "randomVal"},
utils.MetaReverseDestinations: map[string]interface{}{utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.ApiKeyCfg: "randomVal", utils.RouteIDCfg: "randomVal"},
},
}
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
@@ -461,24 +458,4 @@ func TestDataDbCfgAsMapInterface(t *testing.T) {
rcv[utils.ItemsCfg].(map[string]interface{})[utils.MetaReverseDestinations])
}
}
/*if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else if rcv := cgrCfg.dataDbCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
*/
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
t.Error(err)
} else if jsnDataDbCfg, err := jsnCfg.DbJsonCfg(DATADB_JSN); err != nil {
t.Error(err)
} else if err = dbcfg.loadFromJsonCfg(jsnDataDbCfg); err != nil {
t.Error(err)
} else if rcv, err := dbcfg.AsMapInterface(); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v, recieved %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}

View File

@@ -187,8 +187,8 @@ func TestStorDbCfgAsMapInterface(t *testing.T) {
"sslmode": "disable",
},
"items": map[string]interface{}{
"session_costs": map[string]interface{}{"remote": false, "replicate": false, "ApiKey": "", "RouteID": ""},
"cdrs": map[string]interface{}{"remote": false, "replicate": false, "ApiKey": "", "RouteID": ""},
"session_costs": map[string]interface{}{"remote": false, "replicate": false},
"cdrs": map[string]interface{}{"remote": false, "replicate": false},
},
}
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {

View File

@@ -1914,6 +1914,8 @@ const (
// ItemOpt
const (
ApiKeyCfg = "api_key"
RouteIDCfg = "route_id"
RemoteCfg = "remote"
ReplicateCfg = "replicate"
TTLCfg = "ttl"
@@ -1999,6 +2001,7 @@ const (
RouteSConnsCfg = "routes_conns"
AttrSConnsCfg = "attributes_conns"
ReplicationConnsCfg = "replication_conns"
RemoteConnsCfg = "remote_conns"
DebitIntervalCfg = "debit_interval"
StoreSCostsCfg = "store_session_costs"
MinCallDurationCfg = "min_call_duration"