From 99eac177511cd94e08650ea5223d5e6c1ec605a7 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Sun, 29 Jul 2018 01:19:42 +0200 Subject: [PATCH] Add created/updated fields for new & updated messages --- sam/websocket/incoming_message.go | 8 +++++++- sam/websocket/outgoing/message.go | 12 +++++++++--- sam/websocket/payload.go | 3 +++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/sam/websocket/incoming_message.go b/sam/websocket/incoming_message.go index 2b885488d..5c16f58fe 100644 --- a/sam/websocket/incoming_message.go +++ b/sam/websocket/incoming_message.go @@ -36,7 +36,13 @@ func (s *Session) messageUpdate(ctx context.Context, p *incoming.MessageUpdate) return err } - return s.sendToAllSubscribers(&outgoing.MessageUpdate{ID: p.ID, Message: msg.Message}, p.ID) + omsg := &outgoing.MessageUpdate{ + ID: p.ID, + Message: msg.Message, + UpdatedAt: *msg.UpdatedAt, + } + + return s.sendToAllSubscribers(omsg, p.ID) } func (s *Session) messageDelete(ctx context.Context, p *incoming.MessageDelete) error { diff --git a/sam/websocket/outgoing/message.go b/sam/websocket/outgoing/message.go index 8b1fb959c..7454b3354 100644 --- a/sam/websocket/outgoing/message.go +++ b/sam/websocket/outgoing/message.go @@ -2,16 +2,20 @@ package outgoing import ( "encoding/json" + "time" ) type ( Message struct { ID string `json:"id"` - ChannelID string `json:"cid"` - Message string `json:"m"` Type string `json:"t"` - ReplyTo string `json:"rid"` + Message string `json:"m"` UserID string `json:"uid"` + ChannelID string `json:"cid"` + ReplyTo string `json:"rid"` + + CreatedAt time.Time `json:"created_at,omitempty" db:"created_at"` + UpdatedAt *time.Time `json:"updated_at,omitempty" db:"updated_at"` } Messages []*Message @@ -19,6 +23,8 @@ type ( MessageUpdate struct { ID string `json:"id"` Message string `json:"m"` + + UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at"` } MessageDelete struct { diff --git a/sam/websocket/payload.go b/sam/websocket/payload.go index 0670c73e6..dfd6edf2b 100644 --- a/sam/websocket/payload.go +++ b/sam/websocket/payload.go @@ -14,6 +14,9 @@ func payloadFromMessage(msg *types.Message) *outgoing.Message { Type: msg.Type, UserID: strconv.FormatUint(msg.UserID, 10), ReplyTo: strconv.FormatUint(msg.ReplyTo, 10), + + CreatedAt: msg.CreatedAt, + UpdatedAt: msg.UpdatedAt, } }