From dffee9ea7d64cfb928ed31d1efb61490252c6d57 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Thu, 8 Jan 2026 11:39:32 -0500 Subject: [PATCH] Remove forJSON --- server/message_cache.go | 4 ++++ server/server.go | 8 ++++---- server/types.go | 12 +----------- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/server/message_cache.go b/server/message_cache.go index 589d06f8..1752c2c9 100644 --- a/server/message_cache.go +++ b/server/message_cache.go @@ -773,6 +773,10 @@ func readMessage(rows *sql.Rows) (*message, error) { URL: attachmentURL, } } + // Clear SID if it equals ID (we do not want the SID in the message output) + if sid == id { + sid = "" + } return &message{ ID: id, SID: sid, diff --git a/server/server.go b/server/server.go index 40a15e30..edae9f2a 100644 --- a/server/server.go +++ b/server/server.go @@ -877,7 +877,7 @@ func (s *Server) handlePublish(w http.ResponseWriter, r *http.Request, v *visito return err } minc(metricMessagesPublishedSuccess) - return s.writeJSON(w, m.forJSON()) + return s.writeJSON(w, m) } func (s *Server) handlePublishMatrix(w http.ResponseWriter, r *http.Request, v *visitor) error { @@ -948,7 +948,7 @@ func (s *Server) handleDelete(w http.ResponseWriter, r *http.Request, v *visitor s.mu.Lock() s.messages++ s.mu.Unlock() - return s.writeJSON(w, m.forJSON()) + return s.writeJSON(w, m) } func (s *Server) sendToFirebase(v *visitor, m *message) { @@ -1340,7 +1340,7 @@ func (s *Server) handleBodyAsAttachment(r *http.Request, v *visitor, m *message, func (s *Server) handleSubscribeJSON(w http.ResponseWriter, r *http.Request, v *visitor) error { encoder := func(msg *message) (string, error) { var buf bytes.Buffer - if err := json.NewEncoder(&buf).Encode(msg.forJSON()); err != nil { + if err := json.NewEncoder(&buf).Encode(msg); err != nil { return "", err } return buf.String(), nil @@ -1351,7 +1351,7 @@ func (s *Server) handleSubscribeJSON(w http.ResponseWriter, r *http.Request, v * func (s *Server) handleSubscribeSSE(w http.ResponseWriter, r *http.Request, v *visitor) error { encoder := func(msg *message) (string, error) { var buf bytes.Buffer - if err := json.NewEncoder(&buf).Encode(msg.forJSON()); err != nil { + if err := json.NewEncoder(&buf).Encode(msg); err != nil { return "", err } if msg.Event != messageEvent { diff --git a/server/types.go b/server/types.go index 88110b0d..b68721a3 100644 --- a/server/types.go +++ b/server/types.go @@ -64,16 +64,6 @@ func (m *message) Context() log.Context { return fields } -// forJSON returns a copy of the message prepared for JSON output. -// It clears SID if it equals ID (to avoid redundant output). -func (m *message) forJSON() *message { - msg := *m - if msg.SID == msg.ID { - msg.SID = "" // Will be omitted due to omitempty - } - return &msg -} - type attachment struct { Name string `json:"name"` Type string `json:"type,omitempty"` @@ -560,7 +550,7 @@ func newWebPushPayload(subscriptionID string, message *message) *webPushPayload return &webPushPayload{ Event: webPushMessageEvent, SubscriptionID: subscriptionID, - Message: message.forJSON(), + Message: message, } }