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
 
2718 varun.gupt 34
	private Map<String, String> slideNotes;
2644 varun.gupt 35
 
36
	public MyNotesController() {
37
		super();
38
	}
39
 
40
	@Action(value="my-notes",interceptorRefs={@InterceptorRef("myDefault")})
41
	public String show()	{
2718 varun.gupt 42
		String responseContentType = null;
43
 
2644 varun.gupt 44
        try {
2718 varun.gupt 45
        	String[] idParts = this.id.split("-");
46
 
47
        	long entityId = Long.parseLong(idParts[0]);
48
        	responseContentType = idParts[1];
49
 
50
        	this.slideNotes = getSlideNames(entityId);
51
 
2644 varun.gupt 52
			UserContextService.Client userClient = (new UserContextServiceClient()).getClient();
2718 varun.gupt 53
			List<UserNote> userNotes = userClient.getUserNotes(userinfo.getUserId(), entityId);
54
 
55
			for (UserNote note: userNotes)	{
56
				slideNotes.put(note.getSlide(), note.getNote());
57
			}
2644 varun.gupt 58
		} catch (NumberFormatException e) {
59
			logger.error("Number Format Exception. String: " + this.id);
60
		} catch (Exception e) {
61
			logger.error("Exception: " + e.getMessage());
62
		}
63
 
2718 varun.gupt 64
		return responseContentType.equals("json") ? "json" : "show";
2644 varun.gupt 65
	}
66
 
2672 varun.gupt 67
	// Handle POST /save-note/
2644 varun.gupt 68
	@Action(value="save-note",interceptorRefs={@InterceptorRef("createuser"),@InterceptorRef("myDefault")})
69
	public String create()	{
70
 
71
		try {
72
        	long entityId = Long.parseLong(request.getParameter("entity"));
2718 varun.gupt 73
        	String slide = request.getParameter("slide");
2644 varun.gupt 74
        	String note = request.getParameter("note");
75
 
76
        	UserContextService.Client userClient = (new UserContextServiceClient()).getClient();
2718 varun.gupt 77
			userClient.putUserNote(userinfo.getUserId(), entityId, slide, note);
2644 varun.gupt 78
 
79
		} catch (NumberFormatException e) {
80
			logger.error("Number Format Exception: " + e.getMessage());
81
		} catch (Exception e) {
82
			logger.error("Exception: " + e.getMessage());
83
		}
84
		return "success";
85
	}
86
 
2718 varun.gupt 87
	public Map<String, String> getSlideNotes()	{
88
		return this.slideNotes;
2644 varun.gupt 89
	}
90
 
2718 varun.gupt 91
    private Map<String, String> getSlideNames(long productId) {
92
    	Map<String, String> slides = new LinkedHashMap<String, String>();
93
 
94
        File f = new File(Utils.EXPORT_ENTITIES_PATH + productId + File.separator + "SlideNamesSnippet.html");
95
        FileInputStream fis = null;
96
        try {
97
            fis = new FileInputStream(f);
98
            BufferedReader br = new BufferedReader(new InputStreamReader(fis));
99
 
100
            String line = br.readLine();	// Ignoring first line, which contains Product name and not Slide Label
101
 
102
            while((line = br.readLine()) != null){
103
 
104
                String[] parts = line.split("!!!");
105
                String slideName = parts[0];
106
 
107
                if(!slides.containsKey(slideName)){
108
                    slides.put(slideName, null);
109
                }
110
            }
111
        } catch (IOException e) {
112
            e.printStackTrace();
113
        }
114
        return slides;
115
    }
116
 
2644 varun.gupt 117
    public String getId() {
118
        return this.id;
119
    }
120
 
121
    /**
122
     * @param id
123
     */
124
    public void setId(String id) {
125
        this.id = id;
126
    }
127
}