import 'dart:developer'; import 'package:dartz/dartz.dart'; import 'package:injectable/injectable.dart'; import '../../../domain/table/table.dart'; import '../datasources/remote_data_provider.dart'; @Injectable(as: ITableRepository) class TableRepository implements ITableRepository { final TableRemoteDataProvider _remoteDataProvider; final _logName = 'TableRepository'; TableRepository(this._remoteDataProvider); @override Future> fetchTables({ int page = 1, int limit = 50, }) async { try { final result = await _remoteDataProvider.fetchTables( page: page, limit: limit, ); if (result.hasError) { return left(result.error!); } final tables = result.data!.toDomain(); return right(tables); } catch (e) { log('fetchTables', name: _logName, error: e); return left(const TableFailure.unexpectedError()); } } }