package info.ozkan.vipera.dao.login; import info.ozkan.vipera.business.login.DoctorLoginResult; import info.ozkan.vipera.business.login.DoctorLoginStatus; import info.ozkan.vipera.entities.Authorize; import info.ozkan.vipera.entities.Doctor; import java.util.List; import javax.inject.Named; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; /** * {@link DoctorLoginDao} implementasyonu * * @author Ömer Özkan * */ @Named("doctorLoginDao") public class DoctorLoginDaoImpl implements DoctorLoginDao { private static final String JQL_GET_BY_TCKN = "from Doctor d WHERE d.tckn = :tckn AND enabled = :enabled"; /** * EntityManager */ private EntityManager em; public DoctorLoginResult find(final Long tckn, final String password) { final DoctorLoginResult result = new DoctorLoginResult(); final Query query = em .createQuery(JQL_GET_BY_TCKN); query.setParameter("tckn", tckn); query.setParameter("enabled", Authorize.ENABLE); final List<Doctor> list = query.getResultList(); if (list.size() == 0) { result.setStatus(DoctorLoginStatus.INVALID_USERNAME); } else { final Doctor doctor = list.get(0); if (doctor.getPassword().equals(password)) { result.setStatus(DoctorLoginStatus.SUCCESS); result.setDoctor(doctor); } else { result.setStatus(DoctorLoginStatus.INVALID_PASSWORD); } } return result; } /** * @param entityManager * the entityManager to set */ @PersistenceContext public void setEntityManager(final EntityManager entityManager) { em = entityManager; } }