RestApiClient constructor

RestApiClient({
  1. required RestApiClientOptions restApiClientOptions,
  2. LoggingOptions loggingOptions = const LoggingOptions(),
})

Implementation

RestApiClient({
  required this.restApiClientOptions,
  this.loggingOptions = const LoggingOptions(),
}) {
  _cachedStorageRepository = StorageRepository(
    key: RestApiClientKeys.cachedStorageKey,
    logPrefix: RestApiClientKeys.cachedStorageLogPrefix,
  );
  _storageRepository = SecureStorageRepository(
    key: RestApiClientKeys.storageKey,
    logPrefix: RestApiClientKeys.storageLogPrefix,
  );

  options = BaseOptions();
  httpClientAdapter = DefaultHttpClientAdapter();

  if (restApiClientOptions.keepRetryingOnNetworkError) {
    _dioConnectivityRequestRetrier = DioConnectivityRequestRetrier(dio: this);
  }

  options.baseUrl = restApiClientOptions.baseUrl;

  if (loggingOptions.logNetworkTraffic) {
    _configureDebugLogger();
  }

  _configureRefreshTokenInterceptor();
  if (restApiClientOptions.keepRetryingOnNetworkError) {
    _configureRetryOnConnectionChangeInterceptor();
  }

  if (restApiClientOptions.overrideBadCertificate) {
    (httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate =
        (HttpClient client) {
      client.badCertificateCallback =
          (X509Certificate cert, String host, int port) => true;
      return client;
    };
  }
}