diff --git a/engine/cdrs.go b/engine/cdrs.go index ae899ef31..630b53634 100644 --- a/engine/cdrs.go +++ b/engine/cdrs.go @@ -126,7 +126,7 @@ func (cdrS *CDRServer) rateSCostForEvent(ctx *context.Context, cgrEv *utils.CGRE cgrEv, &rpCost); err != nil { return } - cgrEv.Event[utils.MetaRateSCost] = rpCost + cgrEv.APIOpts[utils.MetaRateSCost] = rpCost return } @@ -137,7 +137,7 @@ func (cdrS *CDRServer) accountSDebitEvent(ctx *context.Context, cgrEv *utils.CGR utils.AccountSv1DebitAbstracts, cgrEv, acntCost); err != nil { return } - cgrEv.Event[utils.MetaAccountSCost] = acntCost + cgrEv.APIOpts[utils.MetaAccountSCost] = acntCost return } @@ -258,7 +258,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e return } if acntS { - if ecCostIface, wasCharged := cgrEv.Event[utils.MetaAccountSCost]; wasCharged { + if ecCostIface, wasCharged := cgrEv.APIOpts[utils.MetaAccountSCost]; wasCharged { // before converting into EventChargers, we must get the JSON encoding and Unmarshal it into an EventChargers var btsEvCh []byte btsEvCh, err = json.Marshal(ecCostIface.(map[string]interface{})) diff --git a/engine/cdrs_test.go b/engine/cdrs_test.go index 41968ad63..0f1aba9fd 100644 --- a/engine/cdrs_test.go +++ b/engine/cdrs_test.go @@ -711,17 +711,18 @@ func TestCDRsRateProcessEventMock(t *testing.T) { Tenant: "cgrates.org", ID: "testID", Event: map[string]interface{}{ - utils.MetaRateSCost: utils.RateProfileCost{}, - "Resources": "ResourceProfile1", - utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), - "UsageInterval": "1s", - "PddInterval": "1s", - utils.Weight: "20.0", - utils.Usage: 135 * time.Second, - utils.Cost: 123.0, + + "Resources": "ResourceProfile1", + utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), + "UsageInterval": "1s", + "PddInterval": "1s", + utils.Weight: "20.0", + utils.Usage: 135 * time.Second, + utils.Cost: 123.0, }, APIOpts: map[string]interface{}{ - utils.Subsys: utils.MetaRateS, + utils.MetaRateSCost: utils.RateProfileCost{}, + utils.Subsys: utils.MetaRateS, }, } if !reflect.DeepEqual(expected, cgrEv) { @@ -768,17 +769,18 @@ func TestCDRsAccountProcessEventMock(t *testing.T) { Tenant: "cgrates.org", ID: "testID", Event: map[string]interface{}{ - utils.MetaAccountSCost: &utils.EventCharges{}, - "Resources": "ResourceProfile1", - utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), - "UsageInterval": "1s", - "PddInterval": "1s", - utils.Weight: "20.0", - utils.Usage: 135 * time.Second, - utils.Cost: 123.0, + + "Resources": "ResourceProfile1", + utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), + "UsageInterval": "1s", + "PddInterval": "1s", + utils.Weight: "20.0", + utils.Usage: 135 * time.Second, + utils.Cost: 123.0, }, APIOpts: map[string]interface{}{ - utils.Subsys: utils.MetaAccounts, + utils.MetaAccountSCost: &utils.EventCharges{}, + utils.Subsys: utils.MetaAccounts, }, } err := newCDRSrv.accountSDebitEvent(context.Background(), cgrEv) @@ -789,17 +791,18 @@ func TestCDRsAccountProcessEventMock(t *testing.T) { Tenant: "cgrates.org", ID: "testID", Event: map[string]interface{}{ - utils.MetaAccountSCost: cgrEv.Event[utils.MetaAccountSCost], - "Resources": "ResourceProfile1", - utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), - "UsageInterval": "1s", - "PddInterval": "1s", - utils.Weight: "20.0", - utils.Usage: 135 * time.Second, - utils.Cost: 123.0, + + "Resources": "ResourceProfile1", + utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), + "UsageInterval": "1s", + "PddInterval": "1s", + utils.Weight: "20.0", + utils.Usage: 135 * time.Second, + utils.Cost: 123.0, }, APIOpts: map[string]interface{}{ - utils.Subsys: utils.MetaAccounts, + utils.MetaAccountSCost: cgrEv.APIOpts[utils.MetaAccountSCost], + utils.Subsys: utils.MetaAccounts, }, } if !reflect.DeepEqual(expected, cgrEv) { diff --git a/general_tests/ld_process_match_ac_it_test.go b/general_tests/ld_process_match_ac_it_test.go index b6becdab0..c578fbb6a 100644 --- a/general_tests/ld_process_match_ac_it_test.go +++ b/general_tests/ld_process_match_ac_it_test.go @@ -186,6 +186,16 @@ func testLdPrMatchAcCDRSProcessEvent(t *testing.T) { Tenant: "cgrates.org", ID: "TestEv1", Event: map[string]interface{}{ + + "Account": "1001", + "Destination": "1002", + "OriginID": "TestEv1", + "RequestType": "*prepaid", + "Subject": "1001", + "ToR": "*voice", + }, + + APIOpts: map[string]interface{}{ utils.MetaAccountSCost: map[string]interface{}{ "Abstracts": 0, "Accounting": map[string]interface{}{}, @@ -224,15 +234,6 @@ func testLdPrMatchAcCDRSProcessEvent(t *testing.T) { "Rating": map[string]interface{}{}, "UnitFactors": map[string]interface{}{}, }, - "Account": "1001", - "Destination": "1002", - "OriginID": "TestEv1", - "RequestType": "*prepaid", - "Subject": "1001", - "ToR": "*voice", - }, - - APIOpts: map[string]interface{}{ utils.MetaUsage: 2 * time.Minute, utils.OptsCDRsExport: true, utils.OptsRateS: false, diff --git a/general_tests/ld_process_match_rt_it_test.go b/general_tests/ld_process_match_rt_it_test.go index dd3562602..936b5d4d5 100644 --- a/general_tests/ld_process_match_rt_it_test.go +++ b/general_tests/ld_process_match_rt_it_test.go @@ -179,14 +179,23 @@ func testLdPrMatchRtCDRSProcessEvent(t *testing.T) { if testRPCrt1.Event == nil { t.Fatal("The rpc was not called") } - costIntervalRatesID := testRPCrt1.Event.Event["*rateSCost"].(map[string]interface{})["CostIntervals"].([]interface{})[0].(map[string]interface{})["Increments"].([]interface{})[0].(map[string]interface{})["RateID"] + costIntervalRatesID := testRPCrt1.Event.APIOpts[utils.MetaRateSCost].(map[string]interface{})["CostIntervals"].([]interface{})[0].(map[string]interface{})["Increments"].([]interface{})[0].(map[string]interface{})["RateID"] expected2 := &utils.CGREventWithEeIDs{ EeIDs: nil, CGREvent: &utils.CGREvent{ Tenant: "cgrates.org", ID: "TestEv1", Event: map[string]interface{}{ - "*rateSCost": map[string]interface{}{ + "Account": "1001", + "Destination": "1002", + "OriginID": "TestEv1", + "RequestType": "*prepaid", + "Subject": "1001", + "ToR": "*voice", + "Usage": 60000000000, + }, + APIOpts: map[string]interface{}{ + utils.MetaRateSCost: map[string]interface{}{ "Altered": nil, utils.Cost: 0.4, "CostIntervals": []map[string]interface{}{ @@ -216,15 +225,6 @@ func testLdPrMatchRtCDRSProcessEvent(t *testing.T) { }, }, }, - "Account": "1001", - "Destination": "1002", - "OriginID": "TestEv1", - "RequestType": "*prepaid", - "Subject": "1001", - "ToR": "*voice", - "Usage": 60000000000, - }, - APIOpts: map[string]interface{}{ utils.OptsRateS: true, utils.OptsCDRsExport: true, utils.OptsAccountS: false, diff --git a/rates/rates_test.go b/rates/rates_test.go index 9b20052e2..99a4d7aeb 100644 --- a/rates/rates_test.go +++ b/rates/rates_test.go @@ -1147,6 +1147,8 @@ func TestCDRProcessRatesCostForEvent(t *testing.T) { ID: "TestCDRProcessRatesCostForEvent", Event: map[string]interface{}{ utils.AccountField: "1001", + }, + APIOpts: map[string]interface{}{ utils.MetaRateSCost: utils.RateProfileCost{ ID: "TEST_RATE_PROCESS_CDR", Cost: utils.NewDecimal(int64(15*time.Second)/10, 0), @@ -1155,7 +1157,7 @@ func TestCDRProcessRatesCostForEvent(t *testing.T) { Increments: []*utils.RateSIncrementCost{ { Usage: utils.NewDecimal(int64(15*time.Second), 0), - RateID: cgrEv.Event[utils.MetaRateSCost].(utils.RateProfileCost).CostIntervals[0].Increments[0].RateID, + RateID: cgrEv.APIOpts[utils.MetaRateSCost].(utils.RateProfileCost).CostIntervals[0].Increments[0].RateID, RateIntervalIndex: 0, CompressFactor: 150, }, @@ -1164,7 +1166,7 @@ func TestCDRProcessRatesCostForEvent(t *testing.T) { }, }, Rates: map[string]*utils.IntervalRate{ - cgrEv.Event[utils.MetaRateSCost].(utils.RateProfileCost).CostIntervals[0].Increments[0].RateID: { + cgrEv.APIOpts[utils.MetaRateSCost].(utils.RateProfileCost).CostIntervals[0].Increments[0].RateID: { IntervalStart: utils.NewDecimal(0, 0), RecurrentFee: utils.NewDecimal(1, 1), Unit: utils.NewDecimal(1, 0), @@ -1172,8 +1174,6 @@ func TestCDRProcessRatesCostForEvent(t *testing.T) { }, }, }, - }, - APIOpts: map[string]interface{}{ utils.MetaUsage: 15 * time.Second, }, }