package jp.co.y_net.amm.api;

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

import jp.co.y_net.amm.dao.Org;
import jp.co.y_net.amm.dao.OrgDao;
import jp.co.y_net.amm.dao.Usr;
import jp.co.y_net.amm.dao.UsrDao;

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

/**
 * @author k_inaba
 *
 * 2015/10/02 ユーザIDも返却する
 *
 */
public class ApiMember extends ApiPage {

    
    
    @SpringBean(name="usrDao")
    protected UsrDao usrDao;
    
    @SpringBean(name="orgDao")
    protected OrgDao orgDao;
    
    public ApiMember(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);
        }
        
        Usr usr = usrDao.getByLoginid(loginid);
        
        if(usr == null) {
            setResponse(result.err("指定された loginid からデータが取得できませんでした。"));
            return;
        } else {
            result.name = usr.getName();
            
            result.usrid = usr.getUsrid();
            
            result.kind = usr.getKind();
            
            Org cnd = new Org();
            cnd.setOrgid(usr.getOrgid());
            List<Org> orgs = orgDao.get(cnd);
            
            if(orgs.size() > 0) {
                result.orgid =orgs.get(0).getOrgid();
                result.orgname = orgs.get(0).getName();
            }
            
        }
            
        /* JSONのレスポンスを設定 */
        setResponse(result);
    }
    /**
     * 処理結果
     */
    public static class Result extends ApiResult{
        public String name;
        public Integer usrid;
        public Integer orgid;
        public String orgname;
        public Integer kind; // 2016/03/07 追加
    }
}
