diff --git a/cdrc/cdrc.go b/cdrc/cdrc.go index 37115d409..28e0e9567 100644 --- a/cdrc/cdrc.go +++ b/cdrc/cdrc.go @@ -21,7 +21,6 @@ package cdrc import ( "bufio" "encoding/csv" - "encoding/json" "fmt" "io" "io/ioutil" @@ -165,8 +164,7 @@ func (self *Cdrc) recordToStoredCdr(record []string) (*utils.StoredCdr, error) { for _, rsrFld := range httpFieldCfg.Value { httpAddr += rsrFld.ParseValue("") } - cdrJson, _ := json.Marshal(storedCdr) - if outValByte, err = utils.HttpJsonPost(httpAddr, self.httpSkipTlsCheck, cdrJson); err != nil && httpFieldCfg.Mandatory { + if outValByte, err = utils.HttpJsonPost(httpAddr, self.httpSkipTlsCheck, storedCdr); err != nil && httpFieldCfg.Mandatory { return nil, err } else { fieldVal = string(outValByte) @@ -246,12 +244,12 @@ func (self *Cdrc) processFile(filePath string) error { } procRowNr += 1 // Only increase if not end of file if err != nil { - engine.Logger.Err(fmt.Sprintf(" Error in csv file: %s", err.Error())) + engine.Logger.Err(fmt.Sprintf(" Row %d - csv error: %s", procRowNr, err.Error())) continue // Other csv related errors, ignore } storedCdr, err := self.recordToStoredCdr(record) if err != nil { - engine.Logger.Err(fmt.Sprintf(" Error in csv file: %s", err.Error())) + engine.Logger.Err(fmt.Sprintf(" Row %d - failed converting to StoredCdr, error: %s", procRowNr, err.Error())) continue } if self.cdrsAddress == utils.INTERNAL { diff --git a/config/config.go b/config/config.go index 4b5cbb12b..b42d47bda 100644 --- a/config/config.go +++ b/config/config.go @@ -233,7 +233,7 @@ func (self *CGRConfig) checkConfigSanity() error { if cdrcInst.CdrFormat == utils.CSV { for _, cdrFld := range cdrcInst.CdrFields { for _, rsrFld := range cdrFld.Value { - if _, errConv := strconv.Atoi(rsrFld.Id); errConv != nil { + if _, errConv := strconv.Atoi(rsrFld.Id); errConv != nil && !rsrFld.IsStatic() { return fmt.Errorf("CDR fields must be indices in case of .csv files, have instead: %s", rsrFld.Id) } } diff --git a/utils/coreutils.go b/utils/coreutils.go index 4b9ce11c6..b27bf0bf3 100644 --- a/utils/coreutils.go +++ b/utils/coreutils.go @@ -278,6 +278,9 @@ func HttpJsonPost(url string, skipTlsVerify bool, content interface{}) ([]byte, if err != nil { return nil, err } + if resp.StatusCode > 299 { + return respBody, fmt.Errorf("Unexpected status code received: %d", resp.StatusCode) + } return respBody, nil }