package com.youxiachai.demo.model.api; import java.util.List; import android.os.Bundle; import com.alibaba.fastjson.JSON; import com.androidquery.AQuery; import com.androidquery.callback.AjaxStatus; import com.androidquery.callback.Transformer; import com.youxiachai.ajax.ICallback; import com.youxiachai.ajax.NetCallback; import com.youxiachai.ajax.NetOption; import com.youxiachai.api.ApiCommon; import com.youxiachai.api.IApiMethod; import com.youxiachai.demo.model.bean.Collection; /** * @author youxiachai * @date 2013-7-16 */ public class CollectionListApi implements IApiMethod<CollectionListApi> ,Transformer{ public int count; public int start; public int total; public List<Collection> collections; public interface Path { String START = "start"; String ID = "id"; String collection = ApiCommon.getApiHost() + "/v2/book/user/"; } public String getCollectionByUser(Bundle query){ return Path.collection + query.getString(Path.ID) + "/collections"; } public String getCollectionStart(Bundle query){ return Path.collection + query.getString(Path.ID) + "/collections?start=" + query.getInt(Path.START); } @Override public void get(Bundle queryMap, AQuery req, ICallback<CollectionListApi> callback) { int start = queryMap.getInt(Path.START, -1); NetOption no; if(start != -1){ no = new NetOption(getCollectionStart(queryMap), null); }else { no = new NetOption(getCollectionByUser(queryMap), null); } // 缓存一个小时 no.expire = 60 * 60 * 1000; NetCallback<CollectionListApi> book = new NetCallback<CollectionListApi>(CollectionListApi.class, no, callback); req.transformer(this).ajax(book); } @Override public void post(Bundle queryMap, AQuery req, ICallback<CollectionListApi> callback) { // TODO Auto-generated method stub } @Override public <T> T transform(String url, Class<T> type, String encoding, byte[] data, AjaxStatus status) { // TODO Auto-generated method stub return JSON.parseObject(new String(data), type); } }