Add opts field for stats cfg struct

This commit is contained in:
ionutboangiu
2021-11-04 17:18:18 +02:00
committed by Dan Christian Bogos
parent d01882b5dd
commit 810f5ceedc
7 changed files with 65 additions and 11 deletions

View File

@@ -245,7 +245,6 @@ func (sS *StatService) Call(serviceMethod string, args interface{}, reply interf
// StatsArgsProcessEvent the arguments for processing the event with stats
type StatsArgsProcessEvent struct {
StatIDs []string
*utils.CGREvent
clnb bool //rpcclonable
}
@@ -265,12 +264,7 @@ func (attr *StatsArgsProcessEvent) RPCClone() (interface{}, error) {
// Clone creates a clone of the object
func (attr *StatsArgsProcessEvent) Clone() *StatsArgsProcessEvent {
var statsIDs []string
if attr.StatIDs != nil {
statsIDs = utils.CloneStringSlice(attr.StatIDs)
}
return &StatsArgsProcessEvent{
StatIDs: statsIDs,
CGREvent: attr.CGREvent.Clone(),
}
}
@@ -357,7 +351,13 @@ func (sS *StatService) processEvent(tnt string, args *StatsArgsProcessEvent) (st
utils.MetaReq: args.Event,
utils.MetaOpts: args.APIOpts,
}
matchSQs, err := sS.matchingStatQueuesForEvent(tnt, args.StatIDs, args.Time, evNm)
stsIDs := sS.cgrcfg.StatSCfg().Opts.ProfileIDs
if opt, has := args.APIOpts[utils.OptsStatsProfileIDs]; has {
if stsIDs, err = utils.IfaceAsSliceString(opt); err != nil {
return
}
}
matchSQs, err := sS.matchingStatQueuesForEvent(tnt, stsIDs, args.Time, evNm)
if err != nil {
return nil, err
}
@@ -418,8 +418,14 @@ func (sS *StatService) V1GetStatQueuesForEvent(args *StatsArgsProcessEvent, repl
if tnt == utils.EmptyString {
tnt = sS.cgrcfg.GeneralCfg().DefaultTenant
}
stsIDs := sS.cgrcfg.StatSCfg().Opts.ProfileIDs
if opt, has := args.APIOpts[utils.OptsStatsProfileIDs]; has {
if stsIDs, err = utils.IfaceAsSliceString(opt); err != nil {
return
}
}
var sQs StatQueues
if sQs, err = sS.matchingStatQueuesForEvent(tnt, args.StatIDs, args.Time, utils.MapStorage{
if sQs, err = sS.matchingStatQueuesForEvent(tnt, stsIDs, args.Time, utils.MapStorage{
utils.MetaReq: args.Event,
utils.MetaOpts: args.APIOpts,
}); err != nil {