Untitled
unknown
plain_text
a year ago
3.3 kB
5
Indexable
import 'package:dartz/dartz.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import '../../../../core/errors/exceptions.dart';
import '../../../../core/errors/failure.dart';
import '../../../../core/utils/typedef.dart';
// import '../../domain/entities/charger_station.dart';
import '../../domain/entities/charger_station.dart';
import '../../domain/entities/filter.dart';
import '../../domain/repositories/find_repository.dart';
import '../datasources/find_remote_data_source.dart';
import '../models/charger_station_model.dart';
import '../models/filter_model.dart';
class FindRepositoryImpl implements FindRepository {
const FindRepositoryImpl(this._remoteDataSource);
final FindRemoteDataSource _remoteDataSource;
@override
ResultFuture<List<ChargeStation>> getChargeStations() async {
try {
final result = await _remoteDataSource.getChargeStations();
return Right(result);
} on ServerException catch (e) {
return Left(ServerFailure.fromException(e));
}
}
@override
ResultVoid openMapsNavigation(List<double> coordinates) async {
try {
final result = await _remoteDataSource.openMapsNavigation(coordinates);
return Right(result);
} on ServerException catch (e) {
return Left(ServerFailure.fromException(e));
}
}
@override
ResultFuture<Set<Marker>> loadMarkers(
List<ChargeStation> chargerStations) async {
try {
final chargerStationsModel = chargerStations
.map((e) => ChargerStationModel.fromEntity(e))
.toList();
final result = await _remoteDataSource.loadMarkers(chargerStationsModel);
return Right(result);
} on ServerException catch (e) {
return Left(ServerFailure.fromException(e));
}
}
@override
ResultFuture<List<ChargeStation>> loadFilteredChargeStations(
Filter filter) async {
try {
final filterModel = FilterModel.fromEntity(filter);
final result =
await _remoteDataSource.loadFilteredChargeStations(filterModel);
return Right(result);
} on ServerException catch (e) {
return Left(ServerFailure.fromException(e));
}
}
@override
ResultFuture<List<ChargeStation>> getFavoriteChargeStations(
String userId) async {
try {
final result = await _remoteDataSource.getFavoriteChargeStations(userId);
return Right(result);
} on ServerException catch (e) {
return Left(ServerFailure.fromException(e));
}
}
@override
ResultFuture<String> addFavoriteChargeStations(
String favoriteChargerStationId) async {
try {
final result = await _remoteDataSource
.addFavoriteChargeStations(favoriteChargerStationId);
return Right(result);
} on ServerException catch (e) {
return Left(ServerFailure.fromException(e));
}
}
@override
ResultFuture<String> deleteFavoriteChargeStations(
String favoriteChargerStationId) async {
try {
final result = await _remoteDataSource
.deleteFavoriteChargeStations(favoriteChargerStationId);
return Right(result);
} on ServerException catch (e) {
return Left(ServerFailure.fromException(e));
}
}
}
Editor is loading...
Leave a Comment