Protect GetAccountActionPlan

This commit is contained in:
DanB
2017-03-08 14:40:57 +01:00
parent 094bce7fd5
commit 8435a0d676

View File

@@ -46,28 +46,34 @@ func (self *ApierV1) GetAccountActionPlan(attrs AttrAcntAction, reply *[]*Accoun
return utils.NewErrMandatoryIeMissing(strings.Join(missing, ","), "")
}
acntID := utils.AccountKey(attrs.Tenant, attrs.Account)
acntAPids, err := self.RatingDb.GetAccountActionPlans(acntID, false, utils.NonTransactional)
if err != nil && err != utils.ErrNotFound {
return utils.NewErrServerError(err)
}
var acntAPs []*engine.ActionPlan
for _, apID := range acntAPids {
if ap, err := self.RatingDb.GetActionPlan(apID, false, utils.NonTransactional); err != nil {
return err
} else if ap != nil {
acntAPs = append(acntAPs, ap)
_, err = guardian.Guardian.Guard(func() (interface{}, error) {
acntAPids, err := self.RatingDb.GetAccountActionPlans(acntID, false, utils.NonTransactional)
if err != nil && err != utils.ErrNotFound {
return nil, utils.NewErrServerError(err)
}
}
accountATs := make([]*AccountActionTiming, 0) // needs to be initialized if remains empty
for _, ap := range acntAPs {
for _, at := range ap.ActionTimings {
accountATs = append(accountATs, &AccountActionTiming{
ActionPlanId: ap.Id,
Uuid: at.Uuid,
ActionsId: at.ActionsID,
NextExecTime: at.GetNextStartTime(time.Now()),
})
var acntAPs []*engine.ActionPlan
for _, apID := range acntAPids {
if ap, err := self.RatingDb.GetActionPlan(apID, false, utils.NonTransactional); err != nil {
return nil, err
} else if ap != nil {
acntAPs = append(acntAPs, ap)
}
}
accountATs := make([]*AccountActionTiming, 0) // needs to be initialized if remains empty
for _, ap := range acntAPs {
for _, at := range ap.ActionTimings {
accountATs = append(accountATs, &AccountActionTiming{
ActionPlanId: ap.Id,
Uuid: at.Uuid,
ActionsId: at.ActionsID,
NextExecTime: at.GetNextStartTime(time.Now()),
})
}
}
}, 0, utils.ACTION_PLAN_PREFIX)
if err != nil {
return err
}
*reply = accountATs
return nil