Subversion Repositories SmartDukaan

Rev

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

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