AccountS - concreteBalance should not have concretes inside

This commit is contained in:
DanB
2021-01-31 19:18:23 +01:00
parent 8c4d54924c
commit dfac210f17
3 changed files with 17 additions and 14 deletions

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}