identify method
Implementation
@override
Future<void> identify({required IdentifyEvent event}) async {
super.identify(event: event);
if (!_isInitialized) {
throw IForeventsAPIException(
'Integration not initialized. Call init() first.',
);
}
try {
final requestData = _buildIdentifyRequest(event);
final response = await _dio.post('/events/identify', data: requestData);
if (response.data != null) {
final responseData = response.data as Map<String, dynamic>;
final user = responseData['user'] as Map<String, dynamic>?;
if (user != null) {
final userUUID = user['uuid'] as String?;
if (userUUID != null) {
await _storage.write(_userUUIDKey, userUUID);
if (config.enableLogging) {
developer.log(
'UserUUID updated and saved: $userUUID',
name: 'IForeventsAPI',
);
}
}
_isIdentified = true;
if (config.enableLogging) {
developer.log(
'User identified successfully. User: $userUUID',
name: 'IForeventsAPI',
);
}
}
}
} catch (e) {
if (config.enableLogging) {
developer.log(
'Failed to identify user: ${event.customID}',
name: 'IForeventsAPI',
error: e,
);
}
if (config.throwOnError) {
rethrow;
}
}
}