Subversion Repositories SmartDukaan

Rev

Rev 6708 | Rev 6903 | 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
	}
115
 
781 vikas 116
	public String getSearchBarSnippet() {
793 rajveer 117
		//FIXME From where it is called, need to pass category
637 rajveer 118
		return pageLoader.getSearchBarHtml(userinfo.getTotalItems(), 10000);
119
	}
781 vikas 120
 
3830 chandransh 121
	public String getCartWidgetSnippet() {
6708 kshitij.so 122
		return pageLoader.getCartWidgetSnippet(userinfo.getTotalItems(), userinfo.getTotalAmount(),-1);
3830 chandransh 123
	}
124
 
125
 
793 rajveer 126
	public UserSessionInfo getUserInfo(){
127
		return this.userinfo;
128
	}
2907 rajveer 129
 
130
	@Override
131
	public List<Cookie> getCookies() {
132
		List<Cookie> cookies = new ArrayList<Cookie>();
133
		long userId = userinfo.getUserId();
134
		if(userId != -1){
135
			String newUserinfoCookieValue = UserSessionInfo.getUserinfoCookieValueFromUserSessionInfo(userinfo);
136
			Cookie userinfoCookie = cookiesMap.get(UserInterceptor.USER_INFO_COOKIE_NAME); 
137
			if( userinfoCookie == null ||  !newUserinfoCookieValue.equals(userinfoCookie.getValue())){
138
				log.info("Set user session info cookie if it has been changed.");
139
				userinfoCookie = new Cookie(UserInterceptor.USER_INFO_COOKIE_NAME, newUserinfoCookieValue);
140
				userinfoCookie.setMaxAge(UserInterceptor.SECONDS_IN_YEAR); // one year
141
				userinfoCookie.setPath("/");
142
				userinfoCookie.setDomain(domainName);
143
				cookiesMap.put(UserInterceptor.USER_INFO_COOKIE_NAME, userinfoCookie);
144
				cookies.add(userinfoCookie);
145
			}
146
			Cookie userCookie = cookiesMap.get(UserInterceptor.USER_ID_COOKIE_NAME);
2998 rajveer 147
			String encryptedUserId = desEncrypter.encrypt(userId + "");
2907 rajveer 148
			if(userCookie == null || !(encryptedUserId + "").equals(userCookie.getValue())){
149
				userinfoCookie = new Cookie(UserInterceptor.USER_ID_COOKIE_NAME, encryptedUserId);
150
				userinfoCookie.setMaxAge(UserInterceptor.SECONDS_IN_YEAR); // one year
151
				userinfoCookie.setPath("/");
152
				userinfoCookie.setDomain(domainName);
153
				cookiesMap.put(UserInterceptor.USER_INFO_COOKIE_NAME, userinfoCookie);
154
				cookies.add(userinfoCookie);
155
			}
156
		}
157
		return cookies;
158
	}
159
 
160
	public void clearUserCookies(){
161
		Cookie uidCookie = cookiesMap.get(UserInterceptor.USER_ID_COOKIE_NAME);
162
		uidCookie.setDomain(domainName);
163
		uidCookie.setPath("/");
164
		uidCookie.setValue("");
165
		uidCookie.setMaxAge(0);
166
		this.response.addCookie(uidCookie);
167
 
168
		Cookie uicCookie = cookiesMap.get(UserInterceptor.USER_INFO_COOKIE_NAME);
169
		uicCookie.setDomain(domainName);
170
		uicCookie.setPath("/");
171
		uicCookie.setValue("");
172
		uicCookie.setMaxAge(0);
173
		this.response.addCookie(uicCookie);
174
	}
3185 vikas 175
 
3203 vikas 176
	/**
177
	 * Get the session_id cookie to track user session.
178
	 * It also creates the new cookie using current jsessionid if it was absent. 
179
	 * 
180
	 * @return sessionId
181
	 */
3185 vikas 182
	public String getSessionId() {
183
	    Cookie sessionIdCookie = cookiesMap.get(TrackingInterceptor.SESSION_ID_COOKIE);
184
	    if (sessionIdCookie == null) {
185
  	        //session id
186
	        String sessionId = request.getSession().getId();
187
	        sessionIdCookie = new Cookie(TrackingInterceptor.SESSION_ID_COOKIE, sessionId);
188
	        sessionIdCookie.setPath("/");
189
	        if (!domainName.isEmpty()) {
190
	            sessionIdCookie.setDomain(domainName);
191
	        }
192
	        cookiesMap.put(TrackingInterceptor.SESSION_ID_COOKIE, sessionIdCookie);
193
	        response.addCookie(sessionIdCookie);
194
	    }
3203 vikas 195
        return sessionIdCookie.getValue();
3185 vikas 196
	}
3859 vikas 197
 
198
	public String getCookie(String cookieName, boolean isEncripted, String encriptionString) {
199
	    Cookie cookie = (Cookie) cookiesMap.get(cookieName);
200
	    String cookieVal = null;
201
        if (cookie != null) {
4083 vikas 202
            cookieVal = cookie.getValue();
3859 vikas 203
            if (isEncripted) {
204
                DesEncrypter desEncrypter = new DesEncrypter(encriptionString);
4083 vikas 205
                cookieVal = desEncrypter.decrypt(cookieVal);
3859 vikas 206
            }
207
        }
208
        return cookieVal;
209
	}
3185 vikas 210
 }