diff --git a/config/config.go b/config/config.go index 25d020b7d..a746dd96d 100755 --- a/config/config.go +++ b/config/config.go @@ -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 } } diff --git a/config/loaderscfg.go b/config/loaderscfg.go index 26f7696b6..59f360cd1 100644 --- a/config/loaderscfg.go +++ b/config/loaderscfg.go @@ -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 } diff --git a/config/loaderscfg_test.go b/config/loaderscfg_test.go index edbdd7f2d..c1294e196 100644 --- a/config/loaderscfg_test.go +++ b/config/loaderscfg_test.go @@ -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)) diff --git a/packages/debian/changelog b/packages/debian/changelog index 13ab29ee6..c4c576fb4 100644 --- a/packages/debian/changelog +++ b/packages/debian/changelog @@ -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 Wed, 19 Feb 2020 13:25:52 +0200