Advertisement
ajinzrathod

Untitled

May 8th, 2022
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 1.51 KB | None | 0 0
  1. import 'dart:isolate';
  2.  
  3. import 'package:clean_architecture_1/core/error/exceptions.dart';
  4. import 'package:clean_architecture_1/core/error/failures.dart';
  5. import 'package:clean_architecture_1/core/platform/network_info.dart';
  6. import 'package:clean_architecture_1/features/number_trivia/data/datasources/number_trivia_local_data_source.dart';
  7.  
  8. import 'package:clean_architecture_1/features/number_trivia/domain/entities/number_trivia.dart';
  9.  
  10. import 'package:dartz/dartz.dart';
  11.  
  12. import '../../domain/repositories/number_trivia_repository.dart';
  13. import '../datasources/number_trivia_remote_data_source.dart';
  14.  
  15. class NumberTriviaRepositoryImpl implements NumberTriviaRepository {
  16.   final NumberTriviaRemoteDataSource remoteDataSource;
  17.   final NumberTriviaLocalDataSource localDataSource;
  18.   final NetworkInfo networkInfo;
  19.  
  20.   NumberTriviaRepositoryImpl(
  21.       {required this.remoteDataSource,
  22.       required this.localDataSource,
  23.       required this.networkInfo});
  24.  
  25.   @override
  26.   Future<Either<Failure, NumberTrivia>> getConcreteNumberTrivia(int number) async {
  27.     networkInfo.isConnected;
  28.  
  29.     try {
  30.       final remoteTrivia = await remoteDataSource.getConcreteNumberTrivia(number);
  31.       localDataSource.cacheNumberTrivia(remoteTrivia);
  32.       return Right(remoteTrivia);
  33.     } on ServerException {
  34.       return Left(ServerFailure());
  35.     }
  36.   }
  37.  
  38.   @override
  39.   Future<Either<Failure, NumberTrivia>> getRandomNumberTrivia() {
  40.     // TODO: implement getRandomNumberTrivia
  41.     throw UnimplementedError();
  42.   }
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement