From dfac210f17cc7dc4ecf0ff940e9209aaf50eeefb Mon Sep 17 00:00:00 2001 From: DanB Date: Sun, 31 Jan 2021 19:18:23 +0100 Subject: [PATCH] AccountS - concreteBalance should not have concretes inside --- accounts/accounts.go | 16 ++++++++++------ accounts/concretebalance.go | 11 +++++------ accounts/libaccounts.go | 4 ++-- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/accounts/accounts.go b/accounts/accounts.go index 0f667c999..35def02e1 100644 --- a/accounts/accounts.go +++ b/accounts/accounts.go @@ -121,26 +121,30 @@ func (aS *AccountS) matchingAccountForEvent(tnt string, cgrEv *utils.CGREvent, a // accountProcessEvent implements event processing by an Account func (aS *AccountS) accountProcessEvent(acnt *utils.AccountProfile, cgrEv *utils.CGREvent) (ec *utils.EventCharges, err error) { - //var aBlncs *accountBalances + var aBlncs *accountBalances if _, err = newAccountBalances(acnt, aS.fltrS, aS.connMgr, aS.cfg.AccountSCfg().AttributeSConns, aS.cfg.AccountSCfg().RateSConns); err != nil { return } + fmt.Println(aBlncs) return } // V1MaxUsage returns the maximum usage for the event, based on matching Account func (aS *AccountS) V1MaxUsage(args *utils.ArgsAccountForEvent, ec *utils.EventCharges) (err error) { - /*var acnt *utils.AccountProfile - if acnt, err = aS.matchingAccountForEvent(args.CGREventWithOpts.Tenant, - args.CGREventWithOpts, args.AccountIDs); err != nil { + var acnt *utils.AccountProfile + if acnt, err = aS.matchingAccountForEvent(args.CGREvent.Tenant, + args.CGREvent, args.AccountIDs); err != nil { if err != utils.ErrNotFound { err = utils.NewErrServerError(err) } return } - */ - //if aS.accountProcessEvent(acnt, args) + var procEC *utils.EventCharges + if procEC, err = aS.accountProcessEvent(acnt, args.CGREvent); err != nil { + return + } + *ec = *procEC return } diff --git a/accounts/concretebalance.go b/accounts/concretebalance.go index 13583bcd5..fdc62887f 100644 --- a/accounts/concretebalance.go +++ b/accounts/concretebalance.go @@ -44,18 +44,17 @@ func restoreUnitsFromClones(cBs []*concreteBalance, clnedUnts []*utils.Decimal) } // newConcreteBalance constructs a concreteBalanceOperator -func newConcreteBalanceOperator(blnCfg *utils.Balance, cncrtBlncs []*concreteBalance, +func newConcreteBalanceOperator(blnCfg *utils.Balance, fltrS *engine.FilterS, connMgr *engine.ConnManager, attrSConns, rateSConns []string) balanceOperator { - return &concreteBalance{blnCfg, cncrtBlncs, fltrS, connMgr, attrSConns, rateSConns} + return &concreteBalance{blnCfg, fltrS, connMgr, attrSConns, rateSConns} } // concreteBalance is the operator for *concrete balance type type concreteBalance struct { - blnCfg *utils.Balance - cncrtBlncs []*concreteBalance // paying balances - fltrS *engine.FilterS - connMgr *engine.ConnManager + blnCfg *utils.Balance + fltrS *engine.FilterS + connMgr *engine.ConnManager attrSConns, rateSConns []string } diff --git a/accounts/libaccounts.go b/accounts/libaccounts.go index 82f159870..11de62f67 100644 --- a/accounts/libaccounts.go +++ b/accounts/libaccounts.go @@ -47,7 +47,7 @@ func newAccountBalances(acnt *utils.AccountProfile, acntBlncs.cncrtBlncs = make([]*concreteBalance, len(acntBlncs.typIdx[utils.MetaConcrete])) for i, blncIdx := range acntBlncs.typIdx[utils.MetaConcrete] { acntBlncs.cncrtBlncs[i] = newConcreteBalanceOperator(acntBlncs.blnCfgs[blncIdx], - acntBlncs.cncrtBlncs, fltrS, connMgr, attrSConns, rateSConns).(*concreteBalance) + fltrS, connMgr, attrSConns, rateSConns).(*concreteBalance) acntBlncs.opers[acntBlncs.blnCfgs[blncIdx].ID] = acntBlncs.cncrtBlncs[i] } // populate opers @@ -85,7 +85,7 @@ func newBalanceOperator(blncCfg *utils.Balance, cncrtBlncs []*concreteBalance, default: return nil, fmt.Errorf("unsupported balance type: <%s>", blncCfg.Type) case utils.MetaConcrete: - return newConcreteBalanceOperator(blncCfg, cncrtBlncs, fltrS, connMgr, attrSConns, rateSConns), nil + return newConcreteBalanceOperator(blncCfg, fltrS, connMgr, attrSConns, rateSConns), nil case utils.MetaAbstract: return newAbstractBalanceOperator(blncCfg, cncrtBlncs, fltrS, connMgr, attrSConns, rateSConns), nil }