getCurrentOffering method

Resolves the current offering using backend-owned rules and placement.

Implementation

@override
Future<InappifySdkResult<OfferingModel>> getCurrentOffering(
  InappifyCurrentOfferingRequest request,
) async {
  final cancelled = _preCancelled<OfferingModel>(
    'getCurrentOffering',
    request.cancellation,
  );
  if (cancelled != null) return cancelled;
  return _run<OfferingModel>(
    'getCurrentOffering',
    action: () async {
      final raw = await _bridge.call(
        'getCurrentOffering',
        positionalArguments: <Object?>[
          <String, Object?>{
            if (request.placementIdentifier != null)
              'placementIdentifier': request.placementIdentifier,
            if (request.context != null) 'context': request.context,
            'forceRefresh': request.forceRefresh,
          },
        ],
        cancellation: request.cancellation,
        injectAbortSignal: request.cancellation != null,
      );
      if (raw == null) return null;
      return InappifyWebPayloadCodec.offering(raw);
    },
    cancellation: request.cancellation,
  );
}