added AddTriggeredAction

This commit is contained in:
Radu Ioan Fericean
2013-06-18 11:18:54 +03:00
parent d48bd013b7
commit 609e1213c3
2 changed files with 64 additions and 3 deletions

View File

@@ -177,3 +177,51 @@ func (self *Apier) SetRatingProfile(attr *AttrSetRatingProfile, reply *float64)
err = self.StorDb.SetRatingProfile(subject)
return err
}
type AttrActionTrigger struct {
Tenant string
Account string
Direction string
BalanceId string
ThresholdValue float64
DestinationId string
Weight float64
ActionsId string
}
func (self *Apier) AddTriggeredAction(attr *AttrActionTrigger, reply *float64) error {
if attr.Direction == "" {
attr.Direction = rater.OUTBOUND
}
at := &rater.ActionTrigger{
Id: utils.GenUUID(),
BalanceId: attr.BalanceId,
Direction: attr.Direction,
ThresholdValue: attr.ThresholdValue,
DestinationId: attr.DestinationId,
Weight: attr.Weight,
ActionsId: attr.ActionsId,
Executed: false,
}
tag := fmt.Sprintf("%s:%s:%s", attr.Direction, attr.Tenant, attr.Account)
var dbErr error
rater.AccLock.Guard(tag, func() (float64, error) {
userBalance, err := self.StorDb.GetUserBalance(tag)
if err != nil {
dbErr = err
return 0, err
}
userBalance.ActionTriggers = append(userBalance.ActionTriggers, at)
if err = self.StorDb.SetUserBalance(userBalance); err != nil {
dbErr = err
return 0, err
}
return 0, nil
})
return dbErr
}

View File

@@ -408,12 +408,25 @@ Executes specified action on a user account.
Example
ExecuteAction(attr \*AttrExecuteAction, reply \*float64)
AddTimedAction
++++++++++++++
AddTriggeredAction
++++++++++++++++++
::
type AttrActionTrigger struct {
Tenant string
Account string
Direction string
BalanceId string
ThresholdValue float64
DestinationId string
Weight float64
ActionsId string
}
Example
AddTriggeredAction(attr \*AttrActionTrigger, reply \*float64)
SetRatingProfile
++++++++++++++++