server: implement ISEs w/o public error outputs

This commit is contained in:
2026-05-17 01:09:52 +00:00
parent 9c24bdca1f
commit 8568b147bb
2 changed files with 13 additions and 5 deletions
+8
View File
@@ -38,4 +38,12 @@ func ErrRender(err error) render.Renderer {
} }
} }
func ErrInternal(err error) render.Renderer {
return &ErrResponse{
Err: err,
HTTPStatusCode: 500,
StatusText: "Internal server error.",
}
}
var ErrNotFound = &ErrResponse{HTTPStatusCode: 404, StatusText: "Resource not found."} var ErrNotFound = &ErrResponse{HTTPStatusCode: 404, StatusText: "Resource not found."}
+5 -5
View File
@@ -25,14 +25,14 @@ func ListUsers(w http.ResponseWriter, r *http.Request) {
dbUsers, err := dbGetAllUsers() dbUsers, err := dbGetAllUsers()
if err != nil { if err != nil {
slog.Error("user: failed to fetch users", "error", err) slog.Error("user: failed to fetch users", "error", err)
render.Render(w, r, ErrRender(err)) render.Render(w, r, ErrInternal(err))
return return
} }
slog.Debug("user: successfully fetched users", "count", len(dbUsers)) slog.Debug("user: successfully fetched users", "count", len(dbUsers))
if err := render.RenderList(w, r, NewUserListResponse(dbUsers)); err != nil { if err := render.RenderList(w, r, NewUserListResponse(dbUsers)); err != nil {
slog.Error("user: failed to render user list response", "error", err) slog.Error("user: failed to render user list response", "error", err)
render.Render(w, r, ErrRender(err)) render.Render(w, r, ErrInternal(err))
return return
} }
} }
@@ -53,7 +53,7 @@ func GetUser(w http.ResponseWriter, r *http.Request) {
render.Render(w, r, ErrNotFound) render.Render(w, r, ErrNotFound)
} else { } else {
slog.Error("user: failed to fetch user", "userid", parsed.String(), "error", err) slog.Error("user: failed to fetch user", "userid", parsed.String(), "error", err)
render.Render(w, r, ErrRender(err)) render.Render(w, r, ErrInternal(err))
} }
return return
} }
@@ -61,7 +61,7 @@ func GetUser(w http.ResponseWriter, r *http.Request) {
slog.Debug("user: rendering user", "userid", user.ID, "username", user.Name) slog.Debug("user: rendering user", "userid", user.ID, "username", user.Name)
if err := render.Render(w, r, NewUserPayloadResponse(user)); err != nil { if err := render.Render(w, r, NewUserPayloadResponse(user)); err != nil {
slog.Error("user: failed to render user", "userid", parsed.String(), "error", err) slog.Error("user: failed to render user", "userid", parsed.String(), "error", err)
render.Render(w, r, ErrRender(err)) render.Render(w, r, ErrInternal(err))
} }
} }
@@ -104,7 +104,7 @@ func NewUser(w http.ResponseWriter, r *http.Request) {
err = dbAddUser(&newUser) err = dbAddUser(&newUser)
if err != nil { if err != nil {
slog.Error("user: failed to add new user", "userID", newUser.ID, "userName", newUser.Name, "error", err) slog.Error("user: failed to add new user", "userID", newUser.ID, "userName", newUser.Name, "error", err)
render.Render(w, r, ErrRender(err)) render.Render(w, r, ErrInternal(err))
return return
} }