mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-19 22:28:45 +05:00
Add *refund dynamic opt for cdrs section
This commit is contained in:
committed by
Dan Christian Bogos
parent
9273761ed2
commit
5f4da20881
@@ -33,6 +33,7 @@ const (
|
||||
CDRsRatesDftOpt = false
|
||||
CDRsStatsDftOpt = false
|
||||
CDRsThresholdsDftOpt = false
|
||||
CDRsRefundDftOpt = false
|
||||
CDRsRerateDftOpt = false
|
||||
CDRsStoreDftOpt = true
|
||||
)
|
||||
@@ -45,6 +46,7 @@ type CdrsOpts struct {
|
||||
Rates []*utils.DynamicBoolOpt
|
||||
Stats []*utils.DynamicBoolOpt
|
||||
Thresholds []*utils.DynamicBoolOpt
|
||||
Refund []*utils.DynamicBoolOpt
|
||||
Rerate []*utils.DynamicBoolOpt
|
||||
Store []*utils.DynamicBoolOpt
|
||||
}
|
||||
@@ -100,12 +102,15 @@ func (cdrsOpts *CdrsOpts) loadFromJSONCfg(jsnCfg *CdrsOptsJson) {
|
||||
if jsnCfg.Thresholds != nil {
|
||||
cdrsOpts.Thresholds = append(cdrsOpts.Thresholds, jsnCfg.Thresholds...)
|
||||
}
|
||||
if jsnCfg.Store != nil {
|
||||
cdrsOpts.Store = append(cdrsOpts.Store, jsnCfg.Store...)
|
||||
if jsnCfg.Refund != nil {
|
||||
cdrsOpts.Refund = append(cdrsOpts.Refund, jsnCfg.Refund...)
|
||||
}
|
||||
if jsnCfg.Rerate != nil {
|
||||
cdrsOpts.Rerate = append(cdrsOpts.Rerate, jsnCfg.Rerate...)
|
||||
}
|
||||
if jsnCfg.Store != nil {
|
||||
cdrsOpts.Store = append(cdrsOpts.Store, jsnCfg.Store...)
|
||||
}
|
||||
}
|
||||
|
||||
// loadFromJSONCfg loads Cdrs config from JsonCfg
|
||||
@@ -167,6 +172,7 @@ func (cdrscfg CdrsCfg) AsMapInterface(string) any {
|
||||
utils.MetaRates: cdrscfg.Opts.Rates,
|
||||
utils.MetaStats: cdrscfg.Opts.Stats,
|
||||
utils.MetaThresholds: cdrscfg.Opts.Thresholds,
|
||||
utils.MetaRefund: cdrscfg.Opts.Refund,
|
||||
utils.MetaRerate: cdrscfg.Opts.Rerate,
|
||||
utils.MetaStore: cdrscfg.Opts.Store,
|
||||
}
|
||||
@@ -237,6 +243,10 @@ func (cdrsOpts *CdrsOpts) Clone() *CdrsOpts {
|
||||
if cdrsOpts.Thresholds != nil {
|
||||
thdS = utils.CloneDynamicBoolOpt(cdrsOpts.Thresholds)
|
||||
}
|
||||
var refund []*utils.DynamicBoolOpt
|
||||
if cdrsOpts.Refund != nil {
|
||||
refund = utils.CloneDynamicBoolOpt(cdrsOpts.Refund)
|
||||
}
|
||||
var rerate []*utils.DynamicBoolOpt
|
||||
if cdrsOpts.Rerate != nil {
|
||||
rerate = utils.CloneDynamicBoolOpt(cdrsOpts.Rerate)
|
||||
@@ -253,6 +263,7 @@ func (cdrsOpts *CdrsOpts) Clone() *CdrsOpts {
|
||||
Rates: rtS,
|
||||
Stats: stS,
|
||||
Thresholds: thdS,
|
||||
Refund: refund,
|
||||
Rerate: rerate,
|
||||
Store: store,
|
||||
}
|
||||
@@ -305,6 +316,7 @@ type CdrsOptsJson struct {
|
||||
Rates []*utils.DynamicBoolOpt `json:"*rates"`
|
||||
Stats []*utils.DynamicBoolOpt `json:"*stats"`
|
||||
Thresholds []*utils.DynamicBoolOpt `json:"*thresholds"`
|
||||
Refund []*utils.DynamicBoolOpt `json:"*refund"`
|
||||
Rerate []*utils.DynamicBoolOpt `json:"*rerate"`
|
||||
Store []*utils.DynamicBoolOpt `json:"*store"`
|
||||
}
|
||||
@@ -351,6 +363,9 @@ func diffCdrsOptsJsonCfg(d *CdrsOptsJson, v1, v2 *CdrsOpts) *CdrsOptsJson {
|
||||
if !utils.DynamicBoolOptEqual(v1.Thresholds, v2.Thresholds) {
|
||||
d.Thresholds = v2.Thresholds
|
||||
}
|
||||
if !utils.DynamicBoolOptEqual(v1.Refund, v2.Refund) {
|
||||
d.Refund = v2.Refund
|
||||
}
|
||||
if !utils.DynamicBoolOptEqual(v1.Rerate, v2.Rerate) {
|
||||
d.Rerate = v2.Rerate
|
||||
}
|
||||
|
||||
@@ -60,6 +60,7 @@ func TestCdrsCfgloadFromJsonCfg(t *testing.T) {
|
||||
Rates: []*utils.DynamicBoolOpt{},
|
||||
Stats: []*utils.DynamicBoolOpt{},
|
||||
Thresholds: []*utils.DynamicBoolOpt{},
|
||||
Refund: []*utils.DynamicBoolOpt{},
|
||||
Rerate: []*utils.DynamicBoolOpt{},
|
||||
Store: []*utils.DynamicBoolOpt{},
|
||||
},
|
||||
@@ -209,6 +210,7 @@ func TestCdrsCfgAsMapInterface(t *testing.T) {
|
||||
utils.MetaRates: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaStats: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaThresholds: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaRefund: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaRerate: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaStore: []*utils.DynamicBoolOpt{},
|
||||
},
|
||||
@@ -250,6 +252,7 @@ func TestCdrsCfgAsMapInterface2(t *testing.T) {
|
||||
utils.MetaRates: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaStats: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaThresholds: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaRefund: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaRerate: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaStore: []*utils.DynamicBoolOpt{},
|
||||
},
|
||||
|
||||
@@ -130,6 +130,7 @@ func newCGRConfig(config []byte) (cfg *CGRConfig, err error) {
|
||||
Rates: []*utils.DynamicBoolOpt{},
|
||||
Stats: []*utils.DynamicBoolOpt{},
|
||||
Thresholds: []*utils.DynamicBoolOpt{},
|
||||
Refund: []*utils.DynamicBoolOpt{},
|
||||
Rerate: []*utils.DynamicBoolOpt{},
|
||||
Store: []*utils.DynamicBoolOpt{},
|
||||
}},
|
||||
|
||||
@@ -369,6 +369,13 @@ const CGRATES_CFG_JSON = `
|
||||
// "Value": false,
|
||||
// },
|
||||
// ],
|
||||
// "*refund": [
|
||||
// {
|
||||
// "Tenant": "*any",
|
||||
// "FilterIDs": [],
|
||||
// "Value": false,
|
||||
// },
|
||||
// ],
|
||||
// "*rerate": [
|
||||
// {
|
||||
// "Tenant": "*any",
|
||||
|
||||
@@ -332,6 +332,7 @@ func TestCgrCfgJSONDefaultsCDRS(t *testing.T) {
|
||||
Rates: []*utils.DynamicBoolOpt{},
|
||||
Stats: []*utils.DynamicBoolOpt{},
|
||||
Thresholds: []*utils.DynamicBoolOpt{},
|
||||
Refund: []*utils.DynamicBoolOpt{},
|
||||
Rerate: []*utils.DynamicBoolOpt{},
|
||||
Store: []*utils.DynamicBoolOpt{},
|
||||
},
|
||||
@@ -3986,6 +3987,7 @@ func TestV1GetConfigCdrs(t *testing.T) {
|
||||
utils.MetaRates: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaStats: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaThresholds: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaRefund: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaRerate: []*utils.DynamicBoolOpt{},
|
||||
utils.MetaStore: []*utils.DynamicBoolOpt{},
|
||||
},
|
||||
@@ -5086,7 +5088,7 @@ func TestV1GetConfigAsJSONFilterS(t *testing.T) {
|
||||
|
||||
func TestV1GetConfigAsJSONCdrs(t *testing.T) {
|
||||
var reply string
|
||||
expected := `{"cdrs":{"accounts_conns":[],"actions_conns":[],"attributes_conns":[],"chargers_conns":[],"ees_conns":[],"enabled":false,"extra_fields":[],"online_cdr_exports":null,"opts":{"*accounts":[],"*attributes":[],"*chargers":[],"*ees":[],"*rates":[],"*rerate":[],"*stats":[],"*store":[],"*thresholds":[]},"rates_conns":[],"session_cost_retries":5,"stats_conns":[],"thresholds_conns":[]}}`
|
||||
expected := `{"cdrs":{"accounts_conns":[],"actions_conns":[],"attributes_conns":[],"chargers_conns":[],"ees_conns":[],"enabled":false,"extra_fields":[],"online_cdr_exports":null,"opts":{"*accounts":[],"*attributes":[],"*chargers":[],"*ees":[],"*rates":[],"*refund":[],"*rerate":[],"*stats":[],"*store":[],"*thresholds":[]},"rates_conns":[],"session_cost_retries":5,"stats_conns":[],"thresholds_conns":[]}}`
|
||||
cfgCgr := NewDefaultCGRConfig()
|
||||
if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Sections: []string{CDRsJSON}}, &reply); err != nil {
|
||||
t.Error(err)
|
||||
|
||||
Reference in New Issue
Block a user