getSessionProps method
Implementation
Future<Map<String, dynamic>> getSessionProps(
String token,
String eventName,
) async {
if (!_isInitialized) await _initialize();
Session session = await sessionManager.getCachedOrNewSession(eventName);
SdkConfig sdkConfig = await configManager.getConfig(token);
Debug.print("TrackingProvider: Session retrieved ${session.sessionId}");
final now = DateTime.now();
final nowMs = now.millisecondsSinceEpoch;
final threshholdDelta = Duration(minutes: sdkConfig.sessionDurationMins);
if (now.difference(getTimeFromTs(session.lastCachedTs)) > threshholdDelta) {
Debug.print("TrackingProvider: Session expired. Creating a new session.");
if (eventName == SdkTrackedEvents.sessionMeta.asString) {
return _getSessionPropsMap(session);
} else {
await captureSession(session);
}
session = Session.newSession(createdTs: nowMs, event: eventName);
} else {
Debug.print("TrackingProvider: Updating cached timestamp for session.");
session = session.copyWith(cachedTs: nowMs, endEventName: eventName);
}
await sessionManager.storeSessionInCache(session);
return _getSessionPropsMap(session);
}