getCoreUserData method

CoreUserData getCoreUserData({
  1. bool includeAnalyticsMetadata = false,
})

Get core user data.

Implementation

CoreUserData getCoreUserData({bool includeAnalyticsMetadata = false}) {
  if (_cachedCoreUserData != null && !includeAnalyticsMetadata) {
    return _cachedCoreUserData!;
  }

  String? subscriptionType;
  String? rateLimitTier;
  int? firstTokenTime;

  if (includeAnalyticsMetadata) {
    subscriptionType = _getSubscriptionType?.call();
    rateLimitTier = _getRateLimitTier?.call();
  }

  final oauthAccount = _getOAuthAccountInfo?.call();

  final data = CoreUserData(
    deviceId: deviceId,
    sessionId: sessionId,
    email: _getEmail(),
    appVersion: appVersion,
    platform: platform,
    organizationUuid: oauthAccount?.organizationUuid,
    accountUuid: oauthAccount?.accountUuid,
    userType: userType,
    subscriptionType: subscriptionType,
    rateLimitTier: rateLimitTier,
    firstTokenTime: firstTokenTime,
  );

  if (!includeAnalyticsMetadata) {
    _cachedCoreUserData = data;
  }

  return data;
}