getUserStatus method

  1. @override
Future<UserConsentStatus> getUserStatus()
override

Implementation

@override
Future<UserConsentStatus> getUserStatus() async {
  try {
    final result = await methodChannel.invokeMethod<Map<dynamic, dynamic>>('getUserStatus');

    final vendors = (result?['vendors'] as Map<dynamic, dynamic>?)?.map(
          (key, value) => MapEntry(key.toString(), _parseConsentStatus(value)),
    ) ?? {};

    final purposes = (result?['purposes'] as Map<dynamic, dynamic>?)?.map(
          (key, value) => MapEntry(key.toString(), _parseConsentStatus(value)),
    ) ?? {};

    return UserConsentStatus(
      hasUserChoice: _parseUserChoiceStatus(result?['hasUserChoice']),
      vendors: vendors,
      purposes: purposes,
      tcf: result?['tcf']?.toString() ?? '',
      addtlConsent: result?['addtlConsent']?.toString() ?? '',
      regulation: result?['regulation']?.toString() ?? '',
    );
  } catch (e) {
    throw Exception('Failed to get user status: $e');
  }
}