Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package in.shop2020.support.controllers;
import org.apache.commons.codec.binary.Base64;

import in.shop2020.model.v1.order.TransactionService.Client;
import in.shop2020.model.v1.order.TransactionServiceException;
import in.shop2020.thrift.clients.TransactionClient;

import java.io.UnsupportedEncodingException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.thrift.TException;
import org.apache.thrift.transport.TTransportException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


@InterceptorRefs({
    @InterceptorRef("defaultStack")
})
@Results({
    @Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})
})
public class PriceApprovalController implements ServletRequestAware, ServletResponseAware {

        private static Logger logger = LoggerFactory.getLogger(PriceApprovalController.class);
        private HttpServletRequest request;
        private HttpServletResponse response;
        private long orderId;
        private boolean approve;
        private boolean displayForm = false;
        
        public String index()  throws NumberFormatException, UnsupportedEncodingException {
                String ohash = request.getParameter("xszbg");
                orderId = Long.parseLong(decodeString(ohash));
                displayForm = true;
                return "index";
        }
        
        public String create(){
                Client client;
                try {
                        client = (new TransactionClient()).getClient();

                        if(approve){
                                client.verifyOrder(orderId);
                        }else{
                                client.refundOrder(orderId, "Store Area Manager", "Can not sell below minimum price");
                        }
                } catch (TTransportException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (TransactionServiceException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (TException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                return "index";
        }

        public static String encodeString(String str) throws UnsupportedEncodingException{
                byte[] encodedBytes = Base64.encodeBase64(str.getBytes("UTF8"));
                return (new String(encodedBytes, "UTF8"));
        }
        
        public static String decodeString(String str) throws UnsupportedEncodingException{
                byte[] decodedBytes = Base64.decodeBase64(str.getBytes("UTF8"));
                return (new String(decodedBytes, "UTF8"));
        }

        public static void main(String[] args) throws UnsupportedEncodingException {
                System.out.println(encodeString("1881818"));
        }
        
        @Override
        public void setServletResponse(HttpServletResponse arg0) {
                this.response = arg0;
        }

        @Override
        public void setServletRequest(HttpServletRequest arg0) {
                this.request = arg0;
        }

        public boolean displayForm(){
                return displayForm;
        }
        
        public void setOrderId(long orderId) {
                this.orderId = orderId;
        }

        public String getOrderId() {
                return Long.toString(orderId);
        }

        public void setApprove(boolean approve) {
                this.approve = approve;
        }

        public boolean isApprove() {
                return approve;
        }

   public String getServletContextPath() {
        return request.getContextPath();
    }
 
}