handleAdImpressionEvent method

Stream<FastSplashAdBlocState> handleAdImpressionEvent(
  1. FastSplashAdBlocEventPayload payload
)

Updates the state after an ad impression.

Implementation

Stream<FastSplashAdBlocState> handleAdImpressionEvent(
  FastSplashAdBlocEventPayload payload,
) async* {
  final document = await _retrieveDocument();
  final lastImpressionDate =
      payload.lastImpressionDate ?? DateTime.now().toUtc();

  _logger.debug('Ad impression: $lastImpressionDate');

  await _dataProvider.persistSplashAdDocument(
    document.copyWith(lastImpressionDate: lastImpressionDate),
  );

  yield currentState.copyWith(lastImpressionDate: lastImpressionDate);
}