package jp.co.y_net.amm.api;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

import jp.co.y_net.amm.common.AppUtils;
import jp.co.y_net.amm.dao.AppDef;
import jp.co.y_net.amm.dao.Usr;
import jp.co.y_net.amm.dao.UsrDao;
import jp.co.y_net.amm.service.Logout;

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

public class ApiLogout extends ApiPage {
    
    @SpringBean(name="logout")
    private Logout logout;
    
    @SpringBean(name="usrDao")
    protected UsrDao usrDao;
    
    public ApiLogout(PageParameters pageParams) {
        
        String loginid = pageParams.get("loginid").toString();
        
        /* 主処理 */
        Result result = new Result();
            
        if(loginid == null) {
            setResponse(result.err("パラメータ loginid が指定されていません。"));
            return;
        }
        
        try {
            loginid = URLDecoder.decode(loginid, "UTF-8"); // URLデコード
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
        
        /* ログアウト処理 */
        logout.execute(loginid);
        
        /* 2016/03/30 ログアウト要求日時を登録する */
        Usr usr = usrDao.getByLoginid(loginid);
        if(usr != null) {
            usr.setRequestlogoutdate(AppUtils.createNowLong());
            usrDao.update(usr, AppDef.USERID_NONE);
        }
        
            
        /* JSONのレスポンスを設定 */
        setResponse(result);
    }
    /**
     * 処理結果
     * @author k_inaba
     */
    public static class Result extends ApiResult{
//        public boolean value;
    }
    
}
