Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
317 ashish 1
package in.shop2020.serving.controllers;
410 rajveer 2
 
3561 rajveer 3
import in.shop2020.serving.interceptors.SourceAware;
3185 vikas 4
import in.shop2020.serving.interceptors.TrackingInterceptor;
781 vikas 5
import in.shop2020.serving.interceptors.UserAware;
2907 rajveer 6
import in.shop2020.serving.interceptors.UserInterceptor;
637 rajveer 7
import in.shop2020.serving.services.PageLoaderHandler;
419 rajveer 8
import in.shop2020.serving.services.UserSessionInfo;
2998 rajveer 9
import in.shop2020.serving.utils.DesEncrypter;
416 rajveer 10
 
2907 rajveer 11
import java.util.ArrayList;
555 chandransh 12
import java.util.HashMap;
2907 rajveer 13
import java.util.List;
410 rajveer 14
import java.util.Map;
15
 
416 rajveer 16
import javax.servlet.http.Cookie;
17
import javax.servlet.http.HttpServletRequest;
410 rajveer 18
import javax.servlet.http.HttpServletResponse;
416 rajveer 19
import javax.servlet.http.HttpSession;
410 rajveer 20
 
832 rajveer 21
import org.apache.log4j.Logger;
416 rajveer 22
import org.apache.struts2.interceptor.ServletRequestAware;
410 rajveer 23
import org.apache.struts2.interceptor.ServletResponseAware;
24
 
595 rajveer 25
import com.opensymphony.xwork2.ValidationAwareSupport;
26
 
317 ashish 27
/**
28
 * Base class for all user action handlers i.e. controllers
29
 * 
545 rajveer 30
 * @author rajveer
317 ashish 31
 */
