send method

  1. @override
Future<SuccessApiResponse> send(
  1. BaseRequest request
)

Send request and return the response if it is a SuccessApiResponse, or throw if it is an ErrorApiResponse.

Implementation

@override
Future<SuccessApiResponse> send(BaseRequest request) async {
  final response = await sendUnsafe(request);

  if (response is RateLimitedResponse) {
    return Future.delayed(
      response.retryAfter ?? const Duration(seconds: 10),
      () => send(request),
    );
  }

  if (response is! SuccessApiResponse) {
    throw response;
  }

  return response;
}