feat(router): improve error handling with dedicated error pages

- Add renderErrorPage helper for consistent error rendering
- Add ensureUserExistsMiddleware to detect deleted users and redirect to login
- Add catch-all 404 handler for unknown routes
- Gracefully handle data loading failures with error messages instead of crashing
- Log errors for debugging while still rendering pages
This commit is contained in:
john-okeefe committed 2026-02-20 13:25:41 -05:00
1 parent 79fcfa38f0
commit 7c652d5a3a
3 files changed
+186 -43

No files matched your search

+3
View File
@@ -2,6 +2,7 @@ package router
import (
"context"
"log"
"bookhoard/templates"
@@ -19,11 +20,13 @@ func getTemplateUserWithTheme(c echo.Context, cfg *Config) (templates.User, erro
userUUID, err := uuid.Parse(userID)
if err != nil {
log.Printf("getTemplateUserWithTheme failed: invalid UUID '%s': %v", userID, err)
return templates.User{}, err
}
userDB, err := cfg.Queries.GetUser(c.Request().Context(), uuidToPGType(userUUID))
if err != nil {
log.Printf("getTemplateUserWithTheme failed: database query error for user ID %s: %v", userID, err)
return templates.User{}, err
}