track method
Implementation
@override
Future<void> track({required TrackEvent event}) async {
super.track(event: event);
if (!_isInitialized) {
throw IForeventsAPIException(
'Integration not initialized. Call init() first.',
);
}
try {
final queuedEvent = _buildTrackEventData(event);
if (config.batchSize > 1) {
_addToQueue(queuedEvent);
await _processBatchIfNeeded();
} else {
await _sendSingleEvent(queuedEvent);
}
} catch (e) {
if (config.enableLogging) {
developer.log(
'Failed to track event: ${event.eventName}',
name: 'IForeventsAPI',
error: e,
);
}
if (config.throwOnError) {
rethrow;
}
}
}