package servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class conversor_temperatura
 */
@WebServlet("/conversor_temperatura")
public class Conversor extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Conversor() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		PrintWriter pw = response.getWriter();
		pw.write("Hola desde el SERVLET. GET!");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		
		String valorTemperatura = request.getParameter("valor");
		String tipoTemperatura = request.getParameter("tipo_temperatura");
		
		//Obtiene el writer de la respuesta y la guarda
		//en una variable "respuesta"
		PrintWriter respuesta = response.getWriter();
		
		//convertir el valor a double
		double valorTemperaturaDouble;

		try {
			valorTemperaturaDouble = Double.parseDouble(valorTemperatura);
		}catch(Exception e){
			respuesta.println("<!DOCTYPE html>");
			respuesta.print("<html>");
			respuesta.println("<head>");
			respuesta.println("<meta charset=\"UTF-8\">");
			respuesta.println("<title>Convertidor!</title>");
			respuesta.println("</head>");
			respuesta.println("<body>");
			respuesta.println("El valor introducido no es valido" );
			respuesta.println("</body>");
			respuesta.println("</html>");
			return;
		}
		
		//si todo salió bien, va a llegar a esta linea
		valorTemperaturaDouble = Double.parseDouble(valorTemperatura);
		
		double celsius=0;
		double fahrenheit=0;
		double kelvin=0;

		if(tipoTemperatura.equals("c")) {
			celsius = valorTemperaturaDouble;
			fahrenheit = (celsius * 1.8) + 32;
			kelvin = (celsius + 273.15);
		}
		else if(tipoTemperatura.equals("k")) {
			kelvin = valorTemperaturaDouble;
			celsius = (kelvin-273.15);
			fahrenheit = (celsius * 1.8) + 32;
		}
		else if(tipoTemperatura.equals("f")) {
			fahrenheit = valorTemperaturaDouble;
			celsius = (fahrenheit-32) / 1.8;
			kelvin = (celsius + 273.15);
		}

		respuesta.println("<!DOCTYPE html>");
		respuesta.print("<html>");
		respuesta.println("<head>");
		respuesta.println("<meta charset=\"UTF-8\">");
		respuesta.println("<title>Convertidor!</title>");
		respuesta.println("</head>");
		respuesta.println("<body>");
		respuesta.println("En grados Celsius: " + celsius);
		respuesta.println("<br>");
		respuesta.println("En grados Fharenheit: " + fahrenheit);
		respuesta.println("<br>");
		respuesta.println("En grados kelvin: " + kelvin);
		respuesta.println("</body>");
		respuesta.println("</html>");
	}

}
