Subversion Repositories SmartDukaan

Rev

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