Я пытаюсь получить данные от Api, используя Retrofit 2 и сопрограммы. Из моего GetRepositoriesUseCase я запускаю сопрограмму, но функция 'await ()' является неразрешенной ссылкой.
ViewModel:
fun getRepositoryList() {
getRepositoriesUseCase(textLiveData.value.toString(), viewModelScope) { result ->
result.onSuccess { repositoriesList.value = it }
result.onFailure { show(it.message.toString()) }
}
}
GetRepositoriesUseCase:
class GetRepositoriesUseCase(private val repository: ApiRepository) {
operator fun invoke(
key: String,
coroutineScope: CoroutineScope,
onResult: (Result<Collection<Repository>>) -> Unit
) {
coroutineScope.launch {
val result = withContext(Dispatchers.IO) {
runCatching { repository.getRepositories(key) }
}
onResult(result)
}
}}
ApiRepository (здесь I получить ошибку):
class ApiRepository(private val api: GitHubApi) {
fun getRepositories(key: String): Collection<Repository> {
return api.getRepository(key).await().list
}}
API:
interface GitHubApi{
@GET("search/repositories")
fun getRepository(@Query("q") query: String)
}