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 cloudDataOverride = authTokenOverride != null
        ? ServerpodCloudData(authTokenOverride)
        : null;

    cloudApiClient = Client(
      address,
      authenticationKeyManager: CliAuthenticationKeyManager(
        logger: _logger,
        localStoragePath: localStoragePath.path,
        cloudDataOverride: cloudDataOverride,
      ),
      connectionTimeout: _globalConfiguration.connectionTimeout,
    );
  }

  _cloudApiClient = cloudApiClient;
  return cloudApiClient;
}