get method Null safety

Future<void> get(
  1. dynamic productList
)

Loads the barcodes AND all the products.

Implementation

Future<void> get(final ProductList productList) async {
  final _BarcodeList? list = _get(productList);
  final List<String> barcodes = <String>[];
  final Map<String, Product> products = <String, Product>{};
  productList.totalSize = list?.totalSize ?? 0;
  if (list == null || list.barcodes.isEmpty) {
    productList.set(barcodes, products);
    return;
  }
  final DaoProduct daoProduct = DaoProduct(localDatabase);
  for (final String barcode in list.barcodes) {
    try {
      final Product? product = await daoProduct.get(barcode);
      if (product != null) {
        barcodes.add(barcode);
        products[barcode] = product;
      } else {
        debugPrint('unexpected: unknown product for $barcode');
      }
    } catch (e) {
      debugPrint('unexpected: exception for product $barcode');
    }
  }
  productList.set(barcodes, products);
}