mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-15 21:29:52 +05:00
Return error for FCTemplate instead of panic
This commit is contained in:
committed by
Dan Christian Bogos
parent
b7bd69c6be
commit
a0aeaacdae
@@ -113,7 +113,9 @@ func (self *CdrcConfig) loadFromJsonCfg(jsnCfg *CdrcJsonCfg) error {
|
||||
}
|
||||
}
|
||||
if jsnCfg.Tenant != nil {
|
||||
self.Tenant = NewRSRParsersMustCompile(*jsnCfg.Tenant, true)
|
||||
if self.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, true); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if jsnCfg.Continue_on_success != nil {
|
||||
self.ContinueOnSuccess = *jsnCfg.Continue_on_success
|
||||
@@ -127,16 +129,24 @@ func (self *CdrcConfig) loadFromJsonCfg(jsnCfg *CdrcJsonCfg) error {
|
||||
self.PartialCacheExpiryAction = *jsnCfg.Partial_cache_expiry_action
|
||||
}
|
||||
if jsnCfg.Header_fields != nil {
|
||||
self.HeaderFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Header_fields)
|
||||
if self.HeaderFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Header_fields); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if jsnCfg.Content_fields != nil {
|
||||
self.ContentFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Content_fields)
|
||||
if self.ContentFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Content_fields); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if jsnCfg.Trailer_fields != nil {
|
||||
self.TrailerFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Trailer_fields)
|
||||
if self.TrailerFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Trailer_fields); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if jsnCfg.Cache_dump_fields != nil {
|
||||
self.CacheDumpFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Cache_dump_fields)
|
||||
if self.CacheDumpFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Cache_dump_fields); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ type CdreConfig struct {
|
||||
TrailerFields []*FCTemplate
|
||||
}
|
||||
|
||||
func (self *CdreConfig) loadFromJsonCfg(jsnCfg *CdreJsonCfg) error {
|
||||
func (self *CdreConfig) loadFromJsonCfg(jsnCfg *CdreJsonCfg) (err error) {
|
||||
if jsnCfg == nil {
|
||||
return nil
|
||||
}
|
||||
@@ -80,13 +80,19 @@ func (self *CdreConfig) loadFromJsonCfg(jsnCfg *CdreJsonCfg) error {
|
||||
self.CostMultiplyFactor = *jsnCfg.Cost_multiply_factor
|
||||
}
|
||||
if jsnCfg.Header_fields != nil {
|
||||
self.HeaderFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Header_fields)
|
||||
if self.HeaderFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Header_fields); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if jsnCfg.Content_fields != nil {
|
||||
self.ContentFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Content_fields)
|
||||
if self.ContentFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Content_fields); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if jsnCfg.Trailer_fields != nil {
|
||||
self.TrailerFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Trailer_fields)
|
||||
if self.TrailerFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Trailer_fields); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -18,8 +18,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
package config
|
||||
|
||||
func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg) *FCTemplate {
|
||||
func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg) (*FCTemplate, error) {
|
||||
fcTmp := new(FCTemplate)
|
||||
var err error
|
||||
if jsnCfg.Tag != nil {
|
||||
fcTmp.Tag = *jsnCfg.Tag
|
||||
}
|
||||
@@ -36,7 +37,10 @@ func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg) *FCTemplate {
|
||||
}
|
||||
}
|
||||
if jsnCfg.Value != nil {
|
||||
fcTmp.Value = NewRSRParsersMustCompile(*jsnCfg.Value, true)
|
||||
fcTmp.Value, err = NewRSRParsers(*jsnCfg.Value, true)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if jsnCfg.Width != nil {
|
||||
fcTmp.Width = *jsnCfg.Width
|
||||
@@ -83,7 +87,7 @@ func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg) *FCTemplate {
|
||||
if jsnCfg.Mask_length != nil {
|
||||
fcTmp.MaskLen = *jsnCfg.Mask_length
|
||||
}
|
||||
return fcTmp
|
||||
return fcTmp, nil
|
||||
}
|
||||
|
||||
type FCTemplate struct {
|
||||
@@ -109,10 +113,14 @@ type FCTemplate struct {
|
||||
MaskLen int
|
||||
}
|
||||
|
||||
func FCTemplatesFromFCTemapltesJsonCfg(jsnCfgFlds []*FcTemplateJsonCfg) []*FCTemplate {
|
||||
func FCTemplatesFromFCTemapltesJsonCfg(jsnCfgFlds []*FcTemplateJsonCfg) ([]*FCTemplate, error) {
|
||||
retFields := make([]*FCTemplate, len(jsnCfgFlds))
|
||||
var err error
|
||||
for i, jsnFld := range jsnCfgFlds {
|
||||
retFields[i] = NewFCTemplateFromFCTemplateJsonCfg(jsnFld)
|
||||
retFields[i], err = NewFCTemplateFromFCTemplateJsonCfg(jsnFld)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
return retFields
|
||||
return retFields, err
|
||||
}
|
||||
|
||||
@@ -39,8 +39,9 @@ func TestNewFCTemplateFromFCTemplateJsonCfg(t *testing.T) {
|
||||
Filters: []string{"Filter1", "Filter2"},
|
||||
Value: NewRSRParsersMustCompile("cgrates.org", true),
|
||||
}
|
||||
rcv := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg)
|
||||
if !reflect.DeepEqual(expected, rcv) {
|
||||
if rcv, err := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(expected, rcv) {
|
||||
t.Errorf("expected: %s ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
@@ -78,8 +79,9 @@ func TestFCTemplatesFromFCTemapltesJsonCfg(t *testing.T) {
|
||||
Value: NewRSRParsersMustCompile("SampleValue", true),
|
||||
},
|
||||
}
|
||||
rcv := FCTemplatesFromFCTemapltesJsonCfg(jsnCfgs)
|
||||
if !reflect.DeepEqual(expected, rcv) {
|
||||
if rcv, err := FCTemplatesFromFCTemapltesJsonCfg(jsnCfgs); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(expected, rcv) {
|
||||
t.Errorf("expected: %s ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,10 +113,14 @@ func (ha *HttpAgntProcCfg) loadFromJsonCfg(jsnCfg *HttpAgentProcessorJsnCfg) (er
|
||||
ha.ContinueOnSuccess = *jsnCfg.Continue_on_success
|
||||
}
|
||||
if jsnCfg.Request_fields != nil {
|
||||
ha.RequestFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Request_fields)
|
||||
if ha.RequestFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Request_fields); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
if jsnCfg.Reply_fields != nil {
|
||||
ha.ReplyFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Reply_fields)
|
||||
if ha.ReplyFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Reply_fields); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ type LoaderDataType struct { //rename to LoaderDataType
|
||||
Fields []*FCTemplate
|
||||
}
|
||||
|
||||
func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType) error {
|
||||
func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType) (err error) {
|
||||
if jsnCfg == nil {
|
||||
return nil
|
||||
}
|
||||
@@ -69,7 +69,9 @@ func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType) error {
|
||||
self.Filename = *jsnCfg.File_name
|
||||
}
|
||||
if jsnCfg.Fields != nil {
|
||||
self.Fields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Fields)
|
||||
if self.Fields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Fields); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -136,10 +136,14 @@ func (self *RARequestProcessor) loadFromJsonCfg(jsnCfg *RAReqProcessorJsnCfg) (e
|
||||
self.Timezone = *jsnCfg.Timezone
|
||||
}
|
||||
if jsnCfg.Request_fields != nil {
|
||||
self.RequestFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Request_fields)
|
||||
if self.RequestFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Request_fields); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
if jsnCfg.Reply_fields != nil {
|
||||
self.ReplyFields = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Reply_fields)
|
||||
if self.ReplyFields, err = FCTemplatesFromFCTemapltesJsonCfg(*jsnCfg.Reply_fields); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -254,9 +254,15 @@ func TestWriteCdr(t *testing.T) {
|
||||
var err error
|
||||
wrBuf := &bytes.Buffer{}
|
||||
cfg, _ := config.NewDefaultCGRConfig()
|
||||
hdrCfgFlds = config.FCTemplatesFromFCTemapltesJsonCfg(hdrJsnCfgFlds)
|
||||
contentCfgFlds = config.FCTemplatesFromFCTemapltesJsonCfg(contentJsnCfgFlds)
|
||||
trailerCfgFlds = config.FCTemplatesFromFCTemapltesJsonCfg(trailerJsnCfgFlds)
|
||||
if hdrCfgFlds, err = config.FCTemplatesFromFCTemapltesJsonCfg(hdrJsnCfgFlds); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if contentCfgFlds, err = config.FCTemplatesFromFCTemapltesJsonCfg(contentJsnCfgFlds); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if trailerCfgFlds, err = config.FCTemplatesFromFCTemapltesJsonCfg(trailerJsnCfgFlds); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
cdreCfg := &config.CdreConfig{
|
||||
ExportFormat: utils.MetaFileFWV,
|
||||
HeaderFields: hdrCfgFlds,
|
||||
|
||||
Reference in New Issue
Block a user