package Servlet;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import Datos.UsuarioDB;
import Datos.CodClubDB;
import Datos.MiembrosClubDB;
import Modelo.CodClub;
import Modelo.Usuario;
import java.util.UUID;


public class Registro2Servlet extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        String encoding = request.getCharacterEncoding();
        if (encoding == null) {
            request.setCharacterEncoding("UTF-8");
        }
        HttpSession sesion = request.getSession();
        Usuario usuario = (Usuario) sesion.getAttribute("usuario");
        String nombre_club = request.getParameter("nombre_club");
        CodClub cod_club = CodClubDB.getCodClub(nombre_club);
        String url;
        if(cod_club.getNombre_club().equals("")){
            String id_club = UUID.randomUUID().toString();
            CodClub cod_club_def = new CodClub(id_club,nombre_club);
            if(CodClubDB.addCodClub(cod_club_def)){
                if (UsuarioDB.addUsuario(usuario, (String) sesion.getAttribute("contraseña"))) {
                    if(MiembrosClubDB.addMiembro(usuario, cod_club_def)){
                        sesion.setAttribute("usuario", usuario);
                        sesion.setAttribute("club",cod_club_def);
                        url = "/principal";
                    } else {
                        url = "/registro.jsp";
                        sesion.setAttribute("message", "Ocurrio un error en la creación del miembro del club.");
                    }
               } else {
                   url = "/registro.jsp";
                   sesion.setAttribute("message", "Ocurrio un error en la creación del usuario.");
               }
            }else{
                url = "/registro.jsp";
                sesion.setAttribute("message", "Ocurrio un error en la creación del club.");
            }
        }else {
            url = "/registro.jsp";
            sesion.setAttribute("message", "El nombre del club ya existe.");
        }
        
        sesion.removeAttribute("registro");
        sesion.removeAttribute("contraseña");
        RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(url);
        dispatcher.forward(request, response);
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