781 vikas 32
public abstract class BaseController extends ValidationAwareSupport implements
3561 rajveer 33
		ServletResponseAware, ServletRequestAware, UserAware, SourceAware {
595 rajveer 34
	/**
35
	 * 
36
	 */
37
	private static final long serialVersionUID = 1L;
555 chandransh 38
	protected Map<String, Cookie> cookiesMap = null;
781 vikas 39
	protected HttpServletResponse response;
40
	protected HttpServletRequest request;
41
	protected HttpSession session;
1713 vikas 42
	protected String domainName;
781 vikas 43
	protected UserSessionInfo userinfo = null;
832 rajveer 44
	private static Logger log = Logger.getLogger(Class.class);
2998 rajveer 45
	private DesEncrypter desEncrypter = new DesEncrypter(UserInterceptor.COOKIE_DECRYPTION_STRING);
46
 
781 vikas 47
	protected Cookie userCookie = null;
48
 
49
	protected Map<String, String> htmlSnippets;
50
 
51
	PageLoaderHandler pageLoader = null;
2907 rajveer 52
 
3561 rajveer 53
	protected long sourceId;
54
 
416 rajveer 55
	public BaseController() {
637 rajveer 56
		pageLoader = new PageLoaderHandler();
650 rajveer 57
		htmlSnippets = new HashMap<String, String>();
416 rajveer 58
	}
781 vikas 59
 
410 rajveer 60
	@Override
781 vikas 61
	public void setCookiesMap(Map<String, Cookie> cookiesMap) {
2998 rajveer 62
		log.info("Received cookiesMap.");
410 rajveer 63
		this.cookiesMap = cookiesMap;
64
	}
781 vikas 65
 
410 rajveer 66
	@Override
781 vikas 67
	public void setServletResponse(HttpServletResponse response) {
410 rajveer 68
		this.response = response;
69
	}
781 vikas 70
 
416 rajveer 71
	@Override
781 vikas 72
	public void setServletRequest(HttpServletRequest request) {
416 rajveer 73
		this.request = request;
419 rajveer 74
	}
555 chandransh 75
 
781 vikas 76
	@Override
77
	public void setSession(HttpSession session) {
78
		this.session = session;
555 chandransh 79
	}
80
 
781 vikas 81
	@Override
82
	public void setUserSessionInfo(UserSessionInfo userInfo) {
83
		this.userinfo = userInfo;
419 rajveer 84
	}
85
 
781 vikas 86
	@Override
87
	public void setUserCookie(Cookie userCookie) {
828 rajveer 88
		if(userCookie != null){
837 vikas 89
			log.info("cookie name is:" +  userCookie.getName() + "   value is:"+ userCookie.getValue() + " path : " + userCookie.getPath());
828 rajveer 90
		}
781 vikas 91
		this.userCookie = userCookie;
419 rajveer 92
	}
424 rajveer 93
 
1713 vikas 94
	@Override
95
    public void setCookieDomainName(String domainName) {
96
        this.domainName = domainName;
97
    }
98
 
3561 rajveer 99
	@Override
100
	public void setSourceId(long sourceId){
101
		this.sourceId = sourceId;
102
	}
103
 
781 vikas 104
	public String getHeaderSnippet() {
924 vikas 105
		String url = request.getQueryString();
106
		log.info("Query String is: " + url);
107
		if (url == null) {
108
			url = "";
109
		} else {
110
			url = "?" + url;
111
		}
112
		url = request.getRequestURI() + url;
6152 amit.gupta 113
		return pageLoader.getHeaderHtml(userinfo.isLoggedIn(), userinfo.getEmail(), userinfo.getTotalItems(), url, -1, true);
637 rajveer 114
	}
6903 anupam.sin 115
 
116
	public String getThinHeaderSnippet() {
117
        String url = request.getQueryString();
118
        log.info("Query String is: " + url);
119
        if (url == null) {
120
            url = "";
121
        } else {
122
            url = "?" + url;
123
        }
124
        url = request.getRequestURI() + url;
125
        return pageLoader.getThinHeaderHtml(userinfo.isLoggedIn(), userinfo.getEmail(), userinfo.getTotalItems(), url, 0, true);
126
    }
637 rajveer 127
 
781 vikas 128
	public String getSearchBarSnippet() {
793 rajveer 129
		//FIXME From where it is called, need to pass category
637 rajveer 130
		return pageLoader.getSearchBarHtml(userinfo.getTotalItems(), 10000);
131
	}
781 vikas 132
 
3830 chandransh 133
	public String getCartWidgetSnippet() {
6708 kshitij.so 134
		return pageLoader.getCartWidgetSnippet(userinfo.getTotalItems(), userinfo.getTotalAmount(),-1);
3830 chandransh 135
	}
136
 
137
 
793 rajveer 138
	public UserSessionInfo getUserInfo(){
139
		return this.userinfo;
140
	}
2907 rajveer 141
 
142
	@Override
143
	public List<Cookie> getCookies() {
144
		List<Cookie> cookies = new ArrayList<Cookie>();
145
		long userId = userinfo.getUserId();
146
		if(userId != -1){
147
			String newUserinfoCookieValue = UserSessionInfo.getUserinfoCookieValueFromUserSessionInfo(userinfo);
148
			Cookie userinfoCookie = cookiesMap.get(UserInterceptor.USER_INFO_COOKIE_NAME); 
149
			if( userinfoCookie == null ||  !newUserinfoCookieValue.equals(userinfoCookie.getValue())){
150
				log.info("Set user session info cookie if it has been changed.");
151
				userinfoCookie = new Cookie(UserInterceptor.USER_INFO_COOKIE_NAME, newUserinfoCookieValue);
152
				userinfoCookie.setMaxAge(UserInterceptor.SECONDS_IN_YEAR); // one year
153
				userinfoCookie.setPath("/");
154
				userinfoCookie.setDomain(domainName);
155
				cookiesMap.put(UserInterceptor.USER_INFO_COOKIE_NAME, userinfoCookie);
156
				cookies.add(userinfoCookie);
157
			}
158
			Cookie userCookie = cookiesMap.get(UserInterceptor.USER_ID_COOKIE_NAME);
2998 rajveer 159
			String encryptedUserId = desEncrypter.encrypt(userId + "");
2907 rajveer 160
			if(userCookie == null || !(encryptedUserId + "").equals(userCookie.getValue())){
161
				userinfoCookie = new Cookie(UserInterceptor.USER_ID_COOKIE_NAME, encryptedUserId);
162
				userinfoCookie.setMaxAge(UserInterceptor.SECONDS_IN_YEAR); // one year
163
				userinfoCookie.setPath("/");
164
				userinfoCookie.setDomain(domainName);
165
				cookiesMap.put(UserInterceptor.USER_INFO_COOKIE_NAME, userinfoCookie);
166
				cookies.add(userinfoCookie);
167
			}
168
		}
169
		return cookies;
170
	}
171
 
172
	public void clearUserCookies(){
173
		Cookie uidCookie = cookiesMap.get(UserInterceptor.USER_ID_COOKIE_NAME);
174
		uidCookie.setDomain(domainName);
175
		uidCookie.setPath("/");
176
		uidCookie.setValue("");
177
		uidCookie.setMaxAge(0);
178
		this.response.addCookie(uidCookie);
179
 
180
		Cookie uicCookie = cookiesMap.get(UserInterceptor.USER_INFO_COOKIE_NAME);
181
		uicCookie.setDomain(domainName);
182
		uicCookie.setPath("/");
183
		uicCookie.setValue("");
184
		uicCookie.setMaxAge(0);
185
		this.response.addCookie(uicCookie);
186
	}
3185 vikas 187
 
3203 vikas 188
	/**
189
	 * Get the session_id cookie to track user session.
190
	 * It also creates the new cookie using current jsessionid if it was absent. 
191
	 * 
192
	 * @return sessionId
193
	 */
3185 vikas 194
	public String getSessionId() {
195
	    Cookie sessionIdCookie = cookiesMap.get(TrackingInterceptor.SESSION_ID_COOKIE);
196
	    if (sessionIdCookie == null) {
197
  	        //session id
198
	        String sessionId = request.getSession().getId();
199
	        sessionIdCookie = new Cookie(TrackingInterceptor.SESSION_ID_COOKIE, sessionId);
200
	        sessionIdCookie.setPath("/");
201
	        if (!domainName.isEmpty()) {
202
	            sessionIdCookie.setDomain(domainName);
203
	        }
204
	        cookiesMap.put(TrackingInterceptor.SESSION_ID_COOKIE, sessionIdCookie);
205
	        response.addCookie(sessionIdCookie);
206
	    }
3203 vikas 207
        return sessionIdCookie.getValue();
3185 vikas 208
	}
3859 vikas 209
 
210
	public String getCookie(String cookieName, boolean isEncripted, String encriptionString) {
211
	    Cookie cookie = (Cookie) cookiesMap.get(cookieName);
212
	    String cookieVal = null;
213
        if (cookie != null) {
4083 vikas 214
            cookieVal = cookie.getValue();
3859 vikas 215
            if (isEncripted) {
216
                DesEncrypter desEncrypter = new DesEncrypter(encriptionString);
4083 vikas 217
                cookieVal = desEncrypter.decrypt(cookieVal);
3859 vikas 218
            }
219
        }
220
        return cookieVal;
221
	}
3185 vikas 222
 }