121 lines
4.3 KiB
Java
121 lines
4.3 KiB
Java
package database.user;
|
|
|
|
import com.j256.ormlite.dao.Dao;
|
|
import com.j256.ormlite.dao.DaoManager;
|
|
import com.j256.ormlite.stmt.PreparedQuery;
|
|
import com.j256.ormlite.stmt.QueryBuilder;
|
|
import com.j256.ormlite.stmt.UpdateBuilder;
|
|
import database.DatabaseHelper;
|
|
|
|
import java.sql.Timestamp;
|
|
|
|
//Class to communicate with database with ORMLite
|
|
public class UserDao {
|
|
private DatabaseHelper dbh = new DatabaseHelper();
|
|
private Dao<User, String> userDao;
|
|
|
|
private Dao createUserDaoConnection(){
|
|
try {
|
|
return DaoManager.createDao(dbh.setupDatabaseConnection(),User.class);
|
|
}catch (Exception e){
|
|
System.out.println(e.getMessage());
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public void addUser(User user)throws Exception {
|
|
userDao = createUserDaoConnection();
|
|
userDao.create(user);
|
|
}
|
|
|
|
public boolean checkApprovedUser(String email) throws Exception {
|
|
userDao = createUserDaoConnection();
|
|
QueryBuilder<User, String> queryBuilder = userDao.queryBuilder();
|
|
queryBuilder.where().eq("email",email);
|
|
PreparedQuery<User> preparedQuery = queryBuilder.prepare();
|
|
User user = userDao.queryForFirst(preparedQuery);
|
|
return user.isApproved();
|
|
}
|
|
|
|
public boolean checkVerifiedUser(String email) throws Exception {
|
|
userDao = createUserDaoConnection();
|
|
QueryBuilder<User, String> queryBuilder = userDao.queryBuilder();
|
|
queryBuilder.where().eq("email",email);
|
|
PreparedQuery<User> preparedQuery = queryBuilder.prepare();
|
|
User user = userDao.queryForFirst(preparedQuery);
|
|
return user.isVerified();
|
|
}
|
|
|
|
public boolean updateUserPassword(String email, String password) throws Exception {
|
|
userDao = createUserDaoConnection();
|
|
UpdateBuilder<User, String> updateBuilder = userDao.updateBuilder();
|
|
updateBuilder.updateColumnValue("password",password);
|
|
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
|
|
updateBuilder.updateColumnValue("modification_date",timestamp.getTime());
|
|
updateBuilder.where().eq("email",email);
|
|
updateBuilder.update();
|
|
|
|
if(checkUserPassword(email, password)){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private boolean verifyUserExist(String email) throws Exception {
|
|
userDao = createUserDaoConnection();
|
|
QueryBuilder<User, String> queryBuilder = userDao.queryBuilder();
|
|
queryBuilder.where().eq("email",email);
|
|
PreparedQuery<User> preparedQuery = queryBuilder.prepare();
|
|
User user = userDao.queryForFirst(preparedQuery);
|
|
|
|
if(user==null){
|
|
return false;
|
|
}else{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public boolean checkUserPassword(String email, String password) throws Exception {
|
|
User user = getUser(email);
|
|
if(password.equals(user.getPassword())){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public User getUser(String email) throws Exception {
|
|
if(!verifyUserExist(email)){
|
|
return null;
|
|
}else{
|
|
userDao = createUserDaoConnection();
|
|
QueryBuilder<User, String> queryBuilder = userDao.queryBuilder();
|
|
queryBuilder.where().eq("email",email);
|
|
PreparedQuery<User> preparedQuery = queryBuilder.prepare();
|
|
return userDao.queryForFirst(preparedQuery);
|
|
}
|
|
}
|
|
|
|
|
|
public void approveUser (String email) throws Exception{
|
|
userDao = createUserDaoConnection();
|
|
UpdateBuilder<User, String> updateBuilder = userDao.updateBuilder();
|
|
updateBuilder.updateColumnValue("approved",true);
|
|
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
|
|
updateBuilder.updateColumnValue("modification_date",timestamp.getTime());
|
|
updateBuilder.where().eq("email",email);
|
|
updateBuilder.update();
|
|
}
|
|
|
|
public void verifyUser (String email) throws Exception{
|
|
userDao = createUserDaoConnection();
|
|
UpdateBuilder<User, String> updateBuilder = userDao.updateBuilder();
|
|
updateBuilder.updateColumnValue("verified",true);
|
|
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
|
|
updateBuilder.updateColumnValue("modification_date",timestamp.getTime());
|
|
updateBuilder.where().eq("email",email);
|
|
updateBuilder.update();
|
|
}
|
|
}
|