From a5e0304da22f466c32ac292ef7e4086813e730f2 Mon Sep 17 00:00:00 2001 From: Orne Brocaar Date: Fri, 27 Apr 2018 11:09:34 +0200 Subject: [PATCH] Update event-log text. Use JSON marshaling. --- internal/eventlog/eventlog.go | 11 +++++------ internal/eventlog/eventlog_test.go | 6 ++++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/internal/eventlog/eventlog.go b/internal/eventlog/eventlog.go index 12aa30f1c..4ade47063 100644 --- a/internal/eventlog/eventlog.go +++ b/internal/eventlog/eventlog.go @@ -1,9 +1,8 @@ package eventlog import ( - "bytes" "context" - "encoding/gob" + "encoding/json" "fmt" "time" @@ -39,12 +38,12 @@ func LogEventForDevice(devEUI lorawan.EUI64, el EventLog) error { defer c.Close() key := fmt.Sprintf(deviceEventUplinkPubSubKeyTempl, devEUI) - var buf bytes.Buffer - if err := gob.NewEncoder(&buf).Encode(el); err != nil { + b, err := json.Marshal(el) + if err != nil { return errors.Wrap(err, "gob encode error") } - if _, err := c.Do("PUBLISH", key, buf.Bytes()); err != nil { + if _, err := c.Do("PUBLISH", key, b); err != nil { return errors.Wrap(err, "publish device event error") } @@ -115,7 +114,7 @@ loop: func redisMessageToEventLog(msg redis.Message) (EventLog, error) { var el EventLog - if err := gob.NewDecoder(bytes.NewReader(msg.Data)).Decode(&el); err != nil { + if err := json.Unmarshal(msg.Data, &el); err != nil { return el, errors.Wrap(err, "gob decode error") } diff --git a/internal/eventlog/eventlog_test.go b/internal/eventlog/eventlog_test.go index 49e35b81b..9b0fc0729 100644 --- a/internal/eventlog/eventlog_test.go +++ b/internal/eventlog/eventlog_test.go @@ -41,6 +41,9 @@ func TestEventLog(t *testing.T) { Convey("When calling LogEventForDevice", func() { el := EventLog{ Type: Join, + Payload: map[string]interface{}{ + "foo": "bar", + }, } So(LogEventForDevice(devEUI, el), ShouldBeNil) @@ -48,6 +51,9 @@ func TestEventLog(t *testing.T) { Convey("Then the event has been logged", func() { So(<-logChannel, ShouldResemble, EventLog{ Type: Join, + Payload: map[string]interface{}{ + "foo": "bar", + }, }) }) })