getProjects method
override
Implementation
@override
Future<Either<Failure, List<Project>>> getProjects() async {
try {
final localProjects = await localDataSource.getProjects();
if (localProjects.isNotEmpty) {
return Right(localProjects.map((m) => m.toEntity()).toList());
}
final remoteProjects = await remoteDataSource.getProjects();
await localDataSource.saveProjects(remoteProjects);
return Right(remoteProjects.map((m) => m.toEntity()).toList());
} catch (e) {
return const Left(ServerFailure(message: 'Unexpected Error'));
}
}