put method

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

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

Implementation

Future<http.Response> put({
  required String path,
  Map<String, String>? headers,
  Map<String, dynamic>? body,
}) async {
  Uri url = Uri.https(_authority, path);
  var response = await http.put(
    url,
    body: body != null ? jsonEncode(body) : null,
    headers: _addHeaders(
      method: 'PUT',
      requestPath: url.path,
      additionalHeaders: headers,
      body: body,
    ),
  );

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

  return response;
}