UpdateStatusServlet.java

package com.popx.presentazione;

import com.popx.modello.OrdineBean;
import com.popx.persistenza.OrdineDAO;
import com.popx.persistenza.OrdineDAOImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;

@WebServlet("/UpdateOrderStatus")
public class UpdateStatusServlet extends HttpServlet {

    private final OrdineDAO ordineDAO;

    // 👉 production
    public UpdateStatusServlet() {
        this.ordineDAO = new OrdineDAOImpl();
    }

    // 👉 test
    public UpdateStatusServlet(OrdineDAO ordineDAO) {
        this.ordineDAO = ordineDAO;
    }

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("application/json");

        String idParam = request.getParameter("id");
        String newStatus = request.getParameter("status");

        if (idParam == null || newStatus == null) {
            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
            response.getWriter().write("{\"success\": false}");
            return;
        }

        int orderId;
        try {
            orderId = Integer.parseInt(idParam);
        } catch (NumberFormatException e) {
            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
            response.getWriter().write("{\"success\": false}");
            return;
        }

        try {
            OrdineBean ordine = ordineDAO.getOrdineById(orderId);
            if (ordine == null) {
                response.setStatus(HttpServletResponse.SC_NOT_FOUND);
                response.getWriter().write("{\"success\": false}");
                return;
            }

            ordine.setStatus(newStatus);
            boolean success = ordineDAO.updateStatus(ordine);

            response.getWriter().write("{\"success\": " + success + "}");

        } catch (Exception e) {
            e.printStackTrace();
            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
            response.getWriter().write("{\"success\": false}");
        }
    }
}