import 'dart:developer'; import 'package:dartz/dartz.dart'; import 'package:injectable/injectable.dart'; import '../../../domain/wallet/wallet.dart'; import '../datasources/customer_remote_data_provider.dart'; @Injectable(as: IOutletRepository) class OutletRepository implements IOutletRepository { final CustomerRemoteDataProvider _remoteDataProvider; final String _logName = 'OutletRepository'; OutletRepository(this._remoteDataProvider); @override Future>> getOutlets() async { try { final result = await _remoteDataProvider.fetchOutlets(); if (result.hasError) return left(result.error!); return right(result.data!.map((e) => e.toDomain()).toList()); } catch (e, s) { log('getOutlets', name: _logName, error: e, stackTrace: s); return left(const WalletFailure.unexpectedError()); } } }