Subversion Repositories SmartDukaan

Rev

Rev 2867 | Rev 2998 | 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
 
781 vikas 3
import in.shop2020.serving.interceptors.UserAware;
2907 rajveer 4
import in.shop2020.serving.interceptors.UserInterceptor;
637 rajveer 5
import in.shop2020.serving.services.PageLoaderHandler;
419 rajveer 6
import in.shop2020.serving.services.UserSessionInfo;
416 rajveer 7
 
2907 rajveer 8
import java.util.ArrayList;
555 chandransh 9
import java.util.HashMap;
2907 rajveer 10
import java.util.List;
410 rajveer 11
import java.util.Map;
12
 
416 rajveer 13
import javax.servlet.http.Cookie;
14
import javax.servlet.http.HttpServletRequest;
410 rajveer 15
import javax.servlet.http.HttpServletResponse;
416 rajveer 16
import javax.servlet.http.HttpSession;
410 rajveer 17
 
832 rajveer 18
import org.apache.log4j.Logger;
416 rajveer 19
import org.apache.struts2.interceptor.ServletRequestAware;
410 rajveer 20
import org.apache.struts2.interceptor.ServletResponseAware;
21
 
595 rajveer 22
import com.opensymphony.xwork2.ValidationAwareSupport;
23
 
317 ashish 24
/**
25
 * Base class for all user action handlers i.e. controllers
26
 * 
545 rajveer 27
 * @author rajveer
317 ashish 28
 */
