From 8b6aa177c7f668317e8833a52ac5b89f07d24298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Wed, 27 May 2020 17:11:36 +0200 Subject: [PATCH] Add sys user export to .csv export --- compose/encoder/record.go | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/compose/encoder/record.go b/compose/encoder/record.go index b53a42ae0..f91951017 100644 --- a/compose/encoder/record.go +++ b/compose/encoder/record.go @@ -22,7 +22,18 @@ func fmtUint64(u uint64) string { return strconv.FormatUint(u, 10) } -func (enc flatWriter) Record(r *types.Record) error { +func fmtSysUser(u uint64, finder userFinder) (string, error) { + if u <= 0 || finder == nil { + return fmtUint64(u), nil + } + su, err := finder(u) + if err != nil { + return "", err + } + return su.Name, nil +} + +func (enc flatWriter) Record(r *types.Record) (err error) { var out = make([]string, len(enc.ff)) for f, field := range enc.ff { @@ -34,17 +45,29 @@ func (enc flatWriter) Record(r *types.Record) error { case "namespaceID": out[f] = fmtUint64(r.NamespaceID) case "ownedBy": - out[f] = fmtUint64(r.OwnedBy) + out[f], err = fmtSysUser(r.OwnedBy, enc.u) + if err != nil { + return err + } case "createdBy": - out[f] = fmtUint64(r.CreatedBy) + out[f], err = fmtSysUser(r.CreatedBy, enc.u) + if err != nil { + return err + } case "createdAt": out[f] = fmtTime(&r.CreatedAt) case "updatedBy": - out[f] = fmtUint64(r.UpdatedBy) + out[f], err = fmtSysUser(r.UpdatedBy, enc.u) + if err != nil { + return err + } case "updatedAt": out[f] = fmtTime(r.UpdatedAt) case "deletedBy": - out[f] = fmtUint64(r.DeletedBy) + out[f], err = fmtSysUser(r.DeletedBy, enc.u) + if err != nil { + return err + } case "deletedAt": out[f] = fmtTime(r.DeletedAt) default: