TF-1115 Implement catch exception for VacationDataSource

This commit is contained in:
dab246
2022-10-28 12:45:06 +07:00
committed by Dat H. Pham
parent d775738b70
commit d0fcad1cac
2 changed files with 10 additions and 4 deletions
@@ -2,18 +2,21 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/mail/vacation/vacation_response.dart'; import 'package:jmap_dart_client/jmap/mail/vacation/vacation_response.dart';
import 'package:tmail_ui_user/features/manage_account/data/datasource/vacation_data_source.dart'; import 'package:tmail_ui_user/features/manage_account/data/datasource/vacation_data_source.dart';
import 'package:tmail_ui_user/features/manage_account/data/network/vacation_api.dart'; import 'package:tmail_ui_user/features/manage_account/data/network/vacation_api.dart';
import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart';
class VacationDataSourceImpl extends VacationDataSource { class VacationDataSourceImpl extends VacationDataSource {
final VacationAPI _vacationAPI; final VacationAPI _vacationAPI;
VacationDataSourceImpl(this._vacationAPI); final ExceptionThrower _exceptionThrower;
VacationDataSourceImpl(this._vacationAPI, this._exceptionThrower);
@override @override
Future<List<VacationResponse>> getAllVacationResponse(AccountId accountId) { Future<List<VacationResponse>> getAllVacationResponse(AccountId accountId) {
return Future.sync(() async { return Future.sync(() async {
return await _vacationAPI.getAllVacationResponse(accountId); return await _vacationAPI.getAllVacationResponse(accountId);
}).catchError((error) { }).catchError((error) {
throw error; _exceptionThrower.throwException(error);
}); });
} }
@@ -22,7 +25,7 @@ class VacationDataSourceImpl extends VacationDataSource {
return Future.sync(() async { return Future.sync(() async {
return await _vacationAPI.updateVacation(accountId, vacationResponse); return await _vacationAPI.updateVacation(accountId, vacationResponse);
}).catchError((error) { }).catchError((error) {
throw error; _exceptionThrower.throwException(error);
}); });
} }
} }
@@ -8,6 +8,7 @@ import 'package:tmail_ui_user/features/manage_account/data/repository/vacation_r
import 'package:tmail_ui_user/features/manage_account/domain/repository/vacation_repository.dart'; import 'package:tmail_ui_user/features/manage_account/domain/repository/vacation_repository.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_vacation_interactor.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_vacation_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/update_vacation_interactor.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/update_vacation_interactor.dart';
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
class VacationInteractorsBindings extends BaseBindings { class VacationInteractorsBindings extends BaseBindings {
@override @override
@@ -21,7 +22,9 @@ class VacationInteractorsBindings extends BaseBindings {
@override @override
void bindingsDataSourceImpl() { void bindingsDataSourceImpl() {
Get.lazyPut(() => VacationDataSourceImpl(Get.find<VacationAPI>())); Get.lazyPut(() => VacationDataSourceImpl(
Get.find<VacationAPI>(),
Get.find<RemoteExceptionThrower>()));
} }
@override @override