1    package com.instantbank.collections.commonQueuing.web;
2    
3    import javax.servlet.RequestDispatcher;
4    import javax.servlet.ServletConfig;
5    import javax.servlet.ServletContext;
6    import javax.servlet.ServletException;
7    import javax.servlet.http.HttpServlet;
8    import javax.servlet.http.HttpServletRequest;
9    import javax.servlet.http.HttpServletResponse;
10   import javax.servlet.http.HttpSession;
11   import java.io.IOException;
12   import javax.ejb.FinderException;
13   import com.instantbank.collections.commonQueuing.ejb.QueueServices;
14   import com.instantbank.collections.commonQueuing.ejb.QueueServicesHome;
15   import com.instantbank.collections.util.FilterChain;
16   import com.instantbank.collections.util.InstantbankException;
17   import com.instantbank.collections.util.ServiceLocator;
18   
19   public class CurrentQueuesController extends HttpServlet {
20     private String debug = "";
21     private QueueServices services;
22     private HttpSession session;
23   
24   
25     public void init(ServletConfig config) throws ServletException {
26       super.init(config);
27       try {
28         QueueServicesHome home = (QueueServicesHome)ServiceLocator.instance().createEJB("QueueServicesHome", QueueServicesHome.class, false);
29         services = home.create();
30       }
31       catch(Exception e) {
32         e.printStackTrace();
33       }
34     }
35   
36   
37     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
38       doPost(request, response);
39     }
40   
41   
42     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
43       String action = "";
44       com.instantbank.collections.util.FilterChain chain;
45   
46       try {
47         action = request.getParameter("action");
48         session = request.getSession(false);
49         session.setAttribute("hasException", "0");
50         try {
51           chain = new com.instantbank.collections.util.FilterChain(true, getServletConfig().getServletContext());
52           if(chain.processFilter(request, response)) {
53             return;
54           }
55           if(action.equals("initialize")) {
56             initialize(request, response);
57           }
58           else {
59             throw new InstantbankException("112001", "Action " + action + " not supported");
60           }
61         }
62         catch(Exception e) {
63           throw new InstantbankException(e, "112002", "Failed to execute controller action " + action + " (" + debug + ")");
64         }
65       }
66       catch(InstantbankException e) {
67         session.setAttribute("hasException", "1");
68         session.setAttribute("Exception", e);
69         if(response.isCommitted()) {
70           return;
71         }
72         response.sendRedirect("../main_web/ControllerError.jsp?showTechnical=0");
73       }
74     }
75   
76   
77     private void initialize(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, FinderException, Exception {
78       Long companyId;
79       String objectId;
80       String objectType;
81       String xml;
82   
83       companyId = (Long)session.getAttribute("companyId");
84       objectType = (String)request.getParameter("objectType");
85       objectId = ((Long)request.getAttribute("objectId")).toString();
86       xml = services.getCurrentQueues(objectType, objectId, companyId);
87       request.setAttribute("data", xml);
88   
89       // 10102002 tjm CR 200210800.0 - fix previous queue logic
90       request.setAttribute("previousQueueMap", services.getCurrentQueuesPrevious(
91         objectType, Long.parseLong(objectId)));
92       ServletContext sc = getServletConfig().getServletContext();
93   
94       RequestDispatcher rd = sc.getRequestDispatcher("/commonQueuing_web/QueuesListView.jsp?title=Current Queues");
95       rd.forward(request, response);
96     }
97   
98   
99     public String getServletInfo() {
100      return "com.instantbank.collections.commonQueuing.web.CurrentQueuesController Information";
101    }
102  }
103  
104