Handle CombimedErrNotFound

This commit is contained in:
DanB
2023-06-29 14:55:44 +02:00
parent 1860c301d3
commit d14bc12e10
3 changed files with 13 additions and 7 deletions

View File

@@ -305,21 +305,25 @@ func (cdr *CDR) String() string {
// combimedCdrFieldVal groups together CDRs with same CGRID and combines their values matching filter field ID
func (cdr *CDR) combimedCdrFieldVal(cfgCdrFld *config.FCTemplate, groupCDRs []*CDR, filterS *FilterS) (string, error) {
var combimedVal string // Will result as combination of the field values, filters must match
var hasVal bool
fltrMp := cdr.AsMapStorage()
for _, grpCDR := range groupCDRs {
if cdr.CGRID != grpCDR.CGRID {
continue // We only care about cdrs with same primary cdr behind
}
fmt.Printf("### grpCDR: %+v\n", utils.ToIJSON(grpCDR))
fltrMp[utils.MetaCmedReq] = grpCDR.AsMapStorage()[utils.MetaReq] // so we can relate in filters
if pass, err := filterS.Pass(grpCDR.Tenant, cfgCdrFld.Filters, fltrMp); err != nil {
return utils.EmptyString, err
} else if !pass {
continue
}
if !hasVal {
hasVal = true
}
combimedVal += grpCDR.FieldsAsString(cfgCdrFld.Value)
fmt.Printf("### Adding to combimedVal: <%s>, field: %+v\n", combimedVal, cfgCdrFld)
}
if !hasVal {
return utils.EmptyString, utils.ErrCombimedNotFound
}
return combimedVal, nil
}
@@ -446,6 +450,9 @@ func (cdr *CDR) AsExportRecord(exportFields []*config.FCTemplate,
}
fmtOut, err := cdr.formatField(cfgFld, httpSkipTLSCheck, groupedCDRs, filterS)
if err != nil {
if err == utils.ErrCombimedNotFound {
continue
}
utils.Logger.Warning(fmt.Sprintf("<CDR> error: %s exporting field: %s, CDR: %s\n",
err.Error(), utils.ToJSON(cfgFld), utils.ToJSON(cdr)))
return nil, err

View File

@@ -1479,10 +1479,8 @@ func TestCDRcombimedCdrFieldVal(t *testing.T) {
t.Errorf("Error: %+v", err)
}
if out, err := cdr.combimedCdrFieldVal(tpFld, groupCDRs, &FilterS{cfg: cfg}); err != nil {
t.Error(err)
} else if out != utils.EmptyString {
t.Errorf("Expected : %+v, received: %+v", utils.EmptyString, out)
if out, err := cdr.combimedCdrFieldVal(tpFld, groupCDRs, &FilterS{cfg: cfg}); err == nil {
t.Errorf("Expected error %v, received: %+v", utils.ErrCombimedNotFound, out)
}
}

View File

@@ -71,6 +71,7 @@ var (
ErrIndexOutOfBounds = errors.New("INDEX_OUT_OF_BOUNDS")
ErrWrongPath = errors.New("WRONG_PATH")
ErrServiceAlreadyRunning = fmt.Errorf("service already running")
ErrCombimedNotFound = errors.New("COMBIMED_NOT_FOUND")
ErrMap = map[string]error{
ErrNoMoreData.Error(): ErrNoMoreData,