Subversion Repositories SmartDukaan

Rev

Rev 3830 | Rev 4865 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
458 rajveer 1
/**
2
 * 
3
 */
4
package in.shop2020.serving.controllers;
5
 
3830 chandransh 6
import java.util.HashMap;
7
import java.util.Map;
507 rajveer 8
import java.util.StringTokenizer;
9
 
10
import in.shop2020.logistics.LogisticsService.Client;
4630 mandeep.dh 11
import in.shop2020.logistics.DeliveryType;
786 rajveer 12
import in.shop2020.logistics.LogisticsServiceException;
3126 rajveer 13
import in.shop2020.thrift.clients.LogisticsClient;
507 rajveer 14
 
832 rajveer 15
import org.apache.log4j.Logger;
458 rajveer 16
import org.apache.struts2.rest.DefaultHttpHeaders;
17
import org.apache.struts2.rest.HttpHeaders;
786 rajveer 18
import org.apache.thrift.TException;
458 rajveer 19
 
3830 chandransh 20
import com.google.gson.Gson;
21
 
458 rajveer 22
/**
23
 * @author rajveer
24
 *
25
 */
26
public class EstimateController extends BaseController {
27
 
1044 chandransh 28
	private static final long serialVersionUID = 8023801600023970837L;
29
 
832 rajveer 30
	private static Logger log = Logger.getLogger(Class.class);	
458 rajveer 31
	private String id;
507 rajveer 32
	private long itemId;
33
	private String pincode;
843 chandransh 34
	private long days = -1;
3830 chandransh 35
	private boolean isCODAvailable;
36
	private Map<String, String> response = new HashMap<String, String>();
37
 
458 rajveer 38
	public EstimateController() {
39
		super();
40
	}
41
 
42
    // GET /logout
786 rajveer 43
    public HttpHeaders show(){
3126 rajveer 44
    	LogisticsClient logisticsServiceClient = null;
507 rajveer 45
    	try {
3126 rajveer 46
			logisticsServiceClient = new LogisticsClient();
507 rajveer 47
			Client logisticsClient = logisticsServiceClient.getClient();
4630 mandeep.dh 48
			days = logisticsClient.getLogisticsEstimation(itemId, pincode, DeliveryType.PREPAID).getDeliveryTime();
3830 chandransh 49
			isCODAvailable = logisticsClient.isCodAllowed(pincode);
50
    	} catch (LogisticsServiceException e)	{
843 chandransh 51
    		days = -1;
3830 chandransh 52
    		isCODAvailable = false;
53
    		log.error("Unable to get estimate/COD availability for " + itemId, e);
54
 
55
		} catch(TException e)	{
786 rajveer 56
 
3830 chandransh 57
		} catch (Exception e)	{
786 rajveer 58
 
59
		}
3830 chandransh 60
		response.put("delivery_estimate", Long.toString(days));
61
		response.put("is_cod_available_for_location", Boolean.toString(isCODAvailable));
62
 
458 rajveer 63
    	return new DefaultHttpHeaders("index");
64
    }
3830 chandransh 65
 
458 rajveer 66
    /**
67
     * 
68
     * @param id
69
     */
70
    public void setId(String id) {
71
        this.id = id;
2148 chandransh 72
        StringTokenizer tokenizer = new StringTokenizer(this.id, "_");
507 rajveer 73
        this.pincode = tokenizer.nextToken();
74
        this.itemId = Long.parseLong(tokenizer.nextToken());
458 rajveer 75
    }
76
 
3830 chandransh 77
    public String getResponseJSONString() {
78
    	Gson gson = new Gson();
79
    	return gson.toJson(response);
458 rajveer 80
    }
3830 chandransh 81
}