Add error handling for geo assets

This commit is contained in:
problematicconsumer
2023-11-17 23:22:12 +03:30
parent 4a6b112087
commit 436fc8133c
13 changed files with 113 additions and 43 deletions

View File

@@ -21,6 +21,9 @@ sealed class CoreServiceFailure with _$CoreServiceFailure, Failure {
@With<ExpectedFailure>()
const factory CoreServiceFailure.missingPrivilege() = CoreMissingPrivilege;
@With<ExpectedFailure>()
const factory CoreServiceFailure.missingGeoAssets() = CoreMissingGeoAssets;
const factory CoreServiceFailure.invalidConfigOptions([
String? message,
]) = InvalidConfigOptions;
@@ -46,6 +49,7 @@ sealed class CoreServiceFailure with _$CoreServiceFailure, Failure {
UnexpectedCoreServiceFailure() => null,
CoreServiceNotRunning(:final message) => message,
CoreMissingPrivilege() => null,
CoreMissingGeoAssets() => null,
InvalidConfigOptions(:final message) => message,
InvalidConfig(:final message) => message,
CoreServiceCreateFailure(:final message) => message,
@@ -68,6 +72,10 @@ sealed class CoreServiceFailure with _$CoreServiceFailure, Failure {
type: t.failure.singbox.missingPrivilege,
message: t.failure.singbox.missingPrivilegeMsg,
),
CoreMissingGeoAssets() => (
type: t.failure.singbox.missingGeoAssets,
message: t.failure.singbox.missingGeoAssetsMsg,
),
InvalidConfigOptions(:final message) => (
type: t.failure.singbox.invalidConfigOptions,
message: message

View File

@@ -9,4 +9,6 @@ abstract interface class GeoAssetsRepository {
Stream<Either<GeoAssetFailure, List<GeoAssetWithFileSize>>> watchAll();
TaskEither<GeoAssetFailure, Unit> update(GeoAsset geoAsset);
TaskEither<GeoAssetFailure, Unit> markAsActive(GeoAsset geoAsset);
}