cancelOrder function

Future<bool> cancelOrder({
  1. required String orderId,
  2. String? profileId,
  3. String? productId,
  4. required Credential credential,
  5. bool isSandbox = false,
})

Cancels a single order.

This function makes a DELETE request to the /orders/{order_id} endpoint of the Coinbase Pro API.

orderId - The ID of the order to be canceled. profileId - The profile ID of the order to be canceled. productId - The product ID of the order to be canceled. credential - The user's API credentials. isSandbox - Whether to use the sandbox environment.

Returns true if the order was canceled successfully, false otherwise.

Implementation

Future<bool> cancelOrder(
    {required String orderId,
    String? profileId,
    String? productId,
    required Credential credential,
    bool isSandbox = false}) async {
  Map<String, dynamic>? queryParameters = {};

  (profileId != null)
      ? queryParameters.addAll({'profile_id': profileId})
      : queryParameters.addAll({'profile_id': 'default'});
  (productId != null)
      ? queryParameters.addAll({'product_id': productId})
      : null;

  http.Response response = await deleteAuthorized('/orders/$orderId',
      queryParameters: queryParameters,
      credential: credential,
      isSandbox: isSandbox);

  if (response.statusCode == 200) {
    String data = response.body;
    print('Order $data Cancelled Successfully');
    return true;
  } else {
    var url = response.request?.url.toString();
    print('Request to URL $url failed: Response code ${response.statusCode}');
    print('Error Response Message: ${response.body}');
  }

  return false;
}