mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Modifed GetFilters API
This commit is contained in:
committed by
Dan Christian Bogos
parent
ff143cf5aa
commit
6ef657da5a
@@ -87,36 +87,18 @@ func (adms *AdminSv1) GetFilters(ctx *context.Context, args *utils.ArgsItemIDs,
|
||||
if tnt == utils.EmptyString {
|
||||
tnt = adms.cfg.GeneralCfg().DefaultTenant
|
||||
}
|
||||
prfx := utils.FilterPrefix + tnt + utils.ConcatenatedKeySep
|
||||
lenPrfx := len(prfx)
|
||||
prfx += args.ItemsPrefix
|
||||
var keys []string
|
||||
if keys, err = adms.dm.DataDB().GetKeysForPrefix(ctx, prfx); err != nil {
|
||||
return
|
||||
}
|
||||
if len(keys) == 0 {
|
||||
return utils.ErrNotFound
|
||||
}
|
||||
retIDs := make([]string, len(keys))
|
||||
for i, key := range keys {
|
||||
retIDs[i] = key[lenPrfx:]
|
||||
}
|
||||
var limit, offset, maxItems int
|
||||
if limit, offset, maxItems, err = utils.GetPaginateOpts(args.APIOpts); err != nil {
|
||||
return
|
||||
}
|
||||
var fltrIDs []string
|
||||
fltrIDs, err = utils.Paginate(retIDs, limit, offset, maxItems)
|
||||
err = adms.GetFilterIDs(ctx, args, &fltrIDs)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
*reply = make([]*engine.Filter, 0, len(fltrIDs))
|
||||
for _, fltrID := range fltrIDs {
|
||||
var fltr *engine.Filter
|
||||
if fltr, err = adms.dm.GetFilter(ctx, tnt, fltrID, true, true, utils.NonTransactional); err != nil {
|
||||
return utils.APIErrorHandler(err)
|
||||
} else {
|
||||
fltrs := append(*reply, fltr)
|
||||
*reply = fltrs
|
||||
*reply = append(*reply, fltr)
|
||||
}
|
||||
}
|
||||
return
|
||||
|
||||
@@ -48,6 +48,7 @@ var (
|
||||
testFilterSStartEngine,
|
||||
testFilterSRPCConn,
|
||||
testFilterSGetFltrBeforeSet,
|
||||
testFilterSGetFiltersBeforeSet,
|
||||
testFilterSSetFltr,
|
||||
testFilterSGetFilterIDs,
|
||||
testFilterSGetFilters,
|
||||
@@ -131,6 +132,15 @@ func testFilterSGetFltrBeforeSet(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func testFilterSGetFiltersBeforeSet(t *testing.T) {
|
||||
var reply *[]*engine.Filter
|
||||
args := &utils.ArgsItemIDs{}
|
||||
if err := fltrSRPC.Call(context.Background(), utils.AdminSv1GetFilters,
|
||||
args, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ErrNotFound, err)
|
||||
}
|
||||
}
|
||||
|
||||
func testFilterSSetFltr(t *testing.T) {
|
||||
fltrPrf := &engine.FilterWithAPIOpts{
|
||||
Filter: &engine.Filter{
|
||||
@@ -209,9 +219,9 @@ func testFilterSGetFilterIDs(t *testing.T) {
|
||||
}
|
||||
|
||||
func testFilterSGetFilters(t *testing.T) {
|
||||
var reply *[]engine.Filter
|
||||
var reply *[]*engine.Filter
|
||||
args := &utils.ArgsItemIDs{}
|
||||
expectedFltr := &[]engine.Filter{
|
||||
expectedFltr := &[](*engine.Filter){
|
||||
{
|
||||
Tenant: utils.CGRateSorg,
|
||||
ID: "fltr_for_attr",
|
||||
@@ -352,9 +362,9 @@ func testFilterSGetFilterSIDs2(t *testing.T) {
|
||||
}
|
||||
|
||||
func testFilterSGetFilters2(t *testing.T) {
|
||||
var reply *[]engine.Filter
|
||||
var reply *[]*engine.Filter
|
||||
args := &utils.ArgsItemIDs{}
|
||||
expectedFltr := &[]engine.Filter{
|
||||
expectedFltr := &[](*engine.Filter){
|
||||
{
|
||||
Tenant: utils.CGRateSorg,
|
||||
ID: "fltr_for_attr",
|
||||
@@ -516,9 +526,9 @@ func testFilterSSetFilterS3(t *testing.T) {
|
||||
}
|
||||
|
||||
func testFilterSGetFilters3(t *testing.T) {
|
||||
var reply *[]engine.Filter
|
||||
var reply *[]*engine.Filter
|
||||
args := &utils.ArgsItemIDs{}
|
||||
expectedFltr := &[]engine.Filter{
|
||||
expectedFltr := &[](*engine.Filter){
|
||||
{
|
||||
Tenant: utils.CGRateSorg,
|
||||
ID: "fltr_for_attr2",
|
||||
@@ -639,11 +649,11 @@ func testFilterSSetGetFilterWithPrefix(t *testing.T) {
|
||||
}
|
||||
|
||||
func testFilterSGetFiltersWithPrefix(t *testing.T) {
|
||||
var reply *[]engine.Filter
|
||||
var reply *[]*engine.Filter
|
||||
args := &utils.ArgsItemIDs{
|
||||
ItemsPrefix: "afltr",
|
||||
}
|
||||
expectedFltr := &[]engine.Filter{
|
||||
expectedFltr := &[](*engine.Filter){
|
||||
{
|
||||
Tenant: utils.CGRateSorg,
|
||||
ID: "afltr_for_attr",
|
||||
|
||||
Reference in New Issue
Block a user