Subversion Repositories SmartDukaan

Rev

Rev 5693 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.support.controllers;



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

import java.util.Calendar;
import java.util.List;

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

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;
import org.apache.thrift.TException;
import org.apache.thrift.transport.TTransportException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class PickupStoreController implements ServletResponseAware, ServletRequestAware, ServletContextAware {

    private static Logger logger = LoggerFactory.getLogger(PickupStoreController.class);
    
    private HttpServletRequest request;
    private HttpServletResponse response;
    private ServletContext context;
    private String storeIdString;
    private long storeId;
    
    @Override
    public void setServletRequest(HttpServletRequest req) {
        this.request = req;
    }

    public HttpServletRequest getServletRequest() {
        return request;
    }

    @Override
    public void setServletResponse(HttpServletResponse res) {
        this.response = res;
    }

    public HttpServletResponse getServletResponse() {
        return response;
    }

    @Override
    public void setServletContext(ServletContext context) {
        this.context = context;
    }

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

    public String index(){
        storeIdString = (String) request.getSession().getAttribute("STORE_ID");
        if(storeIdString == null){
                storeIdString = request.getParameter("storeid");
                if(storeIdString == null){
                        return "authfail";
                }else{
                        request.getSession().setAttribute("STORE_ID", storeIdString);
                }
        }
        storeId = Long.parseLong(storeIdString);
        return "index";
    }
    
    // Handles the POST request (Form Submission)
    public String create() {
        storeIdString = (String) request.getSession().getAttribute("STORE_ID");
        if(storeIdString == null){
                return "authfail";
        }
        storeId = Long.parseLong(storeIdString);
        String orderIdString = request.getParameter("orderid");
        String action = request.getParameter("action");
        logger.info("orderIdString" + orderIdString);
        if(orderIdString != null){
                try {
                                Client client = (new TransactionClient()).getClient();
                                if(action.equals("markreceived")){
                                        client.markOrderAsReceivedAtStore(Long.parseLong(orderIdString), Calendar.getInstance().getTimeInMillis());     
                                }else if(action.equals("markdelivered")){
                                        String receiver = request.getParameter("receiver");
                                        client.markOrderAsDelivered(Long.parseLong(orderIdString), Calendar.getInstance().getTimeInMillis(), receiver);
                                }else if(action.equals("markreturned")){
                                        
                                }
                                
                                return "index";
                        } catch (TTransportException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        } catch (NumberFormatException 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 List<Order> getReceivePendingOrders() throws TException{
        Client client = (new TransactionClient()).getClient();
        return client.getReceivePendingOrders(storeId);
    }
    
    public List<Order> getReceivedAtStoreOrders() throws TException{
        Client client = (new TransactionClient()).getClient();
        return client.getReceivedAtStoreOrders(storeId);
    }
}