getProductTrades method

Future<Paginator<Trade, DateTime>> getProductTrades({
  1. required String productId,
  2. int? limit,
  3. int? before,
  4. int? after,
})

Get product trades

Gets a list the latest trades for a product.

https://docs.cloud.coinbase.com/exchange/reference/exchangerestapi_getproducttrades

Implementation

Future<Paginator<Trade, DateTime>> getProductTrades({
  required String productId,
  int? limit,
  int? before,
  int? after,
}) async {
  var response = await _productsRestClient.getProductTrades(
    productId: productId,
    limit: limit,
    before: before,
    after: after,
  );

  if (response.statusCode != 200) throw response;

  return Paginator(
    before: response.headers.containsKey('cb-before')
        ? DateTime.parse(response.headers['cb-before']!)
        : null,
    after: response.headers.containsKey('cb-after')
        ? DateTime.parse(response.headers['cb-after']!)
        : null,
    elements: listDecode(response.body)
        .map((trade) => Trade.fromJson(trade))
        .toList(),
  );
}