Fix uint64 encoding for JSON export
All IDs (uint64) should be encoded as string
This commit is contained in:
parent
e6775aaa09
commit
12abdbcd1e
@ -109,11 +109,14 @@ func (enc structuredEncoder) Record(r *types.Record) (err error) {
|
||||
for _, f := range enc.ff {
|
||||
switch f.name {
|
||||
case "recordID", "ID":
|
||||
out[f.name] = r.ID
|
||||
// encode all numbers as string (to prevent overflow of uint64 values)
|
||||
out[f.name] = fmtUint64(r.ID)
|
||||
case "moduleID":
|
||||
out[f.name] = r.ModuleID
|
||||
// encode all numbers as string (to prevent overflow of uint64 values)
|
||||
out[f.name] = fmtUint64(r.ModuleID)
|
||||
case "namespaceID":
|
||||
out[f.name] = r.NamespaceID
|
||||
// encode all numbers as string (to prevent overflow of uint64 values)
|
||||
out[f.name] = fmtUint64(r.NamespaceID)
|
||||
case "ownedBy":
|
||||
out[f.name], err = fmtSysUser(r.OwnedBy, enc.u)
|
||||
if err != nil {
|
||||
|
||||
@ -56,8 +56,8 @@ func Test_RecordEncoding(t *testing.T) {
|
||||
`12345,12345,2017-09-09T17:00:00Z,,,,` + "\n" +
|
||||
`54321,12345,1970-01-01T03:25:45Z,,,bar,1` + "\n",
|
||||
|
||||
structResult: `{"createdAt":"2017-09-09T17:00:00Z","deletedAt":null,"ownedBy":12345,"recordID":12345}` + "\n" +
|
||||
`{"createdAt":"1970-01-01T03:25:45Z","deletedAt":null,"fff":["1","2"],"foo":"bar","ownedBy":12345,"recordID":54321}` + "\n",
|
||||
structResult: `{"createdAt":"2017-09-09T17:00:00Z","deletedAt":null,"ownedBy":"12345","recordID":"12345"}` + "\n" +
|
||||
`{"createdAt":"1970-01-01T03:25:45Z","deletedAt":null,"fff":["1","2"],"foo":"bar","ownedBy":"12345","recordID":"54321"}` + "\n",
|
||||
},
|
||||
// TODO: Add test cases.
|
||||
}
|
||||
@ -67,7 +67,7 @@ func Test_RecordEncoding(t *testing.T) {
|
||||
buf := bytes.NewBuffer([]byte{})
|
||||
csvWriter := csv.NewWriter(buf)
|
||||
|
||||
fenc := NewFlatWriter(csvWriter, true, tt.ff...)
|
||||
fenc := NewFlatWriter(csvWriter, true, nil, tt.ff...)
|
||||
for _, r := range tt.rr {
|
||||
if err := fenc.Record(r); err != nil {
|
||||
t.Errorf("unexpected error = %v,", err)
|
||||
@ -86,7 +86,7 @@ func Test_RecordEncoding(t *testing.T) {
|
||||
buf := bytes.NewBuffer([]byte{})
|
||||
jsonEnc := json.NewEncoder(buf)
|
||||
|
||||
senc := NewStructuredEncoder(jsonEnc, tt.ff...)
|
||||
senc := NewStructuredEncoder(jsonEnc, nil, tt.ff...)
|
||||
for _, r := range tt.rr {
|
||||
if err := senc.Record(r); err != nil {
|
||||
t.Errorf("unexpected error = %v,", err)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user