Add support for *template type in LoaderS

This commit is contained in:
TeoV
2020-08-26 11:52:53 +03:00
committed by Dan Christian Bogos
parent 2682ece350
commit b206feffcb
4 changed files with 14 additions and 8 deletions

View File

@@ -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
}
}

View File

@@ -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
}

View File

@@ -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))

View File

@@ -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