2023-09-10 17:49:04 +01:00

41 lines
859 B
Go

package api
import "net/http"
type RequestError struct {
Err error
UserMessage *string
StatusCode int
}
func NewError(statusCode int, err error) *RequestError {
return &RequestError{
Err: err,
StatusCode: statusCode,
}
}
func NewInternalServerError(err error, message string) *RequestError {
return NewErrorWithMessage(http.StatusInternalServerError, err, message)
}
func NewDatabaseError(err error) *RequestError {
return NewInternalServerError(err, "Error interacting with database: please contact support")
}
func NewErrorWithMessage(statusCode int, err error, message string) *RequestError {
return &RequestError{
Err: err,
UserMessage: &message,
StatusCode: statusCode,
}
}
func (r *RequestError) Error() string {
if r.UserMessage != nil {
return *r.UserMessage
} else {
return r.Err.Error()
}
}