aboutsummaryrefslogtreecommitdiff
path: root/internal/web/error_pages.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-04-05 23:18:30 +0800
committerRunxi Yu <me@runxiyu.org>2025-04-05 23:18:30 +0800
commitedc30e6d36b51f73d2db31e6fbc55f86e8ca451f (patch)
tree5d15da4dc72b71e86f7293e51d12b29706e8889a /internal/web/error_pages.go
parentRemove an unnecessary nolint:gochecknoglobals (diff)
downloadforge-edc30e6d36b51f73d2db31e6fbc55f86e8ca451f.tar.gz
forge-edc30e6d36b51f73d2db31e6fbc55f86e8ca451f.tar.zst
forge-edc30e6d36b51f73d2db31e6fbc55f86e8ca451f.zip
web: Separate HTTP error pages into its own package
Diffstat (limited to 'internal/web/error_pages.go')
-rw-r--r--internal/web/error_pages.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/internal/web/error_pages.go b/internal/web/error_pages.go
new file mode 100644
index 0000000..200e9d3
--- /dev/null
+++ b/internal/web/error_pages.go
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: AGPL-3.0-only
+// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu <https://runxiyu.org>
+
+package web
+
+import (
+ "html/template"
+ "net/http"
+)
+
+func ErrorPage404(templates *template.Template, w http.ResponseWriter, params map[string]any) {
+ w.WriteHeader(http.StatusNotFound)
+ _ = templates.ExecuteTemplate(w, "404", params)
+}
+
+func ErrorPage400(templates *template.Template, w http.ResponseWriter, params map[string]any, msg string) {
+ w.WriteHeader(http.StatusBadRequest)
+ params["complete_error_msg"] = msg
+ _ = templates.ExecuteTemplate(w, "400", params)
+}
+
+func ErrorPage400Colon(templates *template.Template, w http.ResponseWriter, params map[string]any) {
+ w.WriteHeader(http.StatusBadRequest)
+ _ = templates.ExecuteTemplate(w, "400_colon", params)
+}
+
+func ErrorPage403(templates *template.Template, w http.ResponseWriter, params map[string]any, msg string) {
+ w.WriteHeader(http.StatusForbidden)
+ params["complete_error_msg"] = msg
+ _ = templates.ExecuteTemplate(w, "403", params)
+}
+
+func ErrorPage451(templates *template.Template, w http.ResponseWriter, params map[string]any, msg string) {
+ w.WriteHeader(http.StatusUnavailableForLegalReasons)
+ params["complete_error_msg"] = msg
+ _ = templates.ExecuteTemplate(w, "451", params)
+}
+
+func ErrorPage500(templates *template.Template, w http.ResponseWriter, params map[string]any, msg string) {
+ w.WriteHeader(http.StatusInternalServerError)
+ params["complete_error_msg"] = msg
+ _ = templates.ExecuteTemplate(w, "500", params)
+}
+
+func ErrorPage501(templates *template.Template, w http.ResponseWriter, params map[string]any) {
+ w.WriteHeader(http.StatusNotImplemented)
+ _ = templates.ExecuteTemplate(w, "501", params)
+}