From ed72e1a2961e22ab6837857081a3f54232db46d5 Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Fri, 10 Apr 2015 10:24:33 +0300 Subject: [PATCH] full supplier key --- engine/calldesc.go | 98 ++++++++++++++++------------------------ engine/responder_test.go | 2 +- 2 files changed, 41 insertions(+), 59 deletions(-) diff --git a/engine/calldesc.go b/engine/calldesc.go index a2ff81cff..1d5b9d846 100644 --- a/engine/calldesc.go +++ b/engine/calldesc.go @@ -704,32 +704,26 @@ func (cd *CallDescriptor) GetLCR(stats StatsInterface) (*LCRCost, error) { for _, supplier := range lcrCost.Entry.GetParams() { lcrCD := cd.Clone() lcrCD.Subject = supplier + var cc *CallCost + var err error if cd.account, err = accountingStorage.GetAccount(cd.GetAccountKey()); err == nil { - if cc, err := lcrCD.debit(cd.account, true, true); err != nil || cc == nil { - lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ - Supplier: supplier, - Error: err, - }) - } else { - lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ - Supplier: supplier, - Cost: cc.Cost, - Duration: cc.GetDuration(), - }) - } + cc, err = lcrCD.debit(cd.account, true, true) } else { - if cc, err := lcrCD.GetCost(); err != nil || cc == nil { - lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ - Supplier: supplier, - Error: err, - }) - } else { - lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ - Supplier: supplier, - Cost: cc.Cost, - Duration: cc.GetDuration(), - }) - } + cc, err = lcrCD.GetCost() + + } + supplier = utils.ConcatenatedKey(cd.Direction, cd.Tenant, cd.Category, supplier) + if err != nil || cc == nil { + lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ + Supplier: supplier, + Error: err, + }) + } else { + lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ + Supplier: supplier, + Cost: cc.Cost, + Duration: cc.GetDuration(), + }) } } } else { @@ -797,42 +791,30 @@ func (cd *CallDescriptor) GetLCR(stats StatsInterface) (*LCRCost, error) { } } } + var cc *CallCost + var err error if cd.account, err = accountingStorage.GetAccount(cd.GetAccountKey()); err == nil { - if cc, err := lcrCD.debit(cd.account, true, true); err != nil || cc == nil { - lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ - Supplier: supplier, - Error: err, - }) - } else { - lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ - Supplier: supplier, - Cost: cc.Cost, - Duration: cc.GetDuration(), - QOS: map[string]float64{ - "ASR": asr, - "ACD": acd, - }, - qosSortParams: qosSortParams, - }) - } + cc, err = lcrCD.debit(cd.account, true, true) } else { - if cc, err := lcrCD.GetCost(); err != nil || cc == nil { - lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ - Supplier: supplier, - Error: err, - }) - } else { - lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ - Supplier: supplier, - Cost: cc.Cost, - Duration: cc.GetDuration(), - QOS: map[string]float64{ - "ASR": asr, - "ACD": acd, - }, - qosSortParams: qosSortParams, - }) - } + cc, err = lcrCD.GetCost() + } + supplier = utils.ConcatenatedKey(cd.Direction, cd.Tenant, cd.Category, supplier) + if err != nil || cc == nil { + lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ + Supplier: supplier, + Error: err, + }) + } else { + lcrCost.SupplierCosts = append(lcrCost.SupplierCosts, &LCRSupplierCost{ + Supplier: supplier, + Cost: cc.Cost, + Duration: cc.GetDuration(), + QOS: map[string]float64{ + "ASR": asr, + "ACD": acd, + }, + qosSortParams: qosSortParams, + }) } } // sort according to strategy diff --git a/engine/responder_test.go b/engine/responder_test.go index 228aece5b..e88c52ee1 100644 --- a/engine/responder_test.go +++ b/engine/responder_test.go @@ -302,6 +302,6 @@ func TestGetLCRStatic(t *testing.T) { if err := rsponder.GetLCR(cd, &lcr); err != nil { t.Error(err) } else if reflect.DeepEqual(eLcr, lcr) { - t.Errorf("Received: %+v", lcr) + t.Errorf("Received: %+v", lcr.SupplierCosts[1]) } }