TPExporter considering fileFormat

This commit is contained in:
DanB
2014-10-21 10:30:54 +02:00
parent 771e0c49dc
commit d6c97eec98
2 changed files with 25 additions and 9 deletions

View File

@@ -27,6 +27,9 @@ import (
)
func (self *ApierV2) RemTP(tpid string, reply *string) error {
if len(tpid) == 0 {
return fmt.Errorf("%s:TPid", utils.ERR_MANDATORY_IE_MISSING)
}
if err := self.StorDb.RemTPData("", tpid); err != nil {
return fmt.Errorf("%s:%s", utils.ERR_SERVER_ERROR, err.Error())
} else {

View File

@@ -24,6 +24,7 @@ import (
"encoding/csv"
"errors"
"fmt"
"io"
"os"
"path"
"unicode/utf8"
@@ -130,23 +131,35 @@ func (self *TPExporter) writeOut(fileName string, tpData []utils.ExportedData) e
if len(tpData) == 0 {
return nil
}
var fWriter io.Writer
var writerOut utils.CgrRecordWriter
var err error
if self.compress {
if f, err := self.zipWritter.Create(fileName); err != nil {
if fWriter, err = self.zipWritter.Create(fileName); err != nil {
return err
}
} else if len(self.exportPath) != 0 {
if f, err := os.Create(path.Join(self.exportPath, fileName)); err != nil {
return err
} else {
writerOut = utils.NewCgrIORecordWriter(f)
fWriter = f
defer f.Close()
}
} else { // For now the only supported here is csv
fileOut, err := os.Create(path.Join(self.exportPath, fileName))
if err != nil {
return err
}
defer fileOut.Close()
csvWriter := csv.NewWriter(fileOut)
} else {
fWriter = new(bytes.Buffer)
}
switch self.fileFormat {
case utils.CSV:
csvWriter := csv.NewWriter(fWriter)
csvWriter.Comma = self.sep
writerOut = csvWriter
default:
writerOut = utils.NewCgrIORecordWriter(fWriter)
}
for _, tpItem := range tpData {
for _, record := range tpItem.AsExportSlice() {
if err := writerOut.Write(record); err != nil {