mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Finished removing timings
This commit is contained in:
committed by
Dan Christian Bogos
parent
7671c0cb5e
commit
1cd52b4e81
File diff suppressed because one or more lines are too long
@@ -1,62 +0,0 @@
|
||||
/*
|
||||
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
|
||||
Copyright (C) ITsysCOM GmbH
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package console
|
||||
|
||||
import "github.com/cgrates/cgrates/utils"
|
||||
|
||||
func init() {
|
||||
c := &CmdSetDestination{
|
||||
name: "destination_set",
|
||||
}
|
||||
commands[c.Name()] = c
|
||||
c.CommandExecuter = &CommandExecuter{c}
|
||||
}
|
||||
|
||||
// Commander implementation
|
||||
type CmdSetDestination struct {
|
||||
name string
|
||||
rpcMethod string
|
||||
rpcParams *utils.AttrSetDestination
|
||||
rpcResult string
|
||||
*CommandExecuter
|
||||
}
|
||||
|
||||
func (self *CmdSetDestination) Name() string {
|
||||
return self.name
|
||||
}
|
||||
|
||||
func (self *CmdSetDestination) RpcMethod() string {
|
||||
return self.rpcMethod
|
||||
}
|
||||
|
||||
func (self *CmdSetDestination) RpcParams(reset bool) interface{} {
|
||||
if reset || self.rpcParams == nil {
|
||||
self.rpcParams = &utils.AttrSetDestination{}
|
||||
}
|
||||
return self.rpcParams
|
||||
}
|
||||
|
||||
func (self *CmdSetDestination) PostprocessRpcParams() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *CmdSetDestination) RpcResult() interface{} {
|
||||
var s string
|
||||
return &s
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
/*
|
||||
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
|
||||
Copyright (C) ITsysCOM GmbH
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package console
|
||||
|
||||
/*
|
||||
import (
|
||||
"github.com/cgrates/cgrates/engine"
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func init() {
|
||||
c := &CmdGetDestination{
|
||||
name: "destinations",
|
||||
rpcMethod: utils.APIerSv2GetDestinations,
|
||||
}
|
||||
commands[c.Name()] = c
|
||||
c.CommandExecuter = &CommandExecuter{c}
|
||||
}
|
||||
|
||||
// Commander implementation
|
||||
type CmdGetDestination struct {
|
||||
name string
|
||||
rpcMethod string
|
||||
rpcParams *v2.AttrGetDestinations
|
||||
*CommandExecuter
|
||||
}
|
||||
|
||||
func (self *CmdGetDestination) Name() string {
|
||||
return self.name
|
||||
}
|
||||
|
||||
func (self *CmdGetDestination) RpcMethod() string {
|
||||
return self.rpcMethod
|
||||
}
|
||||
|
||||
func (self *CmdGetDestination) RpcParams(reset bool) interface{} {
|
||||
if reset || self.rpcParams == nil {
|
||||
self.rpcParams = &v2.AttrGetDestinations{}
|
||||
}
|
||||
return self.rpcParams
|
||||
}
|
||||
|
||||
func (self *CmdGetDestination) PostprocessRpcParams() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *CmdGetDestination) RpcResult() interface{} {
|
||||
a := make([]*engine.Destination, 0)
|
||||
return &a
|
||||
}
|
||||
*/
|
||||
@@ -259,8 +259,7 @@
|
||||
// "*accounts": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // for account storing
|
||||
// // internal storDB tabels
|
||||
// "*session_costs": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false},
|
||||
// "*cdrs": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false},
|
||||
// "*tp_timings":{"limit": -1, "ttl": "", "static_ttl": false, "replicate": false},
|
||||
// "*cdrs": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false},
|
||||
// "*tp_rates": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false},
|
||||
// "*tp_destination_rates": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false},
|
||||
// "*tp_rating_plans":{"limit": -1, "ttl": "", "static_ttl": false, "replicate": false},
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
#ActionsId[0],Action[1],ExtraParameters[2],Filter[3],BalanceId[4],BalanceType[5],Categories[6],DestinationIds[7],RatingSubject[8],SharedGroup[9],ExpiryTime[10],TimingIds[11],Units[12],BalanceWeight[13],BalanceBlocker[14],BalanceDisabled[15],Weight[16]
|
||||
PREPAID_10,*topup,,,,*monetary,,*any,,,*unlimited,,10,10,false,false,20
|
||||
BONUS_3,*topup,,,,*monetary,,*any,,,*unlimited,,3,10,false,false,10
|
||||
LOG_BALANCE,*log,,,,,,,,,,,,,false,false,10
|
||||
CDRST_WARN_HTTP,*http_post,http://localhost:8080,,,,,,,,,,,,false,false,10
|
||||
#ActionsId[0],Action[1],ExtraParameters[2],Filter[3],BalanceId[4],BalanceType[5],Categories[6],DestinationIds[7],RatingSubject[8],SharedGroup[9],ExpiryTime[10],Units[11],BalanceWeight[12],BalanceBlocker[13],BalanceDisabled[14],Weight[15]
|
||||
PREPAID_10,*topup,,,,*monetary,,*any,,,*unlimited,10,10,false,false,20
|
||||
BONUS_3,*topup,,,,*monetary,,*any,,,*unlimited,3,10,false,false,10
|
||||
LOG_BALANCE,*log,,,,,,,,,,,,false,false,10
|
||||
CDRST_WARN_HTTP,*http_post,http://localhost:8080,,,,,,,,,,,false,false,10
|
||||
CDRST_LOG,*log,,,,,,,,,,,,,false,false,10
|
||||
TOPUP_EXE,*topup,,,,*monetary,,*any,,,*unlimited,,5,10,false,false,10
|
||||
TOPUP_DATA_r,*topup,,,,*monetary,,DATA_DEST,,,*unlimited,,5000000,10,false,false,10
|
||||
TOPUP_DATA_r,*topup,,,,*data,,DATA_DEST,datar,,*unlimited,,50000000000,10,false,false,10
|
||||
TOPUP_VOICE,*topup,,,,*voice,,GERMANY_MOBILE,,,*unlimited,,50000,10,false,false,10
|
||||
TOPUP_NEG,*topup,,,,*voice,,GERMANY;!GERMANY_MOBILE,*zero1m,,*unlimited,,100,10,false,false,10
|
||||
RPC,*cgr_rpc,"{""Address"": ""localhost:2013"",""Transport"":""*gob"",""Method"":""APIerSv2.SetAccount"",""Attempts"":1,""Async"" :false,""Params"":{""Account"":""rpc"",""Tenant"":""cgrates.org""}}",,,,,,,,,,,,,,
|
||||
DID,*debit,,,,*monetary,,*any,,,*unlimited,*any,"{""Method"":""*incremental"",""Params"":{""Units"":1, ""Interval"":""month"",""Increment"":""day""}}",10.0,,,10.0
|
||||
DID,*cdrlog,"{""action"":""^DID"",""prev_balance"":""BalanceValue""}",,,*monetary,,*any,,,*unlimited,,,10.0,,,10.0
|
||||
RPC_DEST,*cgr_rpc,"{""Address"": ""localhost:2013"",""Transport"":""*gob"",""Method"":""APIerSv2.SetDestination"",""Attempts"":1,""Async"" :false,""Params"":{""Id"":""<<.Account.GetID>>"",""Prefixes"":[""1"",""2"",""3""]}}",,,,,,,,,,,,,,
|
||||
RPC_CDRSTATS,*cgr_rpc,"{""Address"": ""localhost:2013"",""Transport"":""*gob"",""Method"":""CDRStatsV1.AddQueue"",""Attempts"":1,""Async"" :false,""Params"":{""Id"":""qtest""}}",,,,,,,,,,,,,,
|
||||
TOPUP_EXE,*topup,,,,*monetary,,*any,,,*unlimited,5,10,false,false,10
|
||||
TOPUP_DATA_r,*topup,,,,*monetary,,DATA_DEST,,,*unlimited,5000000,10,false,false,10
|
||||
TOPUP_DATA_r,*topup,,,,*data,,DATA_DEST,datar,,*unlimited,50000000000,10,false,false,10
|
||||
TOPUP_VOICE,*topup,,,,*voice,,GERMANY_MOBILE,,,*unlimited,50000,10,false,false,10
|
||||
TOPUP_NEG,*topup,,,,*voice,,GERMANY;!GERMANY_MOBILE,*zero1m,,*unlimited,100,10,false,false,10
|
||||
RPC,*cgr_rpc,"{""Address"": ""localhost:2013"",""Transport"":""*gob"",""Method"":""APIerSv2.SetAccount"",""Attempts"":1,""Async"" :false,""Params"":{""Account"":""rpc"",""Tenant"":""cgrates.org""}}",,,,,,,,,,,,,
|
||||
DID,*debit,,,,*monetary,,*any,,,*unlimited,"{""Method"":""*incremental"",""Params"":{""Units"":1, ""Interval"":""month"",""Increment"":""day""}}",10.0,,,10.0
|
||||
DID,*cdrlog,"{""action"":""^DID"",""prev_balance"":""BalanceValue""}",,,*monetary,,*any,,,*unlimited,,,10.0,,10.0
|
||||
RPC_DEST,*cgr_rpc,"{""Address"": ""localhost:2013"",""Transport"":""*gob"",""Method"":""APIerSv2.SetDestination"",""Attempts"":1,""Async"" :false,""Params"":{""Id"":""<<.Account.GetID>>"",""Prefixes"":[""1"",""2"",""3""]}}",,,,,,,,,,,,,
|
||||
RPC_CDRSTATS,*cgr_rpc,"{""Address"": ""localhost:2013"",""Transport"":""*gob"",""Method"":""CDRStatsV1.AddQueue"",""Attempts"":1,""Async"" :false,""Params"":{""Id"":""qtest""}}",,,,,,,,,,,,,
|
||||
|
||||
|
@@ -1,3 +1,3 @@
|
||||
#ActionsId[0],Action[1],ExtraParameters[2],Filter[3],BalanceId[4],BalanceType[5],Categories[6],DestinationIds[7],RatingSubject[8],SharedGroup[9],ExpiryTime[10],TimingIds[11],Units[12],BalanceWeight[13],BalanceBlocker[14],BalanceDisabled[15],Weight[16]
|
||||
#ActionsId[0],Action[1],ExtraParameters[2],Filter[3],BalanceId[4],BalanceType[5],Categories[6],DestinationIds[7],RatingSubject[8],SharedGroup[9],ExpiryTime[10],Units[11],BalanceWeight[12],BalanceBlocker[13],BalanceDisabled[14],Weight[15]
|
||||
ACT_TOPUP_RST_10,*topup_reset,,,test,*monetary,,*any,,,*unlimited,,10,10,false,false,10
|
||||
ACT_LOG_WARNING,*log,,,,,,,,,,,,,false,false,10
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#Id,ActionsId,TimingId,Weight
|
||||
STANDARD_PLAN,TOPUP_RST_MONETARY_10,*asap,10
|
||||
STANDARD_PLAN,TOPUP_RST_5M_VOICE,*asap,10
|
||||
STANDARD_PLAN,TOPUP_RST_10M_VOICE,*asap,10
|
||||
STANDARD_PLAN,TOPUP_RST_100_SMS,*asap,10
|
||||
STANDARD_PLAN,TOPUP_RST_1024_DATA,*asap,10
|
||||
STANDARD_PLAN,TOPUP_RST_1024_DATA,TM_NOON,10
|
||||
#Id,ActionsId,Weight
|
||||
STANDARD_PLAN,TOPUP_RST_MONETARY_10,10
|
||||
STANDARD_PLAN,TOPUP_RST_5M_VOICE,10
|
||||
STANDARD_PLAN,TOPUP_RST_10M_VOICE,10
|
||||
STANDARD_PLAN,TOPUP_RST_100_SMS,10
|
||||
STANDARD_PLAN,TOPUP_RST_1024_DATA,10
|
||||
STANDARD_PLAN,TOPUP_RST_1024_DATA,10
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#ID[0],UniqueID[1],ThresholdType[2],ThresholdValue[3],Recurrent[4],MinSleep[5],ExpiryTime[6],ActivationTime[7],BalanceTag[8],BalanceType[9],BalanceCategories[10],BalanceDestinationIDs[11],BalanceRatingSubject[12],BalanceSharedGroup[13],BalanceExpiryTime[14],BalanceTimingIDs[15],BalanceWeight[16],BalanceBlocker[17],BalanceDisabled[18],ActionsID[19],Weight[20]
|
||||
#ID[0],UniqueID[1],ThresholdType[2],ThresholdValue[3],Recurrent[4],MinSleep[5],ExpiryTime[6],ActivationTime[7],BalanceTag[8],BalanceType[9],BalanceCategories[10],BalanceDestinationIDs[11],BalanceRatingSubject[12],BalanceSharedGroup[13],BalanceExpiryTime[14],BalanceWeight[15],BalanceBlocker[16],BalanceDisabled[17],ActionsID[18],Weight[19]
|
||||
|
||||
# STANDARD_TRIGGERS *min_balance will call the action <TOPUP_BONUS_10SMS> when the monetary balance will go bellow 2 units
|
||||
STANDARD_TRIGGERS,,*min_balance,2,,,,,,*monetary,,,,,,,,,,TOPUP_BONUS_10SMS,10
|
||||
|
||||
|
@@ -134,7 +134,6 @@ func testDspChcLoadAfterFolder(t *testing.T) {
|
||||
expStats[utils.CacheThresholdProfiles].Items = 2
|
||||
expStats[utils.CacheThresholds].Items = 2
|
||||
expStats[utils.CacheLoadIDs].Items = 26
|
||||
expStats[utils.CacheTimings].Items = 10
|
||||
expStats[utils.CacheThresholdFilterIndexes].Items = 2
|
||||
expStats[utils.CacheThresholdFilterIndexes].Groups = 1
|
||||
expStats[utils.CacheStatFilterIndexes].Items = 7
|
||||
@@ -161,7 +160,6 @@ func testDspChcPrecacheStatus(t *testing.T) {
|
||||
expected := map[string]string{
|
||||
utils.CacheResourceProfiles: utils.MetaReady,
|
||||
utils.CacheResources: utils.MetaReady,
|
||||
utils.CacheTimings: utils.MetaReady,
|
||||
utils.CacheStatQueueProfiles: utils.MetaReady,
|
||||
utils.CacheStatQueues: utils.MetaReady,
|
||||
utils.CacheThresholdProfiles: utils.MetaReady,
|
||||
@@ -203,7 +201,6 @@ func testDspChcPrecacheStatus(t *testing.T) {
|
||||
utils.CacheAccounts: utils.MetaReady,
|
||||
|
||||
utils.CacheVersions: utils.MetaReady,
|
||||
utils.CacheTBLTPTimings: utils.MetaReady,
|
||||
utils.CacheTBLTPResources: utils.MetaReady,
|
||||
utils.CacheTBLTPStats: utils.MetaReady,
|
||||
utils.CacheTBLTPThresholds: utils.MetaReady,
|
||||
|
||||
@@ -43,7 +43,6 @@ var sTestsDspRpl = []func(t *testing.T){
|
||||
testDspRplStatQueueProfile,
|
||||
testDspRplResource,
|
||||
testDspRplResourceProfile,
|
||||
testDspRplTiming,
|
||||
testDspRplRateProfile,
|
||||
testDspRplAccount,
|
||||
testDspRplActionProfile,
|
||||
@@ -837,64 +836,6 @@ func testDspRplResourceProfile(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func testDspRplTiming(t *testing.T) {
|
||||
// Set Timing
|
||||
var replyStr string
|
||||
setTiming := &utils.TPTimingWithAPIOpts{
|
||||
TPTiming: &utils.TPTiming{
|
||||
ID: "testTimings",
|
||||
Years: utils.Years{1999},
|
||||
},
|
||||
Tenant: "cgrates.org",
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.OptsAPIKey: "repl12345",
|
||||
},
|
||||
}
|
||||
if err := dispEngine.RPC.Call(utils.ReplicatorSv1SetTiming, setTiming, &replyStr); err != nil {
|
||||
t.Error("Unexpected error when calling ReplicatorSv1.SetTiming: ", err)
|
||||
} else if replyStr != utils.OK {
|
||||
t.Error("Unexpected reply returned", replyStr)
|
||||
}
|
||||
// Get Timing
|
||||
var reply utils.TPTiming
|
||||
argsTiming := &utils.StringWithAPIOpts{
|
||||
Arg: "testTimings",
|
||||
Tenant: "cgrates.org",
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.OptsAPIKey: "repl12345",
|
||||
},
|
||||
}
|
||||
if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetTiming, argsTiming, &reply); err != nil {
|
||||
t.Error("Unexpected error when calling ReplicatorSv1.GetTiming: ", err)
|
||||
} else if reply.ID != argsTiming.Arg {
|
||||
t.Errorf("Expecting: %+v, received: %+v", argsTiming.Arg, reply.ID)
|
||||
} else if reply.Years[0] != 1999 {
|
||||
t.Errorf("Expecting: %+v, received: %+v", utils.Years{1999}, reply.Years)
|
||||
}
|
||||
// Stop engine 1
|
||||
allEngine.stopEngine(t)
|
||||
|
||||
// Get Timing
|
||||
if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetTiming, argsTiming, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
|
||||
}
|
||||
|
||||
// Start engine 1
|
||||
allEngine.startEngine(t)
|
||||
|
||||
// Remove Timing
|
||||
if err := dispEngine.RPC.Call(utils.ReplicatorSv1RemoveTiming, argsTiming, &replyStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if replyStr != utils.OK {
|
||||
t.Error("Unexpected reply returned", replyStr)
|
||||
}
|
||||
|
||||
// Get Timing
|
||||
if err := dispEngine.RPC.Call(utils.ReplicatorSv1GetTiming, argsTiming, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Errorf("Expecting: %+v, received: %+v, ", utils.ErrNotFound, err)
|
||||
}
|
||||
}
|
||||
|
||||
func testDspRplRateProfile(t *testing.T) {
|
||||
// Set RateProfile
|
||||
var replyStr string
|
||||
|
||||
@@ -77,9 +77,6 @@ The following types are implemented:
|
||||
\*notexists
|
||||
Is the negation of *\*exists*.
|
||||
|
||||
\*nottimings
|
||||
Is the negation of *\*timings*.
|
||||
|
||||
\*destinations
|
||||
Will make sure that the *Element* is a prefix contained inside one of the destination IDs as *Values*.
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ FallbackSubjects
|
||||
RatingPlan
|
||||
^^^^^^^^^^
|
||||
|
||||
Groups together rates per destination and relates them to event timing. Configured via the following parameters:
|
||||
Groups together rates per destination. Configured via the following parameters:
|
||||
|
||||
ID
|
||||
The tag uniquely idenfying each RatingPlan. There can be multiple entries grouped by the same ID.
|
||||
@@ -59,11 +59,8 @@ ID
|
||||
DestinationRatesID
|
||||
The identifier of the :ref:`DestinationRate` set.
|
||||
|
||||
TimingID
|
||||
The itentifier of the :ref:`Timing` profile.
|
||||
|
||||
Weight
|
||||
Priority of matching rule (*DestinationRatesID*+*TimingID*). Higher value equals higher priority.
|
||||
Priority of matching rule (*DestinationRatesID*). Higher value equals higher priority.
|
||||
|
||||
|
||||
.. _DestinationRate:
|
||||
@@ -150,36 +147,6 @@ GroupIntervalStart
|
||||
Activates the rate at specific usage within the event.
|
||||
|
||||
|
||||
.. _Timing:
|
||||
|
||||
Timing
|
||||
^^^^^^
|
||||
|
||||
A *Timing* profile is giving time awarness to an event. Configured via the following parameters:
|
||||
|
||||
ID
|
||||
The tag uniquely idenfying each *Timing* profile.
|
||||
|
||||
Years
|
||||
List of years to match within the event. Defaults to the catch-all meta: *\*any*.
|
||||
|
||||
Months
|
||||
List of months to match within the event. Defaults to the catch-all meta: *\*any*.
|
||||
|
||||
MonthDays
|
||||
List of month days to match within the event. Defaults to the catch-all meta: *\*any*.
|
||||
|
||||
WeekDays
|
||||
List of week days to match within the event as integer values. Special case for *Sunday* which matches for both 0 and 7.
|
||||
|
||||
Time
|
||||
The exact time to match (mostly as time start). Defined in the format: *hh:mm:ss*
|
||||
|
||||
|
||||
|
||||
.. Note:: Due to optimization, CGRateS encapsulates and stores the rating information into just three objects: *Destinations*, *RatingProfiles* and *RatingPlan* (composed out of *RatingPlan*, *DestinationRate*, *Rate* and *Timing* objects).
|
||||
|
||||
|
||||
|
||||
.. _Accounting:
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ started with custom configuration, depending on the tutorial you have followed.
|
||||
For our tutorial we load again prepared data out of shared folder, containing
|
||||
following rules:
|
||||
|
||||
- Create the necessary timings (always, asap, peak, offpeak).
|
||||
- Configure 3 destinations (1002, 1003 and 10 used as catch all rule).
|
||||
- As rating we configure the following:
|
||||
|
||||
|
||||
@@ -113,10 +113,6 @@ func (dbM *DataDBMock) RemoveResourceDrv(string, string) error {
|
||||
return utils.ErrNotImplemented
|
||||
}
|
||||
|
||||
func (dbM *DataDBMock) RemoveTimingDrv(string) error {
|
||||
return utils.ErrNotImplemented
|
||||
}
|
||||
|
||||
func (dbM *DataDBMock) GetLoadHistory(int, bool, string) ([]*utils.LoadInstance, error) {
|
||||
return nil, utils.ErrNotImplemented
|
||||
}
|
||||
|
||||
@@ -98,11 +98,6 @@ func (t *Threshold) ProcessEvent(args *ThresholdsArgsProcessEvent, dm *DataManag
|
||||
// }
|
||||
|
||||
// for _, actionSetID := range t.tPrfl.ActionIDs {
|
||||
// at := &ActionTiming{
|
||||
// Uuid: utils.GenUUID(),
|
||||
// ActionsID: actionSetID,
|
||||
// ExtraData: args.CGREvent,
|
||||
// }
|
||||
// if tntAcnt != utils.EmptyString {
|
||||
// at.accountIDs = utils.NewStringMap(tntAcnt)
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user