TmdbConfigurationInteractor.kt

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

  2. import androidx.annotation.AnyThread
  3. import com.louisfn.somovie.core.common.annotation.ApplicationScope
  4. import com.louisfn.somovie.data.repository.TmdbConfigurationRepository
  5. import kotlinx.coroutines.CoroutineScope
  6. import kotlinx.coroutines.launch
  7. import javax.inject.Inject

  8. class TmdbConfigurationInteractor @Inject constructor(
  9.     private val configurationRepository: TmdbConfigurationRepository,
  10.     @ApplicationScope private val applicationScope: CoroutineScope,
  11. ) {

  12.     @AnyThread
  13.     suspend fun refresh() {
  14.         with(configurationRepository) {
  15.             if (getTmdbConfiguration().isFetched) {
  16.                 applicationScope.launch { refreshIfCacheExpired() }
  17.             } else {
  18.                 refreshIfCacheExpired()
  19.             }
  20.         }
  21.     }
  22. }