runable
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import 'package:dartz/dartz.dart';
|
||||
import '../../domain/entities/app_settings.dart';
|
||||
import '../../domain/repositories/settings_repository.dart';
|
||||
import '../datasources/settings_local_datasource.dart';
|
||||
import '../models/app_settings_model.dart';
|
||||
import '../../../../core/errors/failures.dart';
|
||||
import '../../../../core/errors/exceptions.dart';
|
||||
|
||||
class SettingsRepositoryImpl implements SettingsRepository {
|
||||
final SettingsLocalDataSource localDataSource;
|
||||
|
||||
SettingsRepositoryImpl({
|
||||
required this.localDataSource,
|
||||
});
|
||||
|
||||
@override
|
||||
Future<Either<Failure, AppSettings>> getSettings() async {
|
||||
try {
|
||||
final settings = await localDataSource.getSettings();
|
||||
return Right(settings.toEntity());
|
||||
} on CacheException catch (e) {
|
||||
return Left(CacheFailure(e.message));
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<Failure, void>> updateSettings(AppSettings settings) async {
|
||||
try {
|
||||
final model = AppSettingsModel.fromEntity(settings);
|
||||
await localDataSource.updateSettings(model);
|
||||
return const Right(null);
|
||||
} on CacheException catch (e) {
|
||||
return Left(CacheFailure(e.message));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user