package com.youxiachai.demo.model.api;
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.BookInfo;
/**
* @author youxiachai
* @date 2013-7-17
*/
public class BookApi implements IApiMethod<BookInfo>,Transformer{
public interface Path {
String ID = "id";
String book = "/v2/book/";
}
public String getBookById(Bundle query){
String id = query.getString(Path.ID);
return ApiCommon.getApiHost() + Path.book + id;
}
@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);
}
/*
* 获取书籍详细信息
*/
@Override
public void get(Bundle queryMap, AQuery req, ICallback<BookInfo> callback) {
// TODO Auto-generated method stub
// 设置类
NetOption no = new NetOption(getBookById(queryMap), null);
// 缓存一个小时
no.expire = 60 * 60 * 1000;
NetCallback<BookInfo> book = new NetCallback<BookInfo>(BookInfo.class, no, callback);
req.transformer(this).ajax(book);
}
@Override
public void post(Bundle queryMap, AQuery req, ICallback<BookInfo> callback) {
// TODO Auto-generated method stub
}
}