v2
This commit is contained in:
@ -295,3 +295,66 @@ func (c *Chain) Error() string {
|
||||
}
|
||||
return fmt.Sprintf("multiple errors: %s (and %d more)", c.errors[0].Error(), len(c.errors)-1)
|
||||
}
|
||||
|
||||
// Helper functions to check error types
|
||||
|
||||
// IsNotFound checks if an error is a not found error
|
||||
func IsNotFound(err error) bool {
|
||||
if appErr, ok := err.(*AppError); ok {
|
||||
return appErr.Code == ErrNotFound || appErr.Code == ErrApplicationNotFound ||
|
||||
appErr.Code == ErrTokenNotFound || appErr.Code == ErrPermissionNotFound
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// IsValidationError checks if an error is a validation error
|
||||
func IsValidationError(err error) bool {
|
||||
if appErr, ok := err.(*AppError); ok {
|
||||
return appErr.Code == ErrValidationFailed || appErr.Code == ErrInvalidInput ||
|
||||
appErr.Code == ErrMissingField || appErr.Code == ErrInvalidFormat
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// IsAuthenticationError checks if an error is an authentication error
|
||||
func IsAuthenticationError(err error) bool {
|
||||
if appErr, ok := err.(*AppError); ok {
|
||||
return appErr.Code == ErrUnauthorized || appErr.Code == ErrInvalidToken ||
|
||||
appErr.Code == ErrTokenExpired || appErr.Code == ErrInvalidCredentials
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// IsAuthorizationError checks if an error is an authorization error
|
||||
func IsAuthorizationError(err error) bool {
|
||||
if appErr, ok := err.(*AppError); ok {
|
||||
return appErr.Code == ErrForbidden || appErr.Code == ErrInsufficientPermissions
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// IsConflictError checks if an error is a conflict error
|
||||
func IsConflictError(err error) bool {
|
||||
if appErr, ok := err.(*AppError); ok {
|
||||
return appErr.Code == ErrAlreadyExists || appErr.Code == ErrConflict
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// IsInternalError checks if an error is an internal server error
|
||||
func IsInternalError(err error) bool {
|
||||
if appErr, ok := err.(*AppError); ok {
|
||||
return appErr.Code == ErrInternal || appErr.Code == ErrDatabase ||
|
||||
appErr.Code == ErrExternal || appErr.Code == ErrTokenCreationFailed
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// IsConfigurationError checks if an error is a configuration error
|
||||
func IsConfigurationError(err error) bool {
|
||||
if appErr, ok := err.(*AppError); ok {
|
||||
// Configuration errors are typically mapped to internal errors
|
||||
return appErr.Code == ErrInternal && appErr.Message != ""
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user