Files
wonderwall/pkg/errorhandler/errorhandler.go
2021-10-05 11:45:42 +02:00

26 lines
693 B
Go

package errorhandler
import (
"net/http"
"github.com/go-chi/httplog"
)
func respondError(w http.ResponseWriter, r *http.Request, statusCode int, cause error) {
logger := httplog.LogEntry(r.Context())
logger.Error().Stack().Err(cause).Msgf("error in route: %+v", cause)
w.WriteHeader(statusCode)
}
func InternalError(w http.ResponseWriter, r *http.Request, cause error) {
respondError(w, r, http.StatusInternalServerError, cause)
}
func BadRequest(w http.ResponseWriter, r *http.Request, cause error) {
respondError(w, r, http.StatusBadRequest, cause)
}
func Unauthorized(w http.ResponseWriter, r *http.Request, cause error) {
respondError(w, r, http.StatusUnauthorized, cause)
}