package sklep.www;

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;

//import org.apache.commons.lang3.StringEscapeUtils;


import sklep.logika.SingletonSklep;
import sklep.logika.Sklep;

/**
 * Servlet implementation class Witryna
 */
@WebServlet("/Witryna")
public class Witryna extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	doGet(req, resp);
    }
    
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String operacja = request.getParameter("operacja");
        String nazwa = request.getParameter("nazwa");
        String liczba = request.getParameter("liczba");
        String komunikat = null;
        
        if(operacja != null) {
            komunikat = this.wykonajOperacje(operacja, nazwa, liczba);
        }

        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        out.println("<html><head><title>Sklep</title></head>");
        out.println("<body>");
        out.println("<h2>Sklep</h2>");
        out.println("<form id='sklep' method='post'>");
        out.println("<div>");
        out.println("<label for='operacja'>Operacja:&nbsp;</label>");
        out.println("<input type='radio' name='operacja' id='operacja_opis' value='opis' checked='checked'>&nbsp;");
        out.println("<input type='radio' name='operacja' id='operacja_zakup' value='zakup'>");
        out.println("</div>");

        out.println("<div>");
        out.println("<label for='nazwa'>Nazwa towaru:&nbsp;</label>");
        out.println("<input type='text' name='nazwa' id='nazwa' value='"+nazwa+"'>");
        out.println("</div>");

        out.println("<div>");
        out.println("<label for='nazwa'>Liczba sztuk:&nbsp;</label>");
        out.println("<input type='text' name='liczba' id='liczba' value='"+liczba+"'>");
        out.println("</div>");

        out.println("<input type='submit' name='submit' id='submit' value='Wykonaj'>");
        out.println("</form>");
        if(komunikat != null) {
            out.println("<p id='komunikat'>"
                    //+StringEscapeUtils.escapeHtml4(komunikat)
                    +komunikat
                    +"</p>");
        }
        out.println("</body></html>");
        out.close();
    }

    private String wykonajOperacje(String operacja, String nazwa, String liczba) {
    	Sklep sklep = SingletonSklep.getSklep();
    	//System.out.println(sklep);
    	switch(operacja) {
    	case "opis":
    		String opis = sklep.opisTowaru(nazwa);
    		return opis;
    	case "zakup":
    		try {
				int ile = Integer.parseInt(liczba);
				String wynik = sklep.zakup(nazwa, ile);
				return wynik;
			} catch (NumberFormatException e) {
				return "Błędny format";
			}
    	default:
    		return "Nieznana operacja ["+operacja+"]";
    	}
    }
}


