/* * Licensed to csti consulting * You may obtain a copy of the License at * * http://www.csticonsulting.com * Copyright (c) 2006-Aug 25, 2010 Consultation CS-TI inc. * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package com.salesmanager.checkout; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionSupport; import com.salesmanager.core.constants.ConfigurationConstants; import com.salesmanager.core.entity.customer.Customer; import com.salesmanager.core.entity.merchant.MerchantConfiguration; import com.salesmanager.core.entity.merchant.MerchantStore; import com.salesmanager.core.entity.orders.Order; import com.salesmanager.core.entity.orders.OrderStatusHistory; import com.salesmanager.core.service.ServiceFactory; import com.salesmanager.core.service.merchant.ConfigurationRequest; import com.salesmanager.core.service.merchant.ConfigurationResponse; import com.salesmanager.core.service.merchant.MerchantService; import com.salesmanager.core.util.www.SalesManagerInterceptor; import com.salesmanager.core.util.www.SessionUtil; public abstract class CheckoutInterceptor extends SalesManagerInterceptor { private Logger log = Logger.getLogger(CheckoutInterceptor.class); public void destroy() { // TODO Auto-generated method stub } public void init() { // TODO Auto-generated method stub } protected String baseIntercept(ActionInvocation invoke, HttpServletRequest req, HttpServletResponse resp) throws Exception { try { MerchantStore store = SessionUtil.getMerchantStore(req); req.setAttribute("STORE", store); // get analytics if(store!=null) { ConfigurationRequest request = new ConfigurationRequest(store .getMerchantId());// get all configurations MerchantService mservice = (MerchantService) ServiceFactory .getService(ServiceFactory.MerchantService); ConfigurationResponse vo = mservice.getConfiguration(request); if (vo != null) { MerchantConfiguration merchantConfiguration = vo .getMerchantConfiguration(ConfigurationConstants.G_API); if (merchantConfiguration != null) { String analytics = merchantConfiguration .getConfigurationValue(); req.setAttribute("ANALYTICS", analytics); } } } // set objects in http request Customer customer = SessionUtil.getCustomer(req); req.setAttribute("CUSTOMER", customer); Map products = SessionUtil.getOrderProducts(req); if (products != null) { List prds = new ArrayList(); prds.addAll(products.entrySet()); req.setAttribute("ORDERPRODUCTS", customer); } Collection totals = SessionUtil.getOrderTotals(req); req.setAttribute("TOTALS", totals); Order order = SessionUtil.getOrder(req); req.setAttribute("ORDER", order); OrderStatusHistory comments = SessionUtil .getOrderStatusHistory(req); req.setAttribute("HISTORY", comments); String r = doIntercept(invoke, req, resp); return r; } catch (Exception e) { log.error(e); ActionSupport action = (ActionSupport) invoke.getAction(); action.addActionError(action.getText("errors.technical") + " " + e.getMessage()); return "GENERICERROR"; } } protected abstract String doIntercept(ActionInvocation invoke, HttpServletRequest req, HttpServletResponse resp) throws Exception; }