Преглед на файлове

Add forbidden error

Signed-off-by: Christopher Crone <[email protected]>
Christopher Crone преди 5 години
родител
ревизия
96907f13e1
променени са 2 файла, в които са добавени 21 реда и са изтрити 0 реда
  1. 7 0
      errdefs/errors.go
  2. 14 0
      errdefs/errors_test.go

+ 7 - 0
errdefs/errors.go

@@ -36,6 +36,8 @@ var (
 	ErrNotFound = errors.New("not found")
 	// ErrAlreadyExists is returned when an object already exists
 	ErrAlreadyExists = errors.New("already exists")
+	// ErrForbidden is returned when an operation is not permitted
+	ErrForbidden = errors.New("forbidden")
 	// ErrUnknown is returned when the error type is unmapped
 	ErrUnknown = errors.New("unknown")
 )
@@ -50,6 +52,11 @@ func IsAlreadyExistsError(err error) bool {
 	return errors.Is(err, ErrAlreadyExists)
 }
 
+// IsForbiddenError returns true if the unwrapped error is ErrForbidden
+func IsForbiddenError(err error) bool {
+	return errors.Is(err, ErrForbidden)
+}
+
 // IsUnknownError returns true if the unwrapped error is ErrUnknown
 func IsUnknownError(err error) bool {
 	return errors.Is(err, ErrUnknown)

+ 14 - 0
errdefs/errors_test.go

@@ -47,3 +47,17 @@ func TestIsAlreadyExists(t *testing.T) {
 
 	require.False(t, IsAlreadyExistsError(errors.New("another error")))
 }
+
+func TestIsForbidden(t *testing.T) {
+	err := errors.Wrap(ErrForbidden, `object "name"`)
+	require.True(t, IsForbiddenError(err))
+
+	require.False(t, IsForbiddenError(errors.New("another error")))
+}
+
+func TestIsUnknown(t *testing.T) {
+	err := errors.Wrap(ErrUnknown, `object "name"`)
+	require.True(t, IsUnknownError(err))
+
+	require.False(t, IsUnknownError(errors.New("another error")))
+}