Loading...
Import
Create an abstract class of ProductRepository
Implement the abstract class
import 'package:dio/dio.dart'; import 'package:techamp_flutter_shopping_app/app.dart';
abstract class ProductRepository { Future<List<Product>> getAll(); }
class ProductRepositoryImpl implements ProductRepository { final Dio _dio; const ProductRepositoryImpl(this._dio) : assert(_dio != null); @override Future<List<Product>> getAll() async { try { final response = await _dio.get('products'); final List productsJson = response.data; return productsJson.map((json) => Product.fromJson(json)).toList(); } on DioError catch (_) { throw const AppError('Network error'); } on dynamic catch (_) { throw const AppError('Something went wrong.'); } } }