TF-3096 PublicAsset show error messages

This commit is contained in:
DatDang
2024-08-20 16:44:07 +07:00
committed by Dat H. Pham
parent 2754451d9e
commit 3dfe7585bb
3 changed files with 43 additions and 2 deletions
@@ -1,6 +1,7 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:jmap_dart_client/jmap/mail/extensions/public_asset/public_asset.dart';
import 'package:tmail_ui_user/features/public_asset/domain/exceptions/public_asset_exceptions.dart';
class CreatingPublicAssetState extends LoadingState {}
@@ -19,4 +20,15 @@ class CreatePublicAssetFailureState extends FeatureFailure {
@override
List<Object?> get props => [exception];
}
class PublicAssetOverQuotaFailureState extends FeatureFailure {
PublicAssetOverQuotaFailureState({required this.publicAssetQuotaExceededException})
: super(exception: publicAssetQuotaExceededException);
final PublicAssetQuotaExceededException publicAssetQuotaExceededException;
@override
List<Object?> get props => [publicAssetQuotaExceededException];
}
@@ -6,6 +6,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:tmail_ui_user/features/public_asset/domain/exceptions/public_asset_exceptions.dart';
import 'package:tmail_ui_user/features/public_asset/domain/state/create_public_asset_state.dart';
import 'package:tmail_ui_user/features/public_asset/domain/repository/public_asset_repository.dart';
@@ -32,7 +33,13 @@ class CreatePublicAssetInteractor {
yield Right<Failure, Success>(CreatePublicAssetSuccessState(publicAsset));
} catch (exception) {
logError('CreatePublicAssetInteractor::execute():error: $exception');
yield Left<Failure, Success>(CreatePublicAssetFailureState(exception: exception));
if (exception is PublicAssetQuotaExceededException) {
yield Left<Failure, Success>(PublicAssetOverQuotaFailureState(
publicAssetQuotaExceededException: exception));
} else {
yield Left<Failure, Success>(CreatePublicAssetFailureState(exception: exception));
}
}
}
}