Subversion Repositories SmartDukaan

Rev

Rev 410 | Blame | Last modification | View Log | RSS feed

package in.shop2020.serving.controllers;

import in.shop2020.model.v1.shoppingcart.Cart;
import in.shop2020.model.v1.shoppingcart.ShoppingCartException;
import in.shop2020.serving.controllers.BaseController;
import in.shop2020.serving.pages.PageContentKeys;
import in.shop2020.serving.pages.PageEnum;
import in.shop2020.serving.pages.PageManager;
import in.shop2020.thrift.clients.ShoppingCartClient;
import in.shop2020.thrift.clients.UserContextServiceClient;

import java.util.*;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.apache.struts2.interceptor.ParameterAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.rest.DefaultHttpHeaders;
import org.apache.struts2.rest.HttpHeaders;
import org.apache.thrift.TException;

import com.opensymphony.xwork2.ValidationAwareSupport;

@Results({
    @Result(name="success", type="redirectAction", 
                params = {"actionName" , "cart"})
})

public class CartController extends BaseController implements ParameterAware, ServletRequestAware {
        
        private static final long serialVersionUID = 1L;
        
        private Map<String, String[]> reqparams;
        private Map<String, Object> sessions;
        private String redirectURL;
        private static Log log = LogFactory.getLog(CartController.class);
        private String itemId;
        HttpServletRequest request;
        private Map<String,String> htmlSnippets;
        
        public CartController(){
                
        }
        
        
         // GET /entity
    public HttpHeaders index() {
        Cookie loginCookie = new Cookie("userId", "Rajveer");
        Map cookiesMap = new HashMap();
        cookiesMap.put("USER_ID", loginCookie);
        setCookiesMap(cookiesMap);
        
        log.info( "Cookies map is " + this.getCookiesMap());
        log.info("CartController.index");
        
                Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();

                params.put(PageContentKeys.CUSTOMER_ID, "4");
                params.put(PageContentKeys.IS_SESSION_ID, "1");

                
                htmlSnippets = PageManager.getPageManager().getPageContents(PageEnum.SHOPPING_CART_PAGE, params);
                

        
        return new DefaultHttpHeaders("index").disableCaching();
    }
    
    // POST /entity
    public String create() {
        log.info("CartController.create");
        printParams();
        if(getCookiesMap() != null){
                Cookie loginCookie = (Cookie)getCookiesMap().get("USER_ID");
                log.info("login cookie name is " + loginCookie.getName() );
                log.info("login cookie value is " + loginCookie.getValue());
        }
        log.info("item id is " + this.reqparams.get("item_id"));
        itemId = this.reqparams.get("item_id")[0];
        
        addItemToCart(itemId);
        addItemToCart(Long.parseLong(itemId), 4);
        // Add data to the cart
        
                return "success";
    }
    
    public void printParams(){
        for(String param : reqparams.keySet()) {
                log.info("param name is " + param);
                log.info("param first is " + reqparams.get(param)[0]);
        }
        log.info(this.reqparams);
    }
    
    private boolean addItemToCart(String itemId){
        log.info("Session Id is "  + request.getSession().getId());
        log.info("Item Id is "  + itemId);
        return true;
    }
    
    
        private void addItemToCart(long catalogItemId, long userId){
                UserContextServiceClient userContextServiceClient = null;
                in.shop2020.model.v1.user.UserContextService.Client userClient = null;

                ShoppingCartClient shoppingCartClient = null;
                in.shop2020.model.v1.shoppingcart.ShoppingCartService.Client cartClient = null;
                long cartId = -1;
                
                try {
                        userContextServiceClient = new UserContextServiceClient();
                        userClient = userContextServiceClient.getClient();

                        shoppingCartClient = new ShoppingCartClient();
                        cartClient = shoppingCartClient.getClient();
                        cartId = cartClient.createCart(userId, false);
                        cartClient.addItemToCart(cartId, catalogItemId, 1);
                } catch (ShoppingCartException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (TException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                
                //if user is logged in create  new cart
                //if( userClient.getState(userId, false).isIsLoggedIn()){
        }
        
        public String getShoppingCartSnippets()
        {
                return htmlSnippets.get("SHOPPING_CART");
        }
        
        @Override
        public void setParameters(Map<String, String[]> reqmap) {
                log.info("setParameters:" + reqmap);
                
                this.reqparams = reqmap;
        }
        
        @Override
        public void setServletRequest(HttpServletRequest request) {
                this.request = request;
        }
    
}