Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package in.shop2020.serving.controllers;

import in.shop2020.logistics.LogisticsService.Client;
import in.shop2020.logistics.ShipmentStatusInfo;
import in.shop2020.logistics.ShipmentUpdate;
import in.shop2020.model.v1.user.Address;
import in.shop2020.serving.pages.PageContentKeys;
import in.shop2020.serving.pages.PageEnum;
import in.shop2020.serving.pages.PageManager;
import in.shop2020.serving.utils.Utils;
import in.shop2020.thrift.clients.LogisticsServiceClient;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;

import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.struts2.rest.DefaultHttpHeaders;
import org.apache.struts2.rest.HttpHeaders;

public class ShipmentController extends BaseController{
        
        /**
         * 
         */
        private static Log log = LogFactory.getLog(ShipmentController.class);
        


        //id is in format xyz where xyz is abc is entityid
        private String id;
        
        //private String customer_id;
        
        private String entity_id;
        private String htmlSnippet;
    // GET /test
    public HttpHeaders index() throws UnsupportedEncodingException {
        log.info("this.request=" + this.request);
        
        return new DefaultHttpHeaders("show")
            .disableCaching();
    }

        
        //Handle /myresearch/{id}
        public HttpHeaders create(){
                log.info("list of item ids is " + this.request.getParameter("productid"));
                String itemIds = this.request.getParameter("productid");
                if(itemIds == null){
                        itemIds = "1000008_1000005";
                }
        //log.info("list of item ids is " + this.request.getParameter("productid"));
        //String itemIds = this.reqparams.get("productid")[0];
                
        
                //getFields();
                if(userinfo.isLoggedIn()){
                        Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();
                        params.put(PageContentKeys.ENTITY_ID, itemIds);
                        params.put(PageContentKeys.CUSTOMER_ID, userinfo.getUserId()+"");
                        htmlSnippet = PageManager.getPageManager().getPageContents(PageEnum.MY_RESEARCH_PAGE, params).get("HTML");
                }else{
                        htmlSnippet = "0";
                }
                //return new DefaultHttpHeaders("index").disableCaching();
                return new DefaultHttpHeaders("success");
        }
        
        public HttpHeaders destroy(){
                log.info("list of item ids is " + this.request.getParameter("productid"));
                String itemIds = this.request.getParameter("productid");
                if(itemIds == null){
                        itemIds = "1000008_1000005";
                }
                long itemId = 0;
                StringTokenizer tokenizer = new StringTokenizer(itemIds,"_");
                while(tokenizer.hasMoreTokens()){
                        itemId = Long.parseLong(tokenizer.nextToken());
                        Utils.deleteFromMyResearch(userinfo.getUserId(), itemId);       
                }
                return new DefaultHttpHeaders("success");
        }
        
        public String getHtmlSnippet(){
                if(htmlSnippet.compareTo("")==0){
                        htmlSnippet = "1";
                }
                return htmlSnippet;
        }
        
        public Address  getAddress(){
                Address address = null;
                return address;
        }
        
        public List<ShipmentUpdate> getUpdates(){
                List<ShipmentUpdate> updates = null;
                try {
                        LogisticsServiceClient logisticsServiceClient = new LogisticsServiceClient();
                        Client logisticsClient = logisticsServiceClient.getClient();
                        updates = logisticsClient.getShipmentInfo(this.id).getUpdates();
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                return updates;
        }
        
        
    /**
     * 
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }
        
}