mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Add support for *template type in LoaderS
This commit is contained in:
committed by
Dan Christian Bogos
parent
2682ece350
commit
b206feffcb
@@ -637,7 +637,7 @@ func (cfg *CGRConfig) loadLoaderSCfg(jsnCfg *CgrJsonCfg) (err error) {
|
||||
// cfg.loaderCfg = make(LoaderSCfgs, len(jsnLoaderCfg))
|
||||
for _, profile := range jsnLoaderCfg {
|
||||
loadSCfgp := NewDfltLoaderSCfg()
|
||||
loadSCfgp.loadFromJsonCfg(profile, cfg.generalCfg.RSRSep)
|
||||
loadSCfgp.loadFromJsonCfg(profile, cfg.templates, cfg.generalCfg.RSRSep)
|
||||
cfg.loaderCfg = append(cfg.loaderCfg, loadSCfgp) // use apend so the loaderS profile to be loaded from multiple files
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ type LoaderDataType struct { //rename to LoaderDataType
|
||||
Fields []*FCTemplate
|
||||
}
|
||||
|
||||
func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType, separator string) (err error) {
|
||||
func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType, msgTemplates map[string][]*FCTemplate, separator string) (err error) {
|
||||
if jsnCfg == nil {
|
||||
return nil
|
||||
}
|
||||
@@ -92,11 +92,16 @@ func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType, separato
|
||||
if self.Fields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Fields, separator); err != nil {
|
||||
return
|
||||
}
|
||||
if tpls, err := InflateTemplates(self.Fields, msgTemplates); err != nil {
|
||||
return err
|
||||
} else if tpls != nil {
|
||||
self.Fields = tpls
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *LoaderSCfg) loadFromJsonCfg(jsnCfg *LoaderJsonCfg, separator string) (err error) {
|
||||
func (self *LoaderSCfg) loadFromJsonCfg(jsnCfg *LoaderJsonCfg, msgTemplates map[string][]*FCTemplate, separator string) (err error) {
|
||||
if jsnCfg == nil {
|
||||
return nil
|
||||
}
|
||||
@@ -144,7 +149,7 @@ func (self *LoaderSCfg) loadFromJsonCfg(jsnCfg *LoaderJsonCfg, separator string)
|
||||
data := make([]*LoaderDataType, len(*jsnCfg.Data))
|
||||
for idx, jsnLoCfg := range *jsnCfg.Data {
|
||||
data[idx] = NewDfltLoaderDataTypeConfig()
|
||||
data[idx].loadFromJsonCfg(jsnLoCfg, separator)
|
||||
data[idx].loadFromJsonCfg(jsnLoCfg, msgTemplates, separator)
|
||||
}
|
||||
self.Data = data
|
||||
}
|
||||
|
||||
@@ -27,12 +27,12 @@ import (
|
||||
|
||||
func TestLoaderSCfgloadFromJsonCfg(t *testing.T) {
|
||||
var loadscfg, expected LoaderSCfg
|
||||
if err := loadscfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
|
||||
if err := loadscfg.loadFromJsonCfg(nil, nil, utils.INFIELD_SEP); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(loadscfg, expected) {
|
||||
t.Errorf("Expected: %+v ,recived: %+v", expected, loadscfg)
|
||||
}
|
||||
if err := loadscfg.loadFromJsonCfg(new(LoaderJsonCfg), utils.INFIELD_SEP); err != nil {
|
||||
if err := loadscfg.loadFromJsonCfg(new(LoaderJsonCfg), nil, utils.INFIELD_SEP); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(loadscfg, expected) {
|
||||
t.Errorf("Expected: %+v ,recived: %+v", expected, loadscfg)
|
||||
@@ -100,7 +100,7 @@ func TestLoaderSCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Error(err)
|
||||
} else if jsnLoadersCfg, err := jsnCfg.LoaderJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = loadscfg.loadFromJsonCfg(jsnLoadersCfg[0], utils.INFIELD_SEP); err != nil {
|
||||
} else if err = loadscfg.loadFromJsonCfg(jsnLoadersCfg[0], nil, utils.INFIELD_SEP); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(expected, loadscfg) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(loadscfg))
|
||||
@@ -174,7 +174,7 @@ func TestLoaderCfgAsMapInterface(t *testing.T) {
|
||||
t.Error(err)
|
||||
} else if jsnLoadersCfg, err := jsnCfg.LoaderJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = loadscfg.loadFromJsonCfg(jsnLoadersCfg[0], utils.INFIELD_SEP); err != nil {
|
||||
} else if err = loadscfg.loadFromJsonCfg(jsnLoadersCfg[0], nil, utils.INFIELD_SEP); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := loadscfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
|
||||
@@ -98,6 +98,7 @@ cgrates (0.11.0~dev) UNRELEASED; urgency=medium
|
||||
* [ERs] Added support for *amqp_json_map type
|
||||
* [DataDB] Moved all specific DB options in opts
|
||||
* [Config] Add new section "template"
|
||||
* [LoaderS] Add support for *template type
|
||||
|
||||
-- DanB <danb@cgrates.org> Wed, 19 Feb 2020 13:25:52 +0200
|
||||
|
||||
|
||||
Reference in New Issue
Block a user