diff --git a/config/cdrecfg_test.go b/config/cdrecfg_test.go index 392859709..30674bce0 100644 --- a/config/cdrecfg_test.go +++ b/config/cdrecfg_test.go @@ -138,7 +138,7 @@ func TestCdreCfgloadFromJsonCfg(t *testing.T) { } } -func testCdre(t *testing.T) { +func TestCdreAsMapInterface(t *testing.T) { var cdre CdreCfg cfgJSONStr := `{ "cdre": { @@ -157,7 +157,6 @@ func testCdre(t *testing.T) { }, }, }` - eMap := map[string]interface{}{ "export_format": "*file_csv", "export_path": "/var/spool/cgrates/cdre", @@ -169,25 +168,10 @@ func testCdre(t *testing.T) { "attributes_context": "", "fields": []map[string]interface{}{ { - "attribute_id": "", - "blocker": false, - "break_on_success": false, - "cost_shift_digits": 0, - "filters": nil, - "layout": "2006-01-02T15:04:05Z07:00", - "mandatory": false, - "mask_destinationd_id": "", - "mask_length": 0, - "new_branch": false, - "padding": "", - "path": "*exp.CGRID", - "rounding_decimals": nil, - "strip": "", - "tag": "*exp.CGRID", - "timezone": "", - "type": "*variable", - "value": "~*req.CGRID", - "width": 0, + "path": "*exp.CGRID", + "tag": "*exp.CGRID", + "type": "*variable", + "value": "~*req.CGRID", }, }, } diff --git a/config/fctemplate.go b/config/fctemplate.go index 3085a1787..44ee84348 100755 --- a/config/fctemplate.go +++ b/config/fctemplate.go @@ -195,33 +195,69 @@ func (self *FCTemplate) Clone() *FCTemplate { return cln } -func (fc *FCTemplate) AsMapInterface() map[string]interface{} { - values := make([]string, len(fc.Value)) - for i, item := range fc.Value { - values[i] = item.Rules +func (fc *FCTemplate) AsMapInterface() (mp map[string]interface{}) { + mp = make(map[string]interface{}) + if fc.Tag != utils.EmptyString { + mp[utils.TagCfg] = fc.Tag } - asInitial := strings.Join(values, "") - - return map[string]interface{}{ - utils.TagCfg: fc.Tag, - utils.TypeCf: fc.Type, - utils.PathCfg: fc.Path, - utils.FiltersCfg: fc.Filters, - utils.ValueCfg: asInitial, - utils.WidthCfg: fc.Width, - utils.StripCfg: fc.Strip, - utils.PaddingCfg: fc.Padding, - utils.MandatoryCfg: fc.Mandatory, - utils.AttributeIDCfg: fc.AttributeID, - utils.NewBranchCfg: fc.NewBranch, - utils.TimezoneCfg: fc.Timezone, - utils.BlockerCfg: fc.Blocker, - utils.BreakOnSuccessCfg: fc.BreakOnSuccess, - utils.LayoutCfg: fc.Layout, - utils.CostShiftDigitsCfg: fc.CostShiftDigits, - utils.RoundingDecimalsCfg: fc.RoundingDecimals, - utils.MaskDestIDCfg: fc.MaskDestID, - utils.MaskLenCfg: fc.MaskLen, + if fc.Type != utils.EmptyString { + mp[utils.TypeCf] = fc.Type + } + if fc.Path != utils.EmptyString { + mp[utils.PathCfg] = fc.Path + } + if fc.Filters != nil { + mp[utils.FiltersCfg] = fc.Filters + } + if fc.Value != nil { + values := make([]string, len(fc.Value)) + for i, item := range fc.Value { + values[i] = item.Rules + } + mp[utils.ValueCfg] = strings.Join(values, utils.EmptyString) + } + if fc.Width != 0 { + mp[utils.WidthCfg] = fc.Width + } + if fc.Strip != utils.EmptyString { + mp[utils.StripCfg] = fc.Strip + } + if fc.Padding != utils.EmptyString { + mp[utils.PaddingCfg] = fc.Padding + } + if fc.Mandatory != false { + mp[utils.MandatoryCfg] = fc.Mandatory + } + if fc.AttributeID != utils.EmptyString { + mp[utils.AttributeIDCfg] = fc.AttributeID + } + if fc.NewBranch != false { + mp[utils.NewBranchCfg] = fc.NewBranch + } + if fc.Timezone != utils.EmptyString { + mp[utils.TimezoneCfg] = fc.Timezone + } + if fc.Blocker != false { + mp[utils.BlockerCfg] = fc.Blocker + } + if fc.BreakOnSuccess != false { + mp[utils.BreakOnSuccessCfg] = fc.BreakOnSuccess + } + if fc.Layout != time.RFC3339 { + mp[utils.LayoutCfg] = fc.Layout + } + if fc.CostShiftDigits != 0 { + mp[utils.CostShiftDigitsCfg] = fc.CostShiftDigits + } + if fc.RoundingDecimals != nil { + mp[utils.RoundingDecimalsCfg] = *fc.RoundingDecimals + } + if fc.MaskDestID != utils.EmptyString { + mp[utils.MaskDestIDCfg] = fc.MaskDestID + } + if fc.MaskLen != 0 { + mp[utils.MaskLenCfg] = fc.MaskLen } + return } diff --git a/config/rpcconn_test.go b/config/rpcconn_test.go index 3ca9386c3..f8ec2647f 100644 --- a/config/rpcconn_test.go +++ b/config/rpcconn_test.go @@ -25,7 +25,7 @@ import ( "github.com/cgrates/cgrates/utils" ) -func TestRPCConns(t *testing.T) { +func TestRPCConnsAsMapInterface(t *testing.T) { var cfg RPCConn cfgJSONStr := `{ "rpc_conns": {