delete method

Future<Response> delete({
  1. required String path,
  2. Map<String, String>? headers,
  3. Map<String, dynamic>? queryParameters,
})

A DELETE method for coinbase exchange which automatically manages signing for authorization.

Implementation

Future<http.Response> delete({
  required String path,
  Map<String, String>? headers,
  Map<String, dynamic>? queryParameters,
}) async {
  if (queryParameters != null) {
    queryParameters = _convertQueryParametersTypes(queryParameters);
  }

  Uri url = Uri.https(_authority, path, queryParameters);
  var response = await http.delete(
    url,
    headers: _addHeaders(
      method: 'DELETE',
      requestPath:
          queryParameters != null ? '${url.path}?${url.query}' : url.path,
      additionalHeaders: headers,
    ),
  );

  if (response.statusCode == 429) {
    await Future.delayed(Duration(seconds: 1));
    return delete(
      path: path,
      headers: headers,
      queryParameters: queryParameters,
    );
  }

  return response;
}