package com.juanan.pocs.companies.web.controller;

import javax.servlet.http.HttpSession;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
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.servlet.ModelAndView;

import com.juanan.pocs.companies.web.bean.UsuarioSesion;


@Controller
@RequestMapping("AppStart")
public class InicioController {
	
	final static Logger logger = LogManager.getLogger(InicioController.class);

	@RequestMapping(value = "", method = RequestMethod.GET)
	public ModelAndView cargaPaginaInicio(HttpSession session) {
		
		UsuarioSesion usuarioSesion = (UsuarioSesion) session.getAttribute("usuarioSesion");
		if (usuarioSesion == null){
			usuarioSesion = new UsuarioSesion();
			session.setAttribute("usuarioSesion", usuarioSesion);
			//Comentar cuando se quiera utilizar la funcionalidad de logado
			//session.setAttribute("usuarioSesion", new UsuarioSesion("Juanan",true,"2016"));
		}	
		ModelAndView modelAndView = new ModelAndView("paginaContenedora");
		
		return modelAndView;
	}
	
	
	@RequestMapping(value = "Login", method = RequestMethod.POST)
	public String iniciarSesion(
			@RequestParam(value = "username", required = true) String username,
			@RequestParam(value = "password", required = true) String password,
			HttpSession session) {
		
		UsuarioSesion usuarioSesion = (UsuarioSesion) session.getAttribute("usuarioSesion");
		if (usuarioSesion == null){
			usuarioSesion = new UsuarioSesion();
		}
		if ("juanan".equalsIgnoreCase(username) && "juanan".equals(password)){
			usuarioSesion.setNombre("Juanan");
			usuarioSesion.setAdministrador(true);
		}
		session.setAttribute("usuarioSesion", usuarioSesion);
		
		return "redirect:/AppStart";
	}
	
	
	@RequestMapping(value = "Logout", method = RequestMethod.GET)
	public String finalizarSesion(HttpSession session) {
		
		UsuarioSesion usuarioSesion = new UsuarioSesion();
		session.setAttribute("usuarioSesion", usuarioSesion);
		
		return "redirect:/AppStart";
	}
	
	
	@RequestMapping(value = "ChangeYear", method = RequestMethod.POST)
	public String cambiarAnyo(
			@RequestParam(value = "anyo", required = true) String anyo,
			HttpSession session) {
		
		UsuarioSesion usuarioSesion = (UsuarioSesion) session.getAttribute("usuarioSesion");
		if (usuarioSesion == null){
			usuarioSesion = new UsuarioSesion();
		}
		usuarioSesion.setAnyoMongoDB(anyo);
		session.setAttribute("usuarioSesion", usuarioSesion);
		
		return "redirect:/AppStart";
	}
	
}
