mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-05-10 17:43:43 +08:00
56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
package apperror
|
|
|
|
import "net/http"
|
|
|
|
type AppError struct {
|
|
Status int
|
|
Code string
|
|
Message string
|
|
Err error
|
|
}
|
|
|
|
func (e *AppError) Error() string {
|
|
if e == nil {
|
|
return ""
|
|
}
|
|
if e.Err != nil {
|
|
return e.Err.Error()
|
|
}
|
|
return e.Message
|
|
}
|
|
|
|
func (e *AppError) Unwrap() error {
|
|
if e == nil {
|
|
return nil
|
|
}
|
|
return e.Err
|
|
}
|
|
|
|
func New(status int, code, message string, err error) *AppError {
|
|
return &AppError{Status: status, Code: code, Message: message, Err: err}
|
|
}
|
|
|
|
func BadRequest(code, message string, err error) *AppError {
|
|
return New(http.StatusBadRequest, code, message, err)
|
|
}
|
|
|
|
func Unauthorized(code, message string, err error) *AppError {
|
|
return New(http.StatusUnauthorized, code, message, err)
|
|
}
|
|
|
|
func Forbidden(code, message string, err error) *AppError {
|
|
return New(http.StatusForbidden, code, message, err)
|
|
}
|
|
|
|
func Conflict(code, message string, err error) *AppError {
|
|
return New(http.StatusConflict, code, message, err)
|
|
}
|
|
|
|
func TooManyRequests(code, message string, err error) *AppError {
|
|
return New(http.StatusTooManyRequests, code, message, err)
|
|
}
|
|
|
|
func Internal(code, message string, err error) *AppError {
|
|
return New(http.StatusInternalServerError, code, message, err)
|
|
}
|