NTP-56704 | add polling delay for rewards api (#15831)

This commit is contained in:
Venkat Praneeth Reddy
2025-04-17 19:27:59 +05:30
committed by GitHub
parent db76399c90
commit 8fd21046ae
2 changed files with 4 additions and 2 deletions

View File

@@ -19,6 +19,7 @@ import kotlinx.coroutines.flow.channelFlow
import kotlinx.coroutines.flow.flowOn
class NaviApiPoller(
private val initialDelay: Long = 0,
private val repeatInterval: Duration,
private val onPollCallback: () -> Unit = {},
private val onStopPolling: () -> Unit = {},
@@ -36,12 +37,12 @@ class NaviApiPoller(
}
@OptIn(DelicateCoroutinesApi::class)
fun startPolling(
suspend fun startPolling(
onTimeout: (suspend () -> Unit)? = null,
onPollExecute: suspend () -> Any,
): Flow<Any> {
delay(this.initialDelay)
initStartPolling()
return channelFlow {
while (!isClosedForSend && isPollingExternalConditionSatisfied(onTimeout)) {
onPollCallback.invoke()

View File

@@ -58,6 +58,7 @@ abstract class BaseScratchCardNudgeHelper(
protected val scratchCardPoller: NaviApiPoller by lazy {
NaviApiPoller(
initialDelay = pollingConfig.initialDelay?.toLong() ?: 0,
repeatInterval = pollingConfig.interval?.seconds ?: POLL_INTERVAL,
numberOfIterations = pollingConfig.numOfRetries ?: MAX_POLL_COUNT,
onPollCallback = { eventTracker.sendEvent(SCRATCH_CARD_POLLING_API_JUST_TO_BE_CALLED) },