getProjects method

  1. @override
Future<Either<Failure, List<Project>>> getProjects()
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'));
  }
}