1
0
Fork 0
mirror of https://github.com/eosswedenorg/thalos synced 2026-06-18 04:40:03 +02:00

api/message/json/codec.go: fix timestamps, skip "Z" (always UTC) and use 3 decimals for milliseconds.

This commit is contained in:
Henrik Hautakoski 2023-05-05 09:20:35 +02:00
parent 1a75286240
commit 213daa1e46
6 changed files with 45 additions and 7 deletions

View file

@ -1,14 +1,19 @@
package json
import (
"encoding/json"
"time"
"github.com/eosswedenorg/thalos/api/message"
jsontime "github.com/liamylian/jsontime/v2/v2"
)
var json_codec = jsontime.ConfigWithCustomTimeFormat
func init() {
jsontime.SetDefaultTimeFormat("2006-01-02T15:04:05.000", time.UTC)
message.RegisterCodec("json", message.Codec{
Encoder: json.Marshal,
Decoder: json.Unmarshal,
Encoder: json_codec.Marshal,
Decoder: json_codec.Unmarshal,
})
}

View file

@ -36,9 +36,9 @@ func TestJson_EncodeActionTrace(t *testing.T) {
Return: []byte{0xde, 0xad, 0xbe, 0xef},
}
expected := `{"tx_id":"ed3b8e853647971cf8296f004c3a1aeac255f082b2cb3c12cc3222e2d7c174ab","blocknum":267372365,"blocktimestamp":"2003-03-21T17:23:09.5Z","name":"transfer","contract":"eosio","receiver":"account2","data":"eyJmcm9tIjoiYWNjb3VudDEiLCJxdWFudGl0eSI6IjEwMDAuMDAwMCBXQVgiLCJ0byI6ImFjY291bnQyIn0=","hex_data":"7b2266726f6d223a226163636f756e7431222c227175616e74697479223a22313030302e3030303020574158222c22746f223a226163636f756e7432227d","authorization":[{"actor":"account1","permission":"active"}],"except":"errstr","error":2,"return":"3q2+7w=="}`
expected := `{"tx_id":"ed3b8e853647971cf8296f004c3a1aeac255f082b2cb3c12cc3222e2d7c174ab","blocknum":267372365,"blocktimestamp":"2003-03-21T17:23:09.500","name":"transfer","contract":"eosio","receiver":"account2","data":"eyJmcm9tIjoiYWNjb3VudDEiLCJxdWFudGl0eSI6IjEwMDAuMDAwMCBXQVgiLCJ0byI6ImFjY291bnQyIn0=","hex_data":"7b2266726f6d223a226163636f756e7431222c227175616e74697479223a22313030302e3030303020574158222c22746f223a226163636f756e7432227d","authorization":[{"actor":"account1","permission":"active"}],"except":"errstr","error":2,"return":"3q2+7w=="}`
data, err := json.Marshal(msg)
data, err := json_codec.Marshal(msg)
assert.NoError(t, err)
assert.Equal(t, expected, string(data))
}
@ -69,10 +69,10 @@ func TestJson_DecodeActionTrace(t *testing.T) {
Return: []byte{0xde, 0xad, 0xbe, 0xef},
}
input := `{"tx_id":"952989f7464237b6cf9926e533ecd331df6794ed07564bd052bc368cbd65b4bc","blocknum":8723971,"blocktimestamp":"2024-06-21T08:08:26.5Z","name":"transfer","contract":"eosio","receiver":"account2","data":"eyJmcm9tIjoiYWNjb3VudDEiLCJxdWFudGl0eSI6IjEwMDAuMDAwMCBXQVgiLCJ0byI6ImFjY291bnQyIn0=","hex_data":"7b2266726f6d223a226163636f756e7431222c227175616e74697479223a22313030302e3030303020574158222c22746f223a226163636f756e7432227d","authorization":[{"actor":"account1","permission":"active"}],"except":"errstr","error":2,"return":"3q2+7w=="}`
input := `{"tx_id":"952989f7464237b6cf9926e533ecd331df6794ed07564bd052bc368cbd65b4bc","blocknum":8723971,"blocktimestamp":"2024-06-21T08:08:26.500","name":"transfer","contract":"eosio","receiver":"account2","data":"eyJmcm9tIjoiYWNjb3VudDEiLCJxdWFudGl0eSI6IjEwMDAuMDAwMCBXQVgiLCJ0byI6ImFjY291bnQyIn0=","hex_data":"7b2266726f6d223a226163636f756e7431222c227175616e74697479223a22313030302e3030303020574158222c22746f223a226163636f756e7432227d","authorization":[{"actor":"account1","permission":"active"}],"except":"errstr","error":2,"return":"3q2+7w=="}`
msg := message.ActionTrace{}
err = json.Unmarshal([]byte(input), &msg)
err = json_codec.Unmarshal([]byte(input), &msg)
assert.NoError(t, err)
assert.Equal(t, expected, msg)
}