From a3290f519efde3195df7449f91f22d633587fb57 Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Fri, 1 Oct 2021 09:04:17 +0300 Subject: [PATCH] Add FilterS and context parameters for newOptsGetRoutes function and fix the remaining compilation errors --- engine/routes.go | 18 ++++++++++++++---- engine/routes_test.go | 6 +++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/engine/routes.go b/engine/routes.go index c2d67b7c0..72e79ad65 100644 --- a/engine/routes.go +++ b/engine/routes.go @@ -184,9 +184,14 @@ func (rpS *RouteService) matchingRouteProfilesForEvent(ctx *context.Context, tnt return } -func newOptsGetRoutes(ev *utils.CGREvent, def *config.RoutesOpts) (opts *optsGetRoutes, err error) { +func newOptsGetRoutes(ctx *context.Context, ev *utils.CGREvent, fS *FilterS, def *config.RoutesOpts) (opts *optsGetRoutes, err error) { + var ignoreErrors bool + if ignoreErrors, err = FilterBoolCfgOpts(ctx, ev.Tenant, ev.AsDataProvider(), fS, + def.IgnoreErrors); err != nil { + return + } opts = &optsGetRoutes{ - ignoreErrors: utils.OptAsBoolOrDef(ev.APIOpts, utils.OptsRoutesIgnoreErrors, def.IgnoreErrors), + ignoreErrors: utils.OptAsBoolOrDef(ev.APIOpts, utils.OptsRoutesIgnoreErrors, ignoreErrors), paginator: &utils.Paginator{ Limit: def.Limit, Offset: def.Offset, @@ -267,9 +272,14 @@ func (rpS *RouteService) V1GetRoutes(ctx *context.Context, args *utils.CGREvent, args.APIOpts = make(map[string]interface{}) } args.APIOpts[utils.Subsys] = utils.MetaRoutes + var context string + if context, err = FilterStringCfgOpts(ctx, tnt, args.AsDataProvider(), rpS.filterS, + rpS.cfg.RouteSCfg().Opts.Context); err != nil { + return + } args.APIOpts[utils.OptsContext] = utils.FirstNonEmpty( utils.IfaceAsString(args.APIOpts[utils.OptsContext]), - rpS.cfg.RouteSCfg().Opts.Context, + context, utils.MetaRoutes) var rplyEv AttrSProcessEventReply if err := rpS.connMgr.Call(ctx, rpS.cfg.RouteSCfg().AttributeSConns, @@ -398,7 +408,7 @@ func (rpS *RouteService) sortedRoutesForEvent(ctx *context.Context, tnt string, } } var extraOpts *optsGetRoutes - if extraOpts, err = newOptsGetRoutes(args, rpS.cfg.RouteSCfg().Opts); err != nil { // convert routes arguments into internal options used to limit data + if extraOpts, err = newOptsGetRoutes(ctx, args, rpS.filterS, rpS.cfg.RouteSCfg().Opts); err != nil { // convert routes arguments into internal options used to limit data return } diff --git a/engine/routes_test.go b/engine/routes_test.go index 2170400c9..2e43c0e83 100644 --- a/engine/routes_test.go +++ b/engine/routes_test.go @@ -1482,7 +1482,7 @@ func TestRoutesNewOptsGetRoutes(t *testing.T) { maxCost: 10.0, paginator: &utils.Paginator{}, } - sprf, err := newOptsGetRoutes(ev, config.CgrConfig().RouteSCfg().Opts) + sprf, err := newOptsGetRoutes(context.Background(), ev, &FilterS{}, config.CgrConfig().RouteSCfg().Opts) if err != nil { t.Errorf("Error: %+v", err) } @@ -1504,7 +1504,7 @@ func TestRoutesNewOptsGetRoutesFromCfg(t *testing.T) { ignoreErrors: true, paginator: &utils.Paginator{}, } - sprf, err := newOptsGetRoutes(ev, config.CgrConfig().RouteSCfg().Opts) + sprf, err := newOptsGetRoutes(context.Background(), ev, &FilterS{}, config.CgrConfig().RouteSCfg().Opts) if err != nil { t.Errorf("Error: %+v", err) } @@ -1523,7 +1523,7 @@ func TestRoutesNewOptsGetRoutesIgnoreErrors(t *testing.T) { ignoreErrors: true, paginator: &utils.Paginator{}, } - sprf, err := newOptsGetRoutes(ev, config.CgrConfig().RouteSCfg().Opts) + sprf, err := newOptsGetRoutes(context.Background(), ev, &FilterS{}, config.CgrConfig().RouteSCfg().Opts) if err != nil { t.Errorf("Error: %+v", err) }