add slices.compact for filterids

This commit is contained in:
armirveliaj
2025-12-16 07:34:19 -05:00
committed by Dan Christian Bogos
parent 8b8a4677dd
commit 5f2b6beaa6
3 changed files with 12 additions and 7 deletions

View File

@@ -254,6 +254,8 @@ cgrates.org,RP1,,,,,,RT_WEEKEND,,,,true,,0.067,0.03,,
cgrates.org,RP1,,,,,,RT_WEEKEND,,"* * * * 0,6",;10,false,0s,0.089,0.06,1m,1s
cgrates.org,RP1,,,,,,RT_CHRISTMAS,,* * 24 12 *,;30,false,0s,0.0564,0.06,1m,1s
cgrates.org,RP1,,,,,,RT_CHRISTMAS,,,,true,,,,,
cgrates.org,RP2,*string:~*req.Account:1001;*string:~*req.Account:1001;*string:~*req.Account:1002;*string:~*req.Account:1001;*string:~*req.Account:1003,,,,,,,,,,,,,,
cgrates.org,RP2,*string:~*req.Account:1003;*string:~*req.Account:1004,,,,,,,,,,,,,,
cgrates.org,RP2,,,,,,RT_WEEK,,,,,1m,1.234,0.06,1m,1s
cgrates.org,RP2,*string:~*req.Subject:1002,;10,0.2,0.4,*free,RT_WEEK,,"* * * * 1-5",fltr1;20,false,0s,0,0.24,2m,30s
`); err != nil {
@@ -898,9 +900,10 @@ func testLoadersGetRateProfiles(t *testing.T) {
},
},
{
Tenant: "cgrates.org",
ID: "RP2",
FilterIDs: []string{"*string:~*req.Subject:1002"},
Tenant: "cgrates.org",
ID: "RP2",
FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*req.Account:1002", "*string:~*req.Account:1001",
"*string:~*req.Account:1003", "*string:~*req.Account:1004", "*string:~*req.Subject:1002"},
Weights: utils.DynamicWeights{
{
Weight: 10,

View File

@@ -24,6 +24,7 @@ import (
"io"
"os"
"path"
"slices"
"time"
"github.com/cgrates/birpc/context"
@@ -104,6 +105,7 @@ func setToDB(ctx *context.Context, dm *engine.DataManager, lType string, data pr
return dm.SetChargerProfile(ctx, data.(*utils.ChargerProfile), withIndex)
case utils.MetaRateProfiles:
rpl := data.(*utils.RateProfile)
rpl.FilterIDs = slices.Compact(rpl.FilterIDs)
if ratesPartial {
err = dm.SetRateProfile(ctx, rpl, false, true)
} else {

View File

@@ -1454,8 +1454,8 @@ func TestSetToDBRateProfileDuplicateSequentialFilterIDs(t *testing.T) {
}
expectedFilterIDs := []string{
"*string:~*req.Account:1001", "*string:~*req.Account:1001",
"*string:~*req.Subject:1002", "*string:~*req.Subject:1002", "*string:~*req.Subject:1002",
"*string:~*req.Account:1001",
"*string:~*req.Subject:1002",
"*string:~*req.Destination:1001",
}
@@ -1463,8 +1463,8 @@ func TestSetToDBRateProfileDuplicateSequentialFilterIDs(t *testing.T) {
t.Errorf("Expected FilterIDs after setToDB: %v, received: %v", expectedFilterIDs, rp.FilterIDs)
}
if len(rp.FilterIDs) != 6 {
t.Errorf("Expected 6 FilterIDs after compacting, got %d", len(rp.FilterIDs))
if len(rp.FilterIDs) != 3 {
t.Errorf("Expected 3 FilterIDs after compacting, got %d", len(rp.FilterIDs))
}
retrieved, err := dm.GetRateProfile(context.Background(), "cgrates.org", "RP1", true, true, utils.NonTransactional)