send method

Future send({
  1. required String method,
  2. required String url,
  3. dynamic body,
  4. bool dontRetry = false,
  5. String? overrideToken,
})

send request to epic games

method method request to url with body body

Implementation

Future<dynamic> send({
  required String method,
  required String url,
  dynamic body,
  bool dontRetry = false,
  String? overrideToken,
}) async {
  HttpResponse res = await http.send(
    method: method,
    url: url,
    headers: {
      "User-Agent": _clientOptions.userAgent,
      "Authorization": "bearer ${overrideToken ?? session}",
    },
    body: body,
  );

  if (res.success) {
    return res.data;
  } else {
    String errorCode = res.error["errorCode"];

    if (invalidTokenErrorCodes.contains(errorCode) && !dontRetry) {
      await refreshSession();
      return await send(
        method: method,
        url: url,
        body: body,
        dontRetry: true,
      );
    }

    throw Exception(res.error["errorMessage"] ?? res.error);
  }
}