TmdbConfigurationInteractor.kt

package com.louisfn.somovie.domain.usecase.global

import androidx.annotation.AnyThread
import com.louisfn.somovie.core.common.annotation.ApplicationScope
import com.louisfn.somovie.data.repository.TmdbConfigurationRepository
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import javax.inject.Inject

class TmdbConfigurationInteractor @Inject constructor(
    private val configurationRepository: TmdbConfigurationRepository,
    @ApplicationScope private val applicationScope: CoroutineScope,
) {

    @AnyThread
    suspend fun refresh() {
        with(configurationRepository) {
            if (getTmdbConfiguration().isFetched) {
                applicationScope.launch { refreshIfCacheExpired() }
            } else {
                refreshIfCacheExpired()
            }
        }
    }
}