package com.uas.eis.core.support;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.uas.eis.core.config.DataSourceProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.uas.eis.core.config.SpObserver;

@Component
public class DataSourceInterceptor implements HandlerInterceptor{

	private final DataSourceProperties dataSourceProperties;
     @Autowired
    public DataSourceInterceptor(DataSourceProperties dataSourceProperties) {
        this.dataSourceProperties = dataSourceProperties;
    }

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		String master = request.getParameter("master");
		if(master != null) {
			SpObserver.putSp(master);
		}else{
			String a = dataSourceProperties.getUsername();
           SpObserver.putSp(a);
		}

		return true;
	}
	
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
	}
	
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
			Exception ex) throws Exception {
		SpObserver.clear();
	}

}
