1
0
mirror of https://github.com/lus/pasty.git synced 2023-08-10 21:13:09 +03:00
pasty/internal/web/response_writer.go

36 lines
817 B
Go
Raw Normal View History

2023-06-07 20:51:54 +03:00
package web
import (
"encoding/json"
2023-06-17 18:00:44 +03:00
"github.com/lus/pasty/pkg/chizerolog"
2023-06-07 20:51:54 +03:00
"net/http"
)
2023-06-17 18:00:44 +03:00
func writeErr(request *http.Request, writer http.ResponseWriter, err error) {
chizerolog.InjectError(request, err)
2023-06-07 20:51:54 +03:00
writeString(writer, http.StatusInternalServerError, err.Error())
}
func writeString(writer http.ResponseWriter, status int, value string) {
writer.WriteHeader(status)
writer.Write([]byte(value))
}
func writeJSON(writer http.ResponseWriter, status int, value any) error {
jsonData, err := json.Marshal(value)
if err != nil {
return err
}
writer.WriteHeader(status)
writer.Write(jsonData)
return nil
}
2023-06-17 18:00:44 +03:00
func writeJSONOrErr(request *http.Request, writer http.ResponseWriter, status int, value any) {
2023-06-07 20:51:54 +03:00
if err := writeJSON(writer, status, value); err != nil {
2023-06-17 18:00:44 +03:00
writeErr(request, writer, err)
2023-06-07 20:51:54 +03:00
}
}