initialize static method
Initialize the Go Mailer SDK
apiKey
Your Go Mailer API key (required)
config
Optional configuration parameters
Throws GoMailerException if initialization fails
Implementation
static Future<void> initialize({
required String apiKey,
GoMailerConfig? config,
}) async {
if (_isInitialized) {
_log('SDK already initialized', GoMailerLogLevel.debug);
return;
}
if (apiKey.isEmpty) {
throw GoMailerException('API key cannot be empty');
}
try {
final finalConfig = config ?? GoMailerConfig();
finalConfig.apiKey = apiKey;
_logLevel = finalConfig.logLevel;
_instance = GoMailer._();
// Initialize platform-specific code
await _channel.invokeMethod('initialize', {
'apiKey': apiKey,
'config': finalConfig.toMap(),
});
_isInitialized = true;
_log('SDK initialized successfully with version $version',
GoMailerLogLevel.info);
} catch (e) {
_isInitialized = false;
_instance = null;
_log('Failed to initialize SDK: $e', GoMailerLogLevel.error);
throw GoMailerException('Failed to initialize Go Mailer SDK: $e');
}
}