initializeApiKey function

Future<void> initializeApiKey({
  1. required String apiKey,
  2. String environment = 'production',
  3. bool enableLogging = false,
  4. int timeout = 30000,
  5. int retryAttempts = 3,
  6. String? baseUrl,
  7. bool offlineMode = false,
})

Standardized API key initialization function for Onairos SDK Follows the backend specification for API key validation

This is the main entry point for initializing the Onairos SDK with proper API key validation according to the backend spec.

Parameters:

  • apiKey: Your Onairos API key (required)
  • environment: 'production' or 'development' (defaults to 'production')
  • enableLogging: Enable debug logging (defaults to false)
  • timeout: Request timeout in milliseconds (defaults to 30000)
  • retryAttempts: Number of retry attempts (defaults to 3)
  • baseUrl: Custom API base URL (optional)
  • offlineMode: Skip API validation, use offline mode (defaults to false)

Example:

await initializeApiKey(
  apiKey: 'ona_your_api_key_here',
  environment: 'production',
  enableLogging: true,
);

Implementation

Future<void> initializeApiKey({
  required String apiKey,
  String environment = 'production',
  bool enableLogging = false,
  int timeout = 30000,
  int retryAttempts = 3,
  String? baseUrl,
  bool offlineMode = false,
}) async {
  try {
    if (enableLogging) {
      OnairosDebugHelper.log('🔑 Initializing Onairos SDK with API key validation');
      OnairosDebugHelper.log('   Environment: $environment');
      if (offlineMode) {
        OnairosDebugHelper.log('   Mode: Offline (no backend validation)');
      }
    }

    // Create configuration
    final config = OnairosConfig(
      apiKey: apiKey,
      environment: environment,
      enableLogging: enableLogging,
      timeout: timeout,
      retryAttempts: retryAttempts,
      baseUrl: baseUrl,
      offlineMode: offlineMode,
    );

    // Initialize the SDK
    final onairosService = OnairosService();
    await onairosService.initializeApiKey(config);

    if (enableLogging) {
      OnairosDebugHelper.log('✅ Onairos SDK initialized successfully!');
    }

  } catch (e) {
    OnairosDebugHelper.log('❌ SDK initialization failed: $e');
    rethrow;
  }
}