MM-22051: Remove ToJson methods from network writes (#17999)
We replace the double conversion of []byte to string, with a direct write to http.ResponseWriter. https://mattermost.atlassian.net/browse/MM-22051 Tried using gofmt -r, but it only accepts Go expressions. So had to resort to an ugly sed replace sed -E -i 's/w.Write\(\[\]byte\((.*).ToJson\(\)\)\)/if err := json.NewEncoder\(w\).Encode\(\1\); err != nil { mlog.Warn\("Error while writing response", mlog.Err\(err\)\)}/g' *.go ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
ae7119ddf5
Коммит
23800326a0
@@ -260,7 +260,9 @@ func getAudits(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
auditRec.AddMeta("page", c.Params.Page)
|
||||
auditRec.AddMeta("audits_per_page", c.Params.LogsPerPage)
|
||||
|
||||
w.Write([]byte(audits.ToJson()))
|
||||
if err := json.NewEncoder(w).Encode(audits); err != nil {
|
||||
mlog.Warn("Error while writing response", mlog.Err(err))
|
||||
}
|
||||
}
|
||||
|
||||
func databaseRecycle(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
@@ -397,7 +399,9 @@ func getAnalytics(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
w.Write([]byte(rows.ToJson()))
|
||||
if err := json.NewEncoder(w).Encode(rows); err != nil {
|
||||
mlog.Warn("Error while writing response", mlog.Err(err))
|
||||
}
|
||||
}
|
||||
|
||||
func getSupportedTimezones(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
@@ -539,7 +543,9 @@ func pushNotificationAck(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
w.Write([]byte(msg.ToJson()))
|
||||
if err2 := json.NewEncoder(w).Encode(msg); err2 != nil {
|
||||
mlog.Warn("Error while writing response", mlog.Err(err2))
|
||||
}
|
||||
|
||||
return
|
||||
} else if err != nil {
|
||||
@@ -600,7 +606,12 @@ func getServerBusyExpires(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
c.SetPermissionError(model.PermissionManageSystem)
|
||||
return
|
||||
}
|
||||
w.Write([]byte(c.App.Srv().Busy.ToJson()))
|
||||
|
||||
// We call to ToJson because it actually returns a different struct
|
||||
// along with doing some computations.
|
||||
if _, err := w.Write([]byte(c.App.Srv().Busy.ToJson())); err != nil {
|
||||
mlog.Warn("Error while writing response", mlog.Err(err))
|
||||
}
|
||||
}
|
||||
|
||||
func upgradeToEnterprise(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
Ссылка в новой задаче
Block a user