package kr.co.jinwoosi.clfd.clfd.user.web;

import kr.co.jinwoosi.clfd.clfd.user.service.ClfdUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

@Controller
public class MailAuthController {

    @Autowired
    private ClfdUserService clfdUserService;

    @RequestMapping(value="/clfd/join/auth.json", method= RequestMethod.GET)
    @ResponseBody
    public String joinAuth(@RequestParam("id") String id, @RequestParam("authCode") String authCode) {
        boolean isAuth = false;
        try {
            isAuth = clfdUserService.emailAuth(id, authCode);
        } catch (Exception e) {
            return "처리중 예외가 발생하였습니다.";
        }

        if (isAuth) {
            return "인증이 완료되었습니다.";
        } else {
            return "인증값이 올바르지 않습니다.";
        }
    }

    /**
     * 이메일 인증시 아이디 찾기
     */
    @RequestMapping(value = "/clfd/find/id.json", method = RequestMethod.GET)
    @ResponseBody
    public Map<String, String> findId(@RequestParam("email") String email) {
        Map<String, String> result = new HashMap<String, String>();
        boolean isFindId = clfdUserService.findIdByEmail(email);

        if (isFindId) {
            result.put("result", "success");
            result.put("message", "해당 이메일로 가입한 아이디를 보내드렸습니다.");
        } else {
            result.put("result", "fail");
            result.put("message", "등록되지 않은 이메일입니다.");
        }
        return result;
    }

    /**
     * 이메일 인증시 비밀번호 찾기
     */
    @RequestMapping(value = "/clfd/find/password.json", method = RequestMethod.GET)
    @ResponseBody
    public Map<String, String> findPassword(@RequestParam("userLoginId") String userLoginId, @RequestParam("email") String email) throws Exception {
        Map<String, String> result = new HashMap<String, String>();
        boolean isFindPassword = clfdUserService.findPassword(userLoginId, email);

        if (isFindPassword) {
            result.put("result", "success");
            result.put("message", "해당 이메일로 임시 비밀번호를 보내드렸습니다.");
        } else {
            result.put("result", "fail");
            result.put("message", "아이디나 이메일 정보를 확인해주세요.");
        }
        return result;
    }
}
