Subversion Repositories SmartDukaan

Rev

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