1
package com.bittercode.service.impl;
3
import java.sql.Connection;
4
import java.sql.PreparedStatement;
5
import java.sql.ResultSet;
6
import java.sql.SQLException;
8
import javax.servlet.http.HttpSession;
10
import com.bittercode.constant.ResponseCode;
11
import com.bittercode.constant.db.UsersDBConstants;
12
import com.bittercode.model.StoreException;
13
import com.bittercode.model.User;
14
import com.bittercode.model.UserRole;
15
import com.bittercode.service.UserService;
16
import com.bittercode.util.DBUtil;
18
public class UserServiceImpl implements UserService {
20
private static final String registerUserQuery = "INSERT INTO " + UsersDBConstants.TABLE_USERS
21
+ " VALUES(?,?,?,?,?,?,?,?)";
23
private static final String loginUserQuery = "SELECT * FROM " + UsersDBConstants.TABLE_USERS + " WHERE "
24
+ UsersDBConstants.COLUMN_USERNAME + "=? AND " + UsersDBConstants.COLUMN_PASSWORD + "=? AND "
25
+ UsersDBConstants.COLUMN_USERTYPE + "=?";
28
public User login(UserRole role, String email, String password, HttpSession session) throws StoreException {
29
Connection con = DBUtil.getConnection();
33
String userType = UserRole.SELLER.equals(role) ? "1" : "2";
34
ps = con.prepareStatement(loginUserQuery);
35
ps.setString(1, email);
36
ps.setString(2, password);
37
ps.setString(3, userType);
38
ResultSet rs = ps.executeQuery();
41
user.setFirstName(rs.getString("firstName"));
42
user.setLastName(rs.getString("lastName"));
43
user.setPhone(rs.getLong("phone"));
44
user.setEmailId(email);
45
user.setPassword(password);
46
session.setAttribute(role.toString(), user.getEmailId());
48
} catch (SQLException e) {
55
public boolean isLoggedIn(UserRole role, HttpSession session) {
57
role = UserRole.CUSTOMER;
58
return session.getAttribute(role.toString()) != null;
62
public boolean logout(HttpSession session) {
63
session.removeAttribute(UserRole.CUSTOMER.toString());
64
session.removeAttribute(UserRole.SELLER.toString());
70
public String register(UserRole role, User user) throws StoreException {
71
String responseMessage = ResponseCode.FAILURE.name();
72
Connection con = DBUtil.getConnection();
74
PreparedStatement ps = con.prepareStatement(registerUserQuery);
75
ps.setString(1, user.getEmailId());
76
ps.setString(2, user.getPassword());
77
ps.setString(3, user.getFirstName());
78
ps.setString(4, user.getLastName());
79
ps.setString(5, user.getAddress());
80
ps.setLong(6, user.getPhone());
81
ps.setString(7, user.getEmailId());
82
int userType = UserRole.SELLER.equals(role) ? 1 : 2;
83
ps.setInt(8, userType);
84
int k = ps.executeUpdate();
86
responseMessage = ResponseCode.SUCCESS.name();
89
} catch (Exception e) {
90
responseMessage += " : " + e.getMessage();
91
if (responseMessage.contains("Duplicate"))
92
responseMessage = "User already registered with this email !!";
95
return responseMessage;