Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
545 rajveer 1
/**
2
 * 
3
 */
4
package in.shop2020.serving.controllers;
5
 
741 rajveer 6
import java.io.File;
7
import java.util.ArrayList;
8
import java.util.HashMap;
545 rajveer 9
import java.util.List;
741 rajveer 10
import java.util.Map;
545 rajveer 11
 
12
import in.shop2020.model.v1.catalog.InventoryServiceException;
741 rajveer 13
import in.shop2020.serving.utils.FileUtils;
14
import in.shop2020.serving.utils.Utils;
545 rajveer 15
import in.shop2020.thrift.clients.CatalogServiceClient;
16
 
17
import org.apache.juli.logging.Log;
18
import org.apache.juli.logging.LogFactory;
19
import org.apache.struts2.rest.DefaultHttpHeaders;
20
import org.apache.struts2.rest.HttpHeaders;
21
import org.apache.thrift.TException;
22
 
23
/**
24
 * get best deals items from the catalog service
25
 * @author rajveer
26
 *	
27
 */
28
public class BestDealsController extends BaseController {
29
 
30
	/**
31
	 * 
32
	 */
33
 
34
	private static Log log = LogFactory.getLog(BestDealsController.class);
35
 
36
	private final int windowSize = 20;
37
 
38
	private long beginIndex = 0;
39
 
40
	private long totalItems;
41
 
42
	private String id;
43
 
44
	List<Long> items = null;
45
 
46
	CatalogServiceClient catalogClientService = null;
47
 
48
 
49
 
50
	public BestDealsController() {
51
		super();
52
		try {
53
			catalogClientService = new CatalogServiceClient();
54
		} catch (Exception e) {
55
			log.error("Unable to get catalog service client.");
56
			e.printStackTrace();
57
		}
58
	}
59
 
60
    // GET /index
61
    public HttpHeaders index() throws Exception {
637 rajveer 62
    	long categoryId = Long.parseLong(request.getParameter("categoryid"));
545 rajveer 63
    	in.shop2020.model.v1.catalog.InventoryService.Client client = catalogClientService.getClient();
637 rajveer 64
    	this.items = client.getBestDealsCatalogIds(beginIndex, windowSize, categoryId);
545 rajveer 65
    	return new DefaultHttpHeaders("index");
66
    }
67
 
68
    // GET /show
69
    public HttpHeaders show() {
70
    	in.shop2020.model.v1.catalog.InventoryService.Client client = catalogClientService.getClient();
71
    	try {
590 chandransh 72
			this.setTotalItems(client.getBestDealsCount());
624 chandransh 73
			this.items = client.getBestDealsCatalogIds(beginIndex, windowSize, -1);
545 rajveer 74
		} catch (InventoryServiceException e) {
75
			log.error("Unable to get best deals from inventory service.");
76
			log.error("Exception id is:"  + e.getId() + " Exception message is:" + e.getMessage());
77
			e.printStackTrace();
78
		} catch (TException e) {
79
			log.error("Unable to get best deals from inventory service.");
80
			log.error(" Exception message is:" + e.getMessage());
81
			e.printStackTrace();
82
		}
83
    	return new DefaultHttpHeaders("show");
84
    }
85
 
741 rajveer 86
    public List<String> getItems() throws Exception{
87
    	ArrayList<String> snippets = new ArrayList<String>();
88
    	if(items != null){
89
    		for(long item: items){
90
				snippets.add(FileUtils.read( Utils.EXPORT_ENTITIES_PATH + item + File.separator +"CategorySnippet.html"));
91
			}
92
    	}
93
 
94
    	return snippets;
545 rajveer 95
    }
96
 
97
	public void setId(String id) {
98
		this.id = id;
99
		this.beginIndex = this.windowSize * (Long.parseLong(id)-1);
100
	}
101
 
102
	public String getId() {
103
		return id;
104
	}
105
 
106
	public long getBeginIndex(){
107
		if(totalItems>0)
108
			return beginIndex+1;
109
		return beginIndex;
110
	}
111
 
112
	public void setTotalItems(long totalItems) {
113
		this.totalItems = totalItems;
114
	}
115
 
116
	public long getTotalItems() {
117
		return totalItems;
118
	}
119
 
120
	public long getTotalPages() {
121
		return 1 + totalItems/windowSize;
122
	}
123
 
124
	public long getCurrentPage() {
125
		return Long.parseLong(getId());
126
	}
127
}