781 vikas 29
public abstract class BaseController extends ValidationAwareSupport implements
30
		ServletResponseAware, ServletRequestAware, UserAware {
595 rajveer 31
	/**
32
	 * 
33
	 */
34
	private static final long serialVersionUID = 1L;
555 chandransh 35
	protected Map<String, Cookie> cookiesMap = null;
781 vikas 36
	protected HttpServletResponse response;
37
	protected HttpServletRequest request;
38
	protected HttpSession session;
1713 vikas 39
	protected String domainName;
781 vikas 40
	protected UserSessionInfo userinfo = null;
832 rajveer 41
	private static Logger log = Logger.getLogger(Class.class);
781 vikas 42
 
43
	protected Cookie userCookie = null;
44
 
45
	protected Map<String, String> htmlSnippets;
46
 
47
	PageLoaderHandler pageLoader = null;
2907 rajveer 48
 
416 rajveer 49
	public BaseController() {
637 rajveer 50
		pageLoader = new PageLoaderHandler();
650 rajveer 51
		htmlSnippets = new HashMap<String, String>();
416 rajveer 52
	}
781 vikas 53
 
410 rajveer 54
	@Override
781 vikas 55
	public void setCookiesMap(Map<String, Cookie> cookiesMap) {
555 chandransh 56
		log.info("Received cookiesMap and it is " + cookiesMap);
410 rajveer 57
		this.cookiesMap = cookiesMap;
58
	}
781 vikas 59
 
410 rajveer 60
	@Override
781 vikas 61
	public void setServletResponse(HttpServletResponse response) {
410 rajveer 62
		this.response = response;
63
	}
781 vikas 64
 
416 rajveer 65
	@Override
781 vikas 66
	public void setServletRequest(HttpServletRequest request) {
416 rajveer 67
		this.request = request;
419 rajveer 68
	}
555 chandransh 69
 
781 vikas 70
	@Override
71
	public void setSession(HttpSession session) {
72
		this.session = session;
555 chandransh 73
	}
74
 
781 vikas 75
	@Override
76
	public void setUserSessionInfo(UserSessionInfo userInfo) {
77
		this.userinfo = userInfo;
419 rajveer 78
	}
79
 
781 vikas 80
	@Override
81
	public void setUserCookie(Cookie userCookie) {
828 rajveer 82
		if(userCookie != null){
837 vikas 83
			log.info("cookie name is:" +  userCookie.getName() + "   value is:"+ userCookie.getValue() + " path : " + userCookie.getPath());
828 rajveer 84
		}
781 vikas 85
		this.userCookie = userCookie;
419 rajveer 86
	}
424 rajveer 87
 
1713 vikas 88
	@Override
89
    public void setCookieDomainName(String domainName) {
90
        this.domainName = domainName;
91
    }
92
 
781 vikas 93
	public String getHeaderSnippet() {
924 vikas 94
		String url = request.getQueryString();
95
		log.info("Query String is: " + url);
96
		if (url == null) {
97
			url = "";
98
		} else {
99
			url = "?" + url;
100
		}
101
		url = request.getRequestURI() + url;
781 vikas 102
		return pageLoader.getHeaderHtml(userinfo.isLoggedIn(),
924 vikas 103
				userinfo.getNameOfUser(), url);
637 rajveer 104
	}
105
 
781 vikas 106
	public String getSearchBarSnippet() {
793 rajveer 107
		//FIXME From where it is called, need to pass category
637 rajveer 108
		return pageLoader.getSearchBarHtml(userinfo.getTotalItems(), 10000);
109
	}
781 vikas 110
 
793 rajveer 111
	public UserSessionInfo getUserInfo(){
112
		return this.userinfo;
113
	}
2907 rajveer 114
 
115
	@Override
116
	public List<Cookie> getCookies() {
117
		List<Cookie> cookies = new ArrayList<Cookie>();
118
		long userId = userinfo.getUserId();
119
		if(userId != -1){
120
			String newUserinfoCookieValue = UserSessionInfo.getUserinfoCookieValueFromUserSessionInfo(userinfo);
121
			Cookie userinfoCookie = cookiesMap.get(UserInterceptor.USER_INFO_COOKIE_NAME); 
122
			if( userinfoCookie == null ||  !newUserinfoCookieValue.equals(userinfoCookie.getValue())){
123
				log.info("Set user session info cookie if it has been changed.");
124
				userinfoCookie = new Cookie(UserInterceptor.USER_INFO_COOKIE_NAME, newUserinfoCookieValue);
125
				userinfoCookie.setMaxAge(UserInterceptor.SECONDS_IN_YEAR); // one year
126
				userinfoCookie.setPath("/");
127
				userinfoCookie.setDomain(domainName);
128
				cookiesMap.put(UserInterceptor.USER_INFO_COOKIE_NAME, userinfoCookie);
129
				cookies.add(userinfoCookie);
130
			}
131
			Cookie userCookie = cookiesMap.get(UserInterceptor.USER_ID_COOKIE_NAME);
132
			String encryptedUserId = UserInterceptor.desEncrypter.encrypt(userId + "");
133
			if(userCookie == null || !(encryptedUserId + "").equals(userCookie.getValue())){
134
				userinfoCookie = new Cookie(UserInterceptor.USER_ID_COOKIE_NAME, encryptedUserId);
135
				userinfoCookie.setMaxAge(UserInterceptor.SECONDS_IN_YEAR); // one year
136
				userinfoCookie.setPath("/");
137
				userinfoCookie.setDomain(domainName);
138
				cookiesMap.put(UserInterceptor.USER_INFO_COOKIE_NAME, userinfoCookie);
139
				cookies.add(userinfoCookie);
140
			}
141
		}
142
		return cookies;
143
	}
144
 
145
	public void clearUserCookies(){
146
		Cookie uidCookie = cookiesMap.get(UserInterceptor.USER_ID_COOKIE_NAME);
147
		uidCookie.setDomain(domainName);
148
		uidCookie.setPath("/");
149
		uidCookie.setValue("");
150
		uidCookie.setMaxAge(0);
151
		this.response.addCookie(uidCookie);
152
 
153
		Cookie uicCookie = cookiesMap.get(UserInterceptor.USER_INFO_COOKIE_NAME);
154
		uicCookie.setDomain(domainName);
155
		uicCookie.setPath("/");
156
		uicCookie.setValue("");
157
		uicCookie.setMaxAge(0);
158
		this.response.addCookie(uicCookie);
159
	}
745 chandransh 160
}