package org.ntlab.leftoverrecipe.api.recipe import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers import org.ntlab.leftoverrecipe.api.Api import org.ntlab.leftoverrecipe.model.RxBus import org.ntlab.leftoverrecipe.viewmodel.SearchViewModel /** * Created by matsumoto_k on 2017/05/20. */ object DetailApiClient : Api() { override var endPoint: String = "http://nitta-lab-www2.is.konan-u.ac.jp:8080/" var connection = false fun getRecipeData(recipeUrl: String) { if (connection) return val recipeService = getClient().create(DetailService::class.java).getRecipe(recipeUrl = recipeUrl) RxBus.send(SearchViewModel.StartRecipeApi) connection = true recipeService.subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( object : Observer<DetailApiResponse> { override fun onComplete() { println("onComplete") connection = false } override fun onSubscribe(d: Disposable) { println("onSubscribe") } override fun onNext(response: DetailApiResponse) { println("onNext") println("Success") if (response != null) { RxBus.send(response) } } override fun onError(e: Throwable) { println("onError") connection = false println(e.message) RxBus.send(SearchViewModel.ErrorRecipeApi) } }) } }