Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
650 rajveer 1
package in.shop2020.serving.controllers;
2
 
2263 vikas 3
import in.shop2020.datalogger.EventType;
2419 vikas 4
import in.shop2020.model.v1.user.UserContextService.Client;
1761 vikas 5
import in.shop2020.model.v1.user.Widget;
762 rajveer 6
import in.shop2020.model.v1.user.WidgetException;
1761 vikas 7
import in.shop2020.model.v1.user.WidgetItem;
651 rajveer 8
import in.shop2020.serving.utils.FileUtils;
650 rajveer 9
import in.shop2020.serving.utils.Utils;
651 rajveer 10
import in.shop2020.thrift.clients.UserContextServiceClient;
2511 vikas 11
import in.shop2020.utils.DataLogger;
650 rajveer 12
 
651 rajveer 13
import java.io.File;
1761 vikas 14
import java.io.FileNotFoundException;
786 rajveer 15
import java.io.IOException;
1761 vikas 16
import java.util.ArrayList;
17
import java.util.List;
650 rajveer 18
 
1957 vikas 19
import org.apache.commons.lang.StringUtils;
832 rajveer 20
import org.apache.log4j.Logger;
1614 rajveer 21
import org.apache.struts2.convention.annotation.Action;
22
import org.apache.struts2.convention.annotation.InterceptorRef;
23
import org.apache.struts2.convention.annotation.Result;
24
import org.apache.struts2.convention.annotation.Results;
762 rajveer 25
import org.apache.thrift.TException;
1761 vikas 26
import org.json.JSONArray;
27
import org.json.JSONException;
650 rajveer 28
 
2145 chandransh 29
@SuppressWarnings("serial")
1614 rajveer 30
@Results({
31
	@Result(name="success", location="myresearch-success.vm")
32
})
1761 vikas 33
public class MyresearchController extends BaseController {
651 rajveer 34
 
1761 vikas 35
    private UserContextServiceClient userServiceClient = null;
651 rajveer 36
	private Client client;
1761 vikas 37
    private static Logger log = Logger.getLogger(MyresearchController.class);
38
    private String htmlSnippet = "";
39
    private String snippets="";
40
    private List<String> items;
41
    private String itemsInJson;
42
    private int totalItems = 0;
43
 
651 rajveer 44
	public MyresearchController(){
45
		super();
46
		try {
47
			userServiceClient = new UserContextServiceClient();
1386 vikas 48
			client = userServiceClient.getClient();
651 rajveer 49
		} catch (Exception e) {
50
			e.printStackTrace();
51
		}
52
	}
53
 
1614 rajveer 54
	@Action(value="myresearch",interceptorRefs={@InterceptorRef("myDefault")})
1372 vikas 55
	public String index() {
1761 vikas 56
	    try {
57
	        JSONArray itemsJson =  new JSONArray();
58
            Widget resWidget = client.getMyResearch(userinfo.getUserId());
59
            List<WidgetItem> widgetItems = resWidget.getItems();
60
            for (WidgetItem wItem : widgetItems) {
61
                itemsJson.put(wItem.getItem_id());
62
            }
63
            itemsInJson = itemsJson.toString();
64
        } catch (WidgetException e) {
65
            e.printStackTrace();
66
        } catch (TException e) {
67
            e.printStackTrace();
68
        }
1372 vikas 69
		return "index";
70
	}
71
 
1761 vikas 72
	//myresearch/[1,2,3]
73
	@Action(value="myresearch",interceptorRefs={@InterceptorRef("myDefault")})
74
    public String show() {
75
	    if(items != null){
76
            for(String itemId: items){
77
                try {
78
                    snippets = snippets + FileUtils.read( Utils.EXPORT_ENTITIES_PATH + itemId + File.separator +"WidgetSnippet.html");
79
                    totalItems++;
80
                }
81
                catch (FileNotFoundException e) {
82
                    log.error("File not found : " + Utils.EXPORT_ENTITIES_PATH + itemId + File.separator +"WidgetSnippet.html");
83
                }
84
                catch (IOException e) {
85
                    log.error("IO exception : " + Utils.EXPORT_ENTITIES_PATH + itemId + File.separator +"WidgetSnippet.html");
86
                }
87
            }
88
        }
89
        return "show";
90
    }
91
 
92
	//Handle /addtoresearch/{id}
1614 rajveer 93
	@Action(value="addtoresearch",interceptorRefs={@InterceptorRef("createuser"),@InterceptorRef("myDefault")})
786 rajveer 94
	public String create() throws WidgetException, TException, IOException {
1761 vikas 95
	    if(userinfo.getUserId() != -1){
96
			for (String item : items){
97
	            long itemId = Long.parseLong(item);
98
	            boolean isNew = client.updateMyResearch(userinfo.getUserId(), itemId);
99
	            if(isNew){
100
	                try {
101
	                    htmlSnippet = htmlSnippet + FileUtils.read( Utils.EXPORT_ENTITIES_PATH + itemId + File.separator +"WidgetSnippet.html");
102
	                }
103
	                catch (FileNotFoundException e) {
104
	                    log.error("File not found : " + Utils.EXPORT_ENTITIES_PATH + itemId + File.separator +"WidgetSnippet.html");
105
	                }
106
	                catch (IOException e) {
107
	                    log.error("IO exception : " + Utils.EXPORT_ENTITIES_PATH + itemId + File.separator +"WidgetSnippet.html");
108
	                }
2419 vikas 109
                    DataLogger.logData(EventType.RESEARCH_ADD, session.getId(), userinfo.getUserId(), userinfo.getEmail(), StringUtils.join(items, "_"));
1761 vikas 110
                }
111
	        }
650 rajveer 112
		}
651 rajveer 113
		return "success";
650 rajveer 114
	}
115
 
1614 rajveer 116
	@Action(value="deletefromresearch",interceptorRefs={@InterceptorRef("createuser"),@InterceptorRef("myDefault")})
651 rajveer 117
	public String destroy(){
1761 vikas 118
		for (String item : items){
119
			long itemId = Long.parseLong(item);
1957 vikas 120
			deleteFromMyResearch(userinfo.getUserId(), itemId);
2419 vikas 121
			DataLogger.logData(EventType.RESEARCH_DELETE, session.getId(), userinfo.getUserId(), userinfo.getEmail(), StringUtils.join(items, "_"));
650 rajveer 122
		}
651 rajveer 123
		return "success";
650 rajveer 124
	}
125
 
762 rajveer 126
	private void deleteFromMyResearch(long userId, long itemId) {
127
 
128
		try {
129
			UserContextServiceClient userServiceClient = new UserContextServiceClient();
130
			in.shop2020.model.v1.user.UserContextService.Client userClient = userServiceClient.getClient();
131
			userClient.deleteItemFromMyResearch(userId, itemId);
132
		} catch (WidgetException e) {
133
			e.printStackTrace();
134
		} catch (TException e) {
135
			e.printStackTrace();
136
		} catch (Exception e) {
137
			e.printStackTrace();
138
		}
139
	}
1033 varun.gupt 140
 
650 rajveer 141
	public String getHtmlSnippet(){
1032 varun.gupt 142
		if(htmlSnippet == "")	{
1643 rajveer 143
			htmlSnippet = "0";
650 rajveer 144
		}
145
		return htmlSnippet;
1761 vikas 146
	}
147
 
148
	public String getSnippets() {
149
        return snippets;
150
    }
151
 
152
	public int getTotalItems() {
153
        return totalItems;
154
    }
155
 
156
	public void setProductid(String itemsString) {
157
        setId(itemsString);
158
    }
159
 
160
	public void setId(String itemsString) {
161
        JSONArray itemJson = null;
162
        items = new ArrayList<String>();
163
        try {
164
            itemJson = new JSONArray(itemsString);
165
        } catch (JSONException e) {
166
            log.error("Bad json : " + itemsString);
167
            return;
168
        }
169
        for (int i=0; i<itemJson.length(); i++) {
170
            try {
171
                items.add(itemJson.getString(i));
172
            } catch (JSONException e) {
173
                log.error("Bad item at index : " + i);
174
            }
175
        }
176
    }
177
 
178
    public String getItemsInJson() {
179
        return this.itemsInJson;
180
    }
1032 varun.gupt 181
}