feat: backend core - auth, user, role, permission, device, webhook, monitoring, cache, repository, service, middleware, API handlers
This commit is contained in:
41
internal/service/classified_error.go
Normal file
41
internal/service/classified_error.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package service
|
||||
|
||||
import "errors"
|
||||
|
||||
var (
|
||||
ErrRateLimitExceeded = errors.New("rate limit exceeded")
|
||||
ErrValidationFailed = errors.New("validation failed")
|
||||
)
|
||||
|
||||
type classifiedError struct {
|
||||
message string
|
||||
cause error
|
||||
}
|
||||
|
||||
func (e *classifiedError) Error() string {
|
||||
if e.message != "" {
|
||||
return e.message
|
||||
}
|
||||
if e.cause != nil {
|
||||
return e.cause.Error()
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (e *classifiedError) Unwrap() error {
|
||||
return e.cause
|
||||
}
|
||||
|
||||
func newRateLimitError(message string) error {
|
||||
return &classifiedError{
|
||||
message: message,
|
||||
cause: ErrRateLimitExceeded,
|
||||
}
|
||||
}
|
||||
|
||||
func newValidationError(message string) error {
|
||||
return &classifiedError{
|
||||
message: message,
|
||||
cause: ErrValidationFailed,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user