created hws module
This commit is contained in:
39
hws/errors.go
Normal file
39
hws/errors.go
Normal 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)
|
||||
}
|
||||
Reference in New Issue
Block a user