ManageRequiredTrainingPlanServlet.java

package it.unisa.c03.myPersonalTrainer.requiredtrainingplan.control;

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 java.io.IOException;
import java.util.concurrent.ExecutionException;

import it.unisa.c03.myPersonalTrainer.requiredtrainingplan.bean.RequiredTrainingPlan;
import it.unisa.c03.myPersonalTrainer.requiredtrainingplan.dao.RequiredTrainingPlanDAO;
import it.unisa.c03.myPersonalTrainer.requiredtrainingplan.dao.RequiredTrainingPlanDAOImpl;
import it.unisa.c03.myPersonalTrainer.requiredtrainingplan.service.RequiredTrainingPlanService;
import it.unisa.c03.myPersonalTrainer.requiredtrainingplan.service.RequiredTrainingPlanServiceImpl;
/**
 * servlet to manage requestedTrainingPlan.
 */
@WebServlet(name = "ManageRequiredTrainingPlanServlet",
        value = "/ManageRequiredTrainingPlanServlet")

public class ManageRequiredTrainingPlanServlet extends HttpServlet {

    /**
     * method do post.
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    public void doPost(HttpServletRequest request,
                       HttpServletResponse response)
            throws ServletException, IOException {
        String error = (String) request.getSession().getAttribute("error");
        String done = (String) request.getSession().getAttribute("done");

        String emailClientee = (String)
                request.getSession().getAttribute("clienteMail");
        String action = request.getParameter("action");

        if (emailClientee == null) {
            response.sendRedirect("login.jsp");
        } else {
            int required = 0;
            RequiredTrainingPlan requireTest =
                    new RequiredTrainingPlan(emailClientee, required);
            //call the function to register a new account
            RequiredTrainingPlan newRequiredTP;
            RequiredTrainingPlanDAO requiredTrainingPlanDao =
                    new RequiredTrainingPlanDAOImpl();
            RequiredTrainingPlanService requiredTrainingPlanService =
                    new RequiredTrainingPlanServiceImpl(
                            requiredTrainingPlanDao);
            boolean checked = false;
            try {
                String mail = (String)
                        request.getSession().getAttribute("mailutil");

                checked = requiredTrainingPlanService.
                        searchAccountByEmail(emailClientee);
                if (!checked) {
                    //it doesn't exists, so we create it
                    requireTest.setRequired(1);
                    requiredTrainingPlanService.registerRequest(requireTest);

                    request.getSession().setAttribute("firstTPSuccess",
                            "Prima Scheda creata con successo");
                    response.sendRedirect("requestTrainingPlan.jsp");
                } else {
                    try {
                        requireTest = requiredTrainingPlanService
                                .getAccountByEmail(emailClientee);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    } catch (ExecutionException e) {
                        e.printStackTrace();
                    }
                    //it exists, so we verify if the training plan has
                    //  been requested or not
                    if (requireTest.getRequired() == 1) {
                        request.getSession().setAttribute("alreadyRequired",
                                "Scheda giĆ  richiesta: "
                                        + "attenderne la creazione");
                        response.sendRedirect("requestTrainingPlan.jsp");
                    } else if (requireTest.getRequired() == 0) {
                        requireTest.setRequired(1);
                        requiredTrainingPlanService.
                                changeRequest(emailClientee, 1);
                        request.getSession().setAttribute("success",
                                "Scheda creata con successo");

                        response.sendRedirect("requestTrainingPlan.jsp");
                    }
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            }
        }
            boolean control = false;
        }
        /**
         *
         * @param request
         * @param response
         * @throws ServletException
         * @throws IOException
         */
        public void doGet(HttpServletRequest request,
                HttpServletResponse response)
            throws ServletException, IOException {
            doPost(request, response);
        }

}