package fi.otavanopisto.pyramus.rest.controller;
import java.util.Date;
import java.util.List;
import javax.ejb.Stateless;
import javax.enterprise.context.Dependent;
import javax.inject.Inject;
import fi.otavanopisto.pyramus.dao.base.PersonDAO;
import fi.otavanopisto.pyramus.domainmodel.base.Person;
import fi.otavanopisto.pyramus.domainmodel.students.Sex;
import fi.otavanopisto.pyramus.domainmodel.users.User;
@Dependent
@Stateless
public class PersonController {
@Inject
private PersonDAO personDAO;
public Person createPerson(Date birthday, String socialSecurityNumber, Sex sex, String basicInfo, Boolean secureInfo) {
Person person = personDAO.create(birthday, socialSecurityNumber, sex, basicInfo, secureInfo);
return person;
}
public List<Person> listPersons() {
return listPersons(null, null);
}
public List<Person> listPersons(Integer firstResult, Integer maxResults) {
return personDAO.listAll(firstResult, maxResults);
}
public List<Person> listUnarchivedPersons() {
return listUnarchivedPersons(null, null);
}
public List<Person> listUnarchivedPersons(Integer firstResult, Integer maxResults) {
return personDAO.listUnarchived(firstResult, maxResults);
}
public Person findPersonById(Long id) {
Person person = personDAO.findById(id);
return person;
}
public Person findUniquePersonByEmail(String email) {
Person person = personDAO.findByUniqueEmail(email);
return person;
}
public Person updatePerson(Person person, Date birthday, String socialSecurityNumber, Sex sex, String basicInfo, Boolean secureInfo) {
personDAO.update(person, birthday, socialSecurityNumber, sex, basicInfo, secureInfo);
return person;
}
public Person updatePersonDefaultUser(Person person, User defaultUser) {
return personDAO.updateDefaultUser(person, defaultUser);
}
public void deletePerson(Person person) {
personDAO.delete(person);
}
}