
br.com.jhonsapp.finaluser.service.AbstractUserService Maven / Gradle / Ivy
package br.com.jhonsapp.finaluser.service;
import java.util.List;
import br.com.jhonsapp.bootstrap.object.service.generic.AbstractService;
import br.com.jhonsapp.finaluser.domain.User;
import br.com.jhonsapp.finaluser.encryption.Encryption;
import br.com.jhonsapp.finaluser.encryption.EncryptionBCrypt;
import br.com.jhonsapp.finaluser.persistence.UserDAO;
public abstract class AbstractUserService extends AbstractService implements UserService {
private static final long serialVersionUID = 6327439319517986023L;
private Encryption encryption = EncryptionBCrypt.getInstance();
@Override
protected abstract UserDAO getDAO();
@Override
public boolean isStateInvalid(T user) {
return !isPasswordValid(user.getPassword());
}
@Override
public boolean isUnique(T user) {
T userSearch = findUser(user.getEmail());
if (userSearch != null && userSearch.getId() != user.getId()) {
return false;
} else {
return true;
}
}
@Override
protected void preSaveOrUpdate(T user) {
if (user.getPassword().length() < 50) {
user.setPassword(encryption.encrypt(user.getPassword()));
}
}
@Override
public boolean hasObject(T user) {
return findUser(user.getEmail()) != null;
}
@Override
public boolean isPasswordValid(String password) {
return password != null && password.trim().length() >= 8;
}
@Override
public String findAndroidToken(String email) {
return getDAO().findByEmail(email).getAndroidToken();
}
@Override
public T findUser(String email) {
return getDAO().findByEmail(email);
}
@Override
public List findAll() {
return getDAO().findAll();
}
@Override
public boolean validateLogin(String email, String password) {
return getDAO().canLogin(email.trim(), encryption.encrypt(password));
}
@Override
public boolean canResetUserPassword(String email, String token) {
T user = findUser(email);
if(user != null && user.getResetPasswordToken().equals(token)){
return true;
}else{
return false;
}
}
@Override
public void resetPassword(T user) {
if(user.isResetPasswordTokenEmpty())
throw new IllegalStateException("The token can not be empty.");
user.clearResetPasswordToken();
saveOrUpdate(user);
}
@Override
public List findAllWithPagination(int first, int pageSize){
return this.getDAO().findAllInARange(first, pageSize);
}
@Override
public Long usersSize(){
return this.getDAO().usersSize();
}
@Override
public boolean updateAccessToken(T user) {
if(isStateInvalid(user) || !isUnique(user))
return false;
user.newAccessToken();
return saveOrUpdate(user);
}
@Override
public T findUserByAccessToken(String accessToken) {
return getDAO().findByAccessToken(accessToken);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy