Subversion Repositories SmartDukaan

Rev

Rev 3126 | Rev 4630 | 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;
786 rajveer 11
import in.shop2020.logistics.LogisticsServiceException;
3126 rajveer 12
import in.shop2020.thrift.clients.LogisticsClient;
507 rajveer 13
 
832 rajveer 14
import org.apache.log4j.Logger;
458 rajveer 15
import org.apache.struts2.rest.DefaultHttpHeaders;
16
import org.apache.struts2.rest.HttpHeaders;
786 rajveer 17
import org.apache.thrift.TException;
458 rajveer 18
 
3830 chandransh 19
import com.google.gson.Gson;
20
 
458 rajveer 21
/**
22
 * @author rajveer
23
 *
24
 */
25
public class EstimateController extends BaseController {
26
 
1044 chandransh 27
	private static final long serialVersionUID = 8023801600023970837L;
28
 
832 rajveer 29
	private static Logger log = Logger.getLogger(Class.class);	
458 rajveer 30
	private String id;
507 rajveer 31
	private long itemId;
32
	private String pincode;
843 chandransh 33
	private long days = -1;
3830 chandransh 34
	private boolean isCODAvailable;
35
	private Map<String, String> response = new HashMap<String, String>();
36
 
458 rajveer 37
	public EstimateController() {
38
		super();
39
	}
40
 
41
    // GET /logout
786 rajveer 42
    public HttpHeaders show(){
3126 rajveer 43
    	LogisticsClient logisticsServiceClient = null;
507 rajveer 44
    	try {
3126 rajveer 45
			logisticsServiceClient = new LogisticsClient();
507 rajveer 46
			Client logisticsClient = logisticsServiceClient.getClient();
649 chandransh 47
			days = logisticsClient.getLogisticsEstimation(itemId, pincode).getDeliveryTime();
3830 chandransh 48
			isCODAvailable = logisticsClient.isCodAllowed(pincode);
762 rajveer 49
 
3830 chandransh 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
}