diff --git a/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/data/KnockRequestsException.kt b/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/data/KnockRequestsException.kt new file mode 100644 index 0000000000..0880233ff6 --- /dev/null +++ b/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/data/KnockRequestsException.kt @@ -0,0 +1,13 @@ +/* + * Copyright 2024 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only + * Please see LICENSE in the repository root for full details. + */ + +package io.element.android.features.knockrequests.impl.data + +sealed class KnockRequestsException : Exception() { + data object AcceptAllPartiallyFailed : KnockRequestsException() + data object KnockRequestNotFound : KnockRequestsException() +} diff --git a/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/data/KnockRequestsService.kt b/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/data/KnockRequestsService.kt index d8a594f148..fb08821387 100644 --- a/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/data/KnockRequestsService.kt +++ b/features/knockrequests/impl/src/main/kotlin/io/element/android/features/knockrequests/impl/data/KnockRequestsService.kt @@ -105,7 +105,7 @@ class KnockRequestsService( if (results.all { it.isSuccess }) { Result.success(Unit) } else { - Result.failure(IllegalStateException("Failed to accept all knock requests")) + Result.failure(KnockRequestsException.AcceptAllPartiallyFailed) } } @@ -140,6 +140,6 @@ class KnockRequestsService( } } } - - private fun knockRequestNotFoundResult() = Result.failure(IllegalArgumentException("Knock request not found")) } + +private fun knockRequestNotFoundResult() = Result.failure(KnockRequestsException.KnockRequestNotFound)