check method

  1. @override
RoutingDropped? check(
  1. CampaignRequest request
)
override

The drop this gate decides, or null to let the request continue.

Implementation

@override
RoutingDropped? check(CampaignRequest request) {
  final screen = _currentScreen();
  if (request.campaign.allowsScreen(screen)) return null;
  _log.d(
      'Dropped — screen not targeted '
      '(current=${screen ?? '<unset>'}, '
      'targets=${request.campaign.targetScreenNames})',
      campaign: request.campaign.campaignKey);
  request.driver.policy
      .onDropped(DropReason.screenNotTargeted, 'screen not targeted');
  return RoutingDropped(
    DropReason.screenNotTargeted,
    deliveryDetail: {
      'target_screens': request.campaign.targetScreenNames.take(20).toList(),
    },
  );
}