RemoveFromCartServlet.java

package com.popx.presentazione;

import com.popx.modello.ProdottoBean;
import com.popx.persistenza.ProdottoDAOImpl;

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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

@WebServlet("/RemoveFromCartServlet")
public class RemoveFromCartServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String productId = request.getParameter("productId");

        HttpSession session = request.getSession();
        List<ProdottoBean> cart = (List<ProdottoBean>) session.getAttribute("cart");
        ProdottoDAOImpl prodottoDao = new ProdottoDAOImpl();

        // Recupera l'email dell'utente
        String userEmail = (String) session.getAttribute("userEmail");



        try {
            if (productId != null && !productId.isEmpty() && cart != null) {


                // Rimuovi il prodotto dal carrello in sessione
                cart.removeIf(product -> product.getId().equals(productId));
                session.setAttribute("cart", cart);

                // Se l'utente รจ loggato, rimuovi il prodotto anche dal database
                if (userEmail != null) {
                    prodottoDao.removeProductFromCart(userEmail, productId);
                }

                response.setContentType("application/json");
                response.getWriter().write("{\"success\": true}");
            } else {
                response.setContentType("application/json");
                response.getWriter().write("{\"success\": false, \"message\": \"Invalid product ID.\"}");
            }
        } catch (SQLException e) {
            e.printStackTrace();
            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
            response.getWriter().write("{\"success\": false, \"message\": \"Errore nella rimozione del prodotto.\"}");
        }
    }
}