check method
The drop this gate decides, or null to let the request continue.
Implementation
@override
RoutingDropped? check(CampaignRequest request) {
final config = request.campaign.config;
VariableScope.reportMissing(
config.defaultVariables,
request.payload.variables,
request.campaign.campaignKey,
);
return switch (config) {
InlineTimerCampaignConfig() => _checkTimer(request, config),
CanvasSurveyCampaignConfig(:final canvasSurveyConfig)
when canvasSurveyConfig.nodes.isEmpty ||
canvasSurveyConfig.blocks.isEmpty =>
request.invalidConfig('survey has no content', 'empty_content'),
GuideCampaignConfig(:final guideConfig) when guideConfig.stepCount == 0 =>
request.invalidConfig('guide has no steps', 'empty_content'),
_ => null,
};
}