Subversion Repositories SmartDukaan

Rev

Rev 4817 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4817 Rev 5623
Line 1... Line 1...
1
package in.shop2020.support.controllers;
1
package in.shop2020.support.controllers;
2
 
2
 
3
import in.shop2020.support.services.RegisteredUsersGenerator;
3
import in.shop2020.support.services.RegisteredUsersGenerator;
4
import in.shop2020.support.utils.ReportsUtils;
4
import in.shop2020.support.utils.ReportsUtils;
-
 
5
import in.shop2020.thrift.clients.UserClient;
5
 
6
 
6
import java.io.ByteArrayOutputStream;
7
import java.io.ByteArrayOutputStream;
7
import java.io.IOException;
8
import java.io.IOException;
-
 
9
import java.io.OutputStream;
8
import java.text.DateFormat;
10
import java.text.DateFormat;
9
import java.text.ParseException;
11
import java.text.ParseException;
10
import java.text.SimpleDateFormat;
12
import java.text.SimpleDateFormat;
-
 
13
import java.util.ArrayList;
11
import java.util.Date;
14
import java.util.Date;
-
 
15
import java.util.List;
12
import java.util.TimeZone;
16
import java.util.TimeZone;
13
 
17
 
14
import javax.servlet.ServletContext;
18
import javax.servlet.ServletContext;
15
import javax.servlet.ServletOutputStream;
19
import javax.servlet.ServletOutputStream;
16
import javax.servlet.http.HttpServletRequest;
20
import javax.servlet.http.HttpServletRequest;
Line 25... Line 29...
25
import org.apache.struts2.interceptor.ServletResponseAware;
29
import org.apache.struts2.interceptor.ServletResponseAware;
26
import org.apache.struts2.util.ServletContextAware;
30
import org.apache.struts2.util.ServletContextAware;
27
import org.slf4j.Logger;
31
import org.slf4j.Logger;
28
import org.slf4j.LoggerFactory;
32
import org.slf4j.LoggerFactory;
29
 
33
 
30
//
-
 
31
//@InterceptorRefs({
34
@InterceptorRefs({
32
//    @InterceptorRef("defaultStack"),
35
    @InterceptorRef("defaultStack"),
33
//    @InterceptorRef("login")
36
    @InterceptorRef("login")
34
//})
37
})
35
//@Results({
38
@Results({
36
//    @Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})
39
    @Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})
37
//})
40
})
38
public class RegisteredUsersController implements ServletRequestAware, ServletResponseAware, ServletContextAware {
41
public class RegisteredUsersController implements ServletRequestAware, ServletResponseAware, ServletContextAware {
39
    
42
    
40
    private static Logger logger = LoggerFactory.getLogger(RegisteredUsersController.class);
43
    private static Logger logger = LoggerFactory.getLogger(RegisteredUsersController.class);
41
 
44
 
42
    private HttpServletRequest request;
45
    private HttpServletRequest request;
Line 55... Line 58...
55
    public RegisteredUsersController() {
58
    public RegisteredUsersController() {
56
 
59
 
57
    }
60
    }
58
 
61
 
59
    public String index() {
62
    public String index() {
60
//        if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath())) {
63
        if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath())) {
61
//            return "authfail";
64
            return "authfail";
62
//        }
65
        }
63
        return authsuccess;
66
        return authsuccess;
64
    }
67
    }
65
 
68
 
66
    // Handles the POST request (Form Submission)
69
    // Handles the POST request (Form Submission)
67
    public String create() {
70
    public String create() {
Line 75... Line 78...
75
            endDate = df.parse(endDateStr);
78
            endDate = df.parse(endDateStr);
76
        } catch (ParseException pe) {
79
        } catch (ParseException pe) {
77
            errorMsg = "Please enter start and end dates in format MM/dd/yyyy";
80
            errorMsg = "Please enter start and end dates in format MM/dd/yyyy";
78
            return authsuccess;
81
            return authsuccess;
79
        }
82
        }
-
 
83
 
-
 
84
    	UserClient usc;
-
 
85
        in.shop2020.model.v1.user.UserContextService.Client uClient;
80
        
86
        
-
 
87
        List<String> emails = new ArrayList<String>();
81
        
88
        
-
 
89
        try {
82
        RegisteredUsersGenerator usersReportGenerator = new RegisteredUsersGenerator();
90
            usc = new UserClient();
83
        ByteArrayOutputStream baos = usersReportGenerator.generateRegisteredUsersReport(startDate.getTime(), endDate.getTime());
91
            uClient = usc.getClient();
84
 
-
 
85
        if(baos == null) {
92
            
86
            message = "No registered user exists.";
93
            emails = uClient.getUserEmails(startDate.getTime(), endDate.getTime());
87
            return authsuccess;
94
        } catch (Exception e) {
-
 
95
            logger.error("Error initializing connection to user or order service", e);
88
        }
96
        }
-
 
97
        
89
        // Preparing XLS file for output
98
        // Preparing XLS file for output
90
        response.setContentType("application/vnd.ms-excel");
99
		response.setContentType("application/vnd.ms-excel");
91
        response.setHeader("Content-disposition", "inline; filename=registered-users" + ".xls");
100
		response.setHeader("Content-disposition", "attachment; filename=email-addresses.xls");
-
 
101
		
92
        ServletOutputStream sos;
102
        ServletOutputStream sos;
93
        try {
103
        try {
-
 
104
        	StringBuilder builder = new StringBuilder();
-
 
105
    		
-
 
106
    		for (String email: emails)	{
-
 
107
    			builder.append(email);
-
 
108
    			builder.append("\n");
-
 
109
    		}
-
 
110
    		
94
            sos = response.getOutputStream();
111
			sos = response.getOutputStream();
95
            baos.writeTo(sos);
112
			sos.write(builder.toString().getBytes());
96
            sos.flush();
113
			sos.flush();
-
 
114
			sos.close();
97
        } catch (IOException e) {
115
        } catch (IOException e) {
98
            logger.error("Error streaming registered users report");
116
            logger.error("Error streaming registered users report");
99
        }
117
        }
100
        return authsuccess;
118
        return authsuccess;
101
    }
119
    }
Line 133... Line 151...
133
    }
151
    }
134
 
152
 
135
    public void setErrorMsg(String errorMsg) {
153
    public void setErrorMsg(String errorMsg) {
136
        this.errorMsg = errorMsg;
154
        this.errorMsg = errorMsg;
137
    }
155
    }
138
}
156
}
139
157