invokeAPI method

  1. @override
Future<Response> invokeAPI(
  1. String path,
  2. String method,
  3. Iterable<QueryParam> queryParams,
  4. Object? body,
  5. Map<String, String> headerParams,
  6. Map<String, String> formParams,
  7. String? nullableContentType,
  8. List<String> authNames
)
override

Implementation

@override
Future<Response> invokeAPI(
    String path,
    String method,
    Iterable<QueryParam> queryParams,
    Object? body,
    Map<String, String> headerParams,
    Map<String, String> formParams,
    String? nullableContentType,
    List<String> authNames) async {
  var response = super.invokeAPI(path, method, queryParams, body,
      headerParams, formParams, nullableContentType, authNames);
  return response.then((result) async {
    if (result.statusCode == 401) {
      Map<String, String> headers = {};
      OAuth authentication = getAuthentication("oauth2") as OAuth;
      authentication.applyToParams([], headers);

      if (result.request!.headers["Authorization"] ==
          headers["Authorization"]) {
        await refreshFunction();
        return super.invokeAPI(path, method, queryParams, body, headerParams,
            formParams, nullableContentType, authNames);
      }
    }
    return result;
  });
}