Subversion Repositories SmartDukaan

Rev

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