Remove forJSON

This commit is contained in:
binwiederhier
2026-01-08 11:39:32 -05:00
parent 239959e2a4
commit dffee9ea7d
3 changed files with 9 additions and 15 deletions

View File

@@ -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,

View File

@@ -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 {

View File

@@ -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,
}
}