created hws module

This commit is contained in:
2026-01-04 00:59:24 +11:00
parent ade3fa0454
commit 14eec74683
12 changed files with 479 additions and 0 deletions

39
hws/errors.go Normal file
View File

@@ -0,0 +1,39 @@
package hws
import "net/http"
type HWSError struct {
statusCode int // HTTP Status code
message string // Error message
error error // Error
}
type ErrorPage func(statusCode int, w http.ResponseWriter, r *http.Request) error
func NewError(statusCode int, msg string, err error) *HWSError {
return &HWSError{
statusCode: statusCode,
message: msg,
error: err,
}
}
func (server *Server) AddErrorPage(page ErrorPage) {
server.errorPage = page
}
func (server *Server) ThrowError(w http.ResponseWriter, r *http.Request, error *HWSError) {
w.WriteHeader(error.statusCode)
server.logger.logger.Error().Err(error.error).Msg(error.message)
if server.errorPage != nil {
err := server.errorPage(error.statusCode, w, r)
if err != nil {
server.logger.logger.Error().Err(err).Msg("Failed to render error page")
}
}
}
func (server *Server) ThrowWarn(w http.ResponseWriter, error *HWSError) {
w.WriteHeader(error.statusCode)
server.logger.logger.Warn().Err(error.error).Msg(error.message)
}