Implementing Get Products Functionality

Get Products

Import

import 'package:dio/dio.dart';
import 'package:techamp_flutter_shopping_app/app.dart';

Create an abstract class of ProductRepository

abstract class ProductRepository {
  Future<List<Product>> getAll();
}

Implement the abstract class

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.');
    }
  }
}

Last updated