package com.ly.supermvp.model.news;
import com.ly.supermvp.common.BizInterface;
import com.ly.supermvp.model.OnNetRequestListener;
import com.ly.supermvp.model.entity.ShowApiResponse;
import com.ly.supermvp.server.RetrofitService;
import com.orhanobut.logger.Logger;
import retrofit.Call;
import retrofit.Callback;
import retrofit.Response;
import retrofit.Retrofit;
/**
* <Pre>
* 新闻数据实现类
* </Pre>
*
* @author 刘阳
* @version 1.0
* <p/>
* Create by 2016/1/28 14:54
*/
public class NewsModelImpl implements NewsModel {
public static final String CHANNEL_ID = "5572a109b3cdc86cf39001db";//频道id 来自api指定
public static final String CHANNEL_NAME = "国内最新";//频道名称 来自api指定
@Override
public void netLoadNewsList(int page, String channelId, String channelName, final OnNetRequestListener listListener) {
//注意,此处采用Retrofit的官方响应方式,天气预报采用RxJava,学习一下两种用法
Call<ShowApiResponse<ShowApiNews>> call = RetrofitService.getInstance()
.createShowAPI()
.getNewsList(RetrofitService.getCacheControl(), BizInterface.SHOW_API_APPID,
BizInterface.SHOW_API_KEY, page, channelId, channelName);
call.enqueue(new Callback<ShowApiResponse<ShowApiNews>>() {
@Override
public void onResponse(Response<ShowApiResponse<ShowApiNews>> response, Retrofit retrofit) {
if (response.body() != null) {
Logger.d(response.message() + response.code() + response.body().showapi_res_code
+ response.body().showapi_res_error);
listListener.onSuccess(response.body().showapi_res_body.pagebean.contentlist);
} else {
listListener.onFailure(new Exception());
}
}
@Override
public void onFailure(Throwable t) {
listListener.onFailure(t);
}
});
}
}