mirror of
https://github.com/rancher/norman.git
synced 2025-09-01 07:08:59 +00:00
Initial
This commit is contained in:
72
httperror/error.go
Normal file
72
httperror/error.go
Normal file
@@ -0,0 +1,72 @@
|
||||
package httperror
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
var (
|
||||
INVALID_DATE_FORMAT = ErrorCode("InvalidDateFormat")
|
||||
INVALID_FORMAT = ErrorCode("InvalidFormat")
|
||||
INVALID_REFERENCE = ErrorCode("InvalidReference")
|
||||
NOT_NULLABLE = ErrorCode("NotNullable")
|
||||
NOT_UNIQUE = ErrorCode("NotUnique")
|
||||
MIN_LIMIT_EXCEEDED = ErrorCode("MinLimitExceeded")
|
||||
MAX_LIMIT_EXCEEDED = ErrorCode("MaxLimitExceeded")
|
||||
MIN_LENGTH_EXCEEDED = ErrorCode("MinLengthExceeded")
|
||||
MAX_LENGTH_EXCEEDED = ErrorCode("MaxLengthExceeded")
|
||||
INVALID_OPTION = ErrorCode("InvalidOption")
|
||||
INVALID_CHARACTERS = ErrorCode("InvalidCharacters")
|
||||
MISSING_REQUIRED = ErrorCode("MissingRequired")
|
||||
INVALID_CSRF_TOKEN = ErrorCode("InvalidCSRFToken")
|
||||
INVALID_ACTION = ErrorCode("InvalidAction")
|
||||
INVALID_BODY_CONTENT = ErrorCode("InvalidBodyContent")
|
||||
INVALID_TYPE = ErrorCode("InvalidType")
|
||||
ACTION_NOT_AVAILABLE = ErrorCode("ActionNotAvailable")
|
||||
INVALID_STATE = ErrorCode("InvalidState")
|
||||
SERVER_ERROR = ErrorCode("ServerError")
|
||||
)
|
||||
|
||||
type ErrorCode string
|
||||
|
||||
type APIError struct {
|
||||
code ErrorCode
|
||||
message string
|
||||
Cause error
|
||||
fieldName string
|
||||
}
|
||||
|
||||
func NewAPIError(code ErrorCode, message string) error {
|
||||
return &APIError{
|
||||
code: code,
|
||||
message: message,
|
||||
}
|
||||
}
|
||||
|
||||
func NewFieldAPIError(code ErrorCode, fieldName, message string) error {
|
||||
return &APIError{
|
||||
code: code,
|
||||
message: message,
|
||||
fieldName: fieldName,
|
||||
}
|
||||
}
|
||||
|
||||
func WrapFieldAPIError(err error, code ErrorCode, fieldName, message string) error {
|
||||
return &APIError{
|
||||
Cause: err,
|
||||
code: code,
|
||||
message: message,
|
||||
fieldName: fieldName,
|
||||
}
|
||||
}
|
||||
|
||||
func WrapAPIError(err error, code ErrorCode, message string) error {
|
||||
return &APIError{
|
||||
code: code,
|
||||
message: message,
|
||||
Cause: err,
|
||||
}
|
||||
}
|
||||
|
||||
func (a *APIError) Error() string {
|
||||
return fmt.Sprintf("%s: %s", a.code, a.message)
|
||||
}
|
Reference in New Issue
Block a user