LEuLuDyHa/app

View on GitHub
domain/src/main/java/com/github/leuludyha/domain/useCase/GetAuthorRemotelyUseCase.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 GetAuthorRemotelyUseCase(
    private val libraryRepository: LibraryRepository,
    private val networkProvider: NetworkProvider
) {
    operator fun invoke(context: Context, authorId: String) =
        try {
            if(networkProvider.checkNetworkAvailable(context))
                libraryRepository.getAuthorRemotely(authorId)
            else
                flowOf(Result.Error("No internet connection"))
        } catch(e: Exception) {
            flowOf(Result.Error("Could not fetch author"))
        }

}