From 87fe8ebd91838643f9a09915295729a0885e30f3 Mon Sep 17 00:00:00 2001 From: porosnicuadrian Date: Tue, 12 Jan 2021 17:36:24 +0200 Subject: [PATCH] Completed ExportToFolder from APier with AccountProfile --- apier/v1/apier.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/apier/v1/apier.go b/apier/v1/apier.go index 6171656e7..2f602fe8b 100644 --- a/apier/v1/apier.go +++ b/apier/v1/apier.go @@ -1961,6 +1961,43 @@ func (apierSv1 *APIerSv1) ExportToFolder(arg *utils.ArgExportToFolder, reply *st } } csvWriter.Flush() + case utils.MetaAccountProfiles: + prfx := utils.AccountProfilePrefix + keys, err := apierSv1.DataManager.DataDB().GetKeysForPrefix(prfx) + if err != nil { + return err + } + if len(keys) == 0 { + continue + } + f, err := os.Create(path.Join(arg.Path, utils.AccountProfilesCsv)) + if err != nil { + return err + } + defer f.Close() + + csvWriter := csv.NewWriter(f) + csvWriter.Comma = utils.CSVSep + //write the header of the file + if err := csvWriter.Write(engine.AccountProfileMdls{}.CSVHeader()); err != nil { + return err + } + for _, key := range keys { + tntID := strings.SplitN(key[len(prfx):], utils.InInFieldSep, 2) + accPrf, err := apierSv1.DataManager.GetAccountProfile(tntID[0], tntID[1], + true, false, utils.NonTransactional) + if err != nil { + return err + } + for _, model := range engine.APItoModelTPAccountProfile(engine.AccountProfileToAPI(accPrf)) { + if record, err := engine.CsvDump(model); err != nil { + return err + } else if err := csvWriter.Write(record); err != nil { + return err + } + } + } + csvWriter.Flush() }