cloudApiClient property

Client get cloudApiClient

Gets a Client for the Serverpod Cloud. Will contain the authentication if the user is authenticated.

The client is cached and will be reused for subsequent calls.

Implementation

Client get cloudApiClient {
  final localCloudApiClient = _cloudApiClient;
  if (localCloudApiClient != null) {
    return localCloudApiClient;
  }

  final Client cloudApiClient;
  if (_apiClientFactory != null) {
    cloudApiClient = _apiClientFactory(_globalConfiguration);
  } else {
    final localStoragePath = _globalConfiguration.scloudDir;
    final serverAddress = _globalConfiguration.apiServer;
    final address =
        serverAddress.endsWith('/') ? serverAddress : '$serverAddress/';

    final authTokenOverride = _globalConfiguration.authToken;
    final TokenProvider tokenProvider = BuildTokenProvider.build(
      authTokenOverride: authTokenOverride,
      localStoragePath: localStoragePath.path,
      logger: _logger,
    );

    cloudApiClient = Client(
      address,
      connectionTimeout: _globalConfiguration.connectionTimeout,
    )..authKeyProvider = CliKeyProvider(tokenProvider);
  }

  _cloudApiClient = cloudApiClient;
  return cloudApiClient;
}