Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
|
96cbd3add7 | |
|
7a4f0c1ab9 |
|
@ -15,6 +15,7 @@ const (
|
|||
ErrorTypeInternal ErrorType = "INTERNAL"
|
||||
ErrorTypeUnauthorized ErrorType = "UNAUTHORIZED"
|
||||
ErrorTypeForbidden ErrorType = "FORBIDDEN"
|
||||
ErrorTypeNetwork ErrorType = "NETWORK"
|
||||
)
|
||||
|
||||
// AppError - кастомная ошибка приложения
|
||||
|
@ -67,6 +68,14 @@ func NewNotFoundError(message string) *AppError {
|
|||
}
|
||||
}
|
||||
|
||||
func NewNetworkError(message string) *AppError {
|
||||
return &AppError{
|
||||
Type: ErrorTypeNetwork,
|
||||
Message: message,
|
||||
Code: 0, // Network errors don't have HTTP codes
|
||||
}
|
||||
}
|
||||
|
||||
func NewInternalError(message string) *AppError {
|
||||
return &AppError{
|
||||
Type: ErrorTypeInternal,
|
||||
|
@ -108,6 +117,14 @@ func IsConflict(err error) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func IsNetworkError(err error) bool {
|
||||
var appErr *AppError
|
||||
if errors.As(err, &appErr) {
|
||||
return appErr.Type == ErrorTypeNetwork
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Wrap оборачивает ошибку с сообщением
|
||||
func Wrap(err error, message string) error {
|
||||
return fmt.Errorf("%s: %w", message, err)
|
||||
|
|
Loading…
Reference in New Issue