package core.repositories.markdown; import core.datasource.CloudDataSource; import core.datasource.RestWrapper; import core.datasource.SdkItem; import core.repositories.readme.RepositoryReadmeService; import okhttp3.ResponseBody; import retrofit2.Call; import rx.Observable; public class MarkdownCloudDataSource extends CloudDataSource<String, String> { private final MarkdownRetrofitWrapper restWrapper; public MarkdownCloudDataSource(MarkdownRetrofitWrapper restWrapper) { super(restWrapper); this.restWrapper = restWrapper; } @Override protected Observable<SdkItem<String>> execute(SdkItem<String> request, RestWrapper service) { RepositoryReadmeService repositoryReadmeService = restWrapper.get(); String readme = request.getK(); return Observable.fromCallable(() -> { Call<ResponseBody> call = repositoryReadmeService.markdown(readme); return call.execute().body().string(); }).map(SdkItem::new); } }