Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2644 varun.gupt 1
package in.shop2020.serving.controllers;
2
 
2718 varun.gupt 3
import java.io.BufferedReader;
4
import java.io.File;
5
import java.io.FileInputStream;
6
import java.io.IOException;
7
import java.io.InputStreamReader;
8
import java.util.LinkedHashMap;
2644 varun.gupt 9
import java.util.List;
2718 varun.gupt 10
import java.util.Map;
2644 varun.gupt 11
 
12
import in.shop2020.model.v1.user.UserContextService;
13
import in.shop2020.model.v1.user.UserNote;
2718 varun.gupt 14
import in.shop2020.serving.utils.Utils;
2644 varun.gupt 15
import in.shop2020.thrift.clients.UserContextServiceClient;
16
 
17
import org.apache.log4j.Logger;
18
import org.apache.struts2.convention.annotation.Action;
19
import org.apache.struts2.convention.annotation.InterceptorRef;
20
 
21
/**
22
 * 
23
 * @author Varun Gupta
24
 *
25
 */
26
 
27
@SuppressWarnings("serial")
28
public class MyNotesController extends BaseController {
29
 
30
    private String id;
31
 
32
	private static Logger logger = Logger.getLogger(Class.class);
33
 
2731 varun.gupt 34
	private long entityId;
35
 
2718 varun.gupt 36
	private Map<String, String> slideNotes;
2644 varun.gupt 37
 
38
	public MyNotesController() {
39
		super();
40
	}
41
 
42
	@Action(value="my-notes",interceptorRefs={@InterceptorRef("myDefault")})
43
	public String show()	{
2718 varun.gupt 44
		String responseContentType = null;
45
 
2644 varun.gupt 46
        try {
2718 varun.gupt 47
        	String[] idParts = this.id.split("-");
48
 
2731 varun.gupt 49
        	this.entityId = Long.parseLong(idParts[0]);
2718 varun.gupt 50
        	responseContentType = idParts[1];
51
 
2731 varun.gupt 52
        	this.slideNotes = getSlideNames(this.entityId);
2718 varun.gupt 53
 
2644 varun.gupt 54
			UserContextService.Client userClient = (new UserContextServiceClient()).getClient();
2731 varun.gupt 55
			List<UserNote> userNotes = userClient.getUserNotes(userinfo.getUserId(), this.entityId);
2718 varun.gupt 56
 
57
			for (UserNote note: userNotes)	{
58
				slideNotes.put(note.getSlide(), note.getNote());
59
			}
2644 varun.gupt 60
		} catch (NumberFormatException e) {
61
			logger.error("Number Format Exception. String: " + this.id);
62
		} catch (Exception e) {
63
			logger.error("Exception: " + e.getMessage());
64
		}
65
 
2718 varun.gupt 66
		return responseContentType.equals("json") ? "json" : "show";
2644 varun.gupt 67
	}
68
 
2672 varun.gupt 69
	// Handle POST /save-note/
2644 varun.gupt 70
	@Action(value="save-note",interceptorRefs={@InterceptorRef("createuser"),@InterceptorRef("myDefault")})
71
	public String create()	{
72
 
73
		try {
2731 varun.gupt 74
        	this.entityId = Long.parseLong(request.getParameter("entity"));
2718 varun.gupt 75
        	String slide = request.getParameter("slide");
2644 varun.gupt 76
        	String note = request.getParameter("note");
77
 
78
        	UserContextService.Client userClient = (new UserContextServiceClient()).getClient();
2731 varun.gupt 79
			userClient.putUserNote(userinfo.getUserId(), this.entityId, slide, note);
2644 varun.gupt 80
 
81
		} catch (NumberFormatException e) {
82
			logger.error("Number Format Exception: " + e.getMessage());
83
		} catch (Exception e) {
84
			logger.error("Exception: " + e.getMessage());
85
		}
86
		return "success";
87
	}
88
 
2718 varun.gupt 89
	public Map<String, String> getSlideNotes()	{
90
		return this.slideNotes;
2644 varun.gupt 91
	}
92
 
2718 varun.gupt 93
    private Map<String, String> getSlideNames(long productId) {
94
    	Map<String, String> slides = new LinkedHashMap<String, String>();
95
 
96
        File f = new File(Utils.EXPORT_ENTITIES_PATH + productId + File.separator + "SlideNamesSnippet.html");
97
        FileInputStream fis = null;
98
        try {
99
            fis = new FileInputStream(f);
100
            BufferedReader br = new BufferedReader(new InputStreamReader(fis));
101
 
102
            String line = br.readLine();	// Ignoring first line, which contains Product name and not Slide Label
103
 
104
            while((line = br.readLine()) != null){
105
 
106
                String[] parts = line.split("!!!");
107
                String slideName = parts[0];
108
 
109
                if(!slides.containsKey(slideName)){
110
                    slides.put(slideName, null);
111
                }
112
            }
113
        } catch (IOException e) {
114
            e.printStackTrace();
115
        }
116
        return slides;
117
    }
2731 varun.gupt 118
 
119
    public long getEntityId()	{
120
    	return this.entityId;
121
    }
2718 varun.gupt 122
 
2644 varun.gupt 123
    public String getId() {
124
        return this.id;
125
    }
126
 
127
    /**
128
     * @param id
129
     */
130
    public void setId(String id) {
131
        this.id = id;
132
    }
133
}