package jp.co.y_net.amm.api;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import jp.co.y_net.amm.dao.Inf;
import jp.co.y_net.amm.dao.InfDao;

import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.spring.injection.annot.SpringBean;

public class ApiInfo extends ApiPage {

    
    @SpringBean(name="infDao")
    protected InfDao infDao;
    
    public ApiInfo(PageParameters pageParams) {
        
//        String infid = pageParams.get("infid").toString();
        
        
        /* 主処理 */
        List<Result> listResult = new ArrayList<Result>();
        
//        if(infid == null) {
//            setResponse(result.err("パラメータ infid が指定されていません。"));
//            return;
//        }
        
        Inf cnd = new Inf();
        cnd.setStatus(Inf.STATUS_掲載中);
        List<Inf> listInf = infDao.get(cnd);
        
        /* pubdateの降順とする */
        Collections.sort(listInf, new Comparator<Inf>() {
            @Override
            public int compare(Inf o1, Inf o2) {
                if (o1 != null && o2 != null) {
                    if (o1.getPubdate() != null && o2.getPubdate() != null) {
                        return o1.getPubdate().compareTo(o2.getPubdate()) * -1; // 降順
                    }
                }
                return 0;
            }
        });
        
        for(Inf i: listInf) {
            Result r = new Result();
            r.infid = i.getInfid();
            r.title = i.getTitle();
            r.pubdate = i.getPubdate();
            listResult.add(r);
        }

        
        /* JSONのレスポンスを設定 */
        setResponse(listResult);
    }

    /**
     * 処理結果
     */
    public static class Result extends ApiResult{
        public Integer infid;
        public String title;
        public Long pubdate;
    }
    
}
