getCurrentEntitlements method

Future<EntitlementModel?> getCurrentEntitlements()

Fetch the caller's full entitlement state. Returns null on failure so the provider can fall back to Entitlement.none() without throwing.

Implementation

Future<EntitlementModel?> getCurrentEntitlements() async {
  try {
    final raw = await _client.rpc('current_entitlements');
    if (raw == null) return null;
    if (raw is Map<String, dynamic>) {
      return EntitlementModel.fromJson(raw);
    }
    if (raw is Map) {
      return EntitlementModel.fromJson(Map<String, dynamic>.from(raw));
    }
    return null;
  } catch (e, stack) {
    dev.log(
      'getCurrentEntitlements failed: $e',
      name: 'EntitlementDatasource',
      error: e,
      stackTrace: stack,
    );
    return null;
  }
}