LEuLuDyHa/app

View on GitHub
domain/src/main/java/com/github/leuludyha/domain/useCase/GetEditionByISBNRemotelyUseCase.kt

Summary

Maintainability
A
2 hrs
Test Coverage
A
90%
package com.github.leuludyha.domain.useCase

import android.content.Context
import com.github.leuludyha.domain.model.library.Result
import com.github.leuludyha.domain.repository.LibraryRepository
import com.github.leuludyha.domain.util.NetworkProvider
import kotlinx.coroutines.flow.flowOf

class GetEditionByISBNRemotelyUseCase(
    private val libraryRepository: LibraryRepository,
    private val networkProvider: NetworkProvider
) {
    operator fun invoke(context: Context, isbn: String) =
        try {
            if (networkProvider.checkNetworkAvailable(context))
                libraryRepository.getEditionByISBNRemotely(isbn)
            else
                flowOf(Result.Error("No internet connection"))
        } catch(e: Exception) {
            flowOf(Result.Error("Could not fetch edition"))
        }
}