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