@Path("person")
@FenixAPIScope(PERSONAL_SCOPE)
public FenixPerson person() {
final Person person = getPerson();
PersonInformationBean pib = new PersonInformationBean(person, true);
final Set<FenixRole> roles = new HashSet<FenixRole>();
if (isTeacher(person) || person.hasRole(RoleType.TEACHER)) {
roles.add(new FenixPerson.TeacherFenixRole(pib.getTeacherDepartment()));
}
if (person.hasRole(RoleType.STUDENT)) {
roles.add(new FenixPerson.StudentFenixRole(pib.getStudentRegistrations()));
}
if (person.hasRole(RoleType.ALUMNI)) {
ArrayList<Registration> concludedRegistrations = new ArrayList<>();
if (person.getStudent() != null) {
concludedRegistrations.addAll(person.getStudent().getConcludedRegistrations());
}
roles.add(new FenixPerson.AlumniFenixRole(concludedRegistrations));
}
final String name = pib.getName();
final String gender = person.getGender().name();
final String birthday = person.getDateOfBirthYearMonthDay().toString(formatDay);
final String username = person.getUsername();
final String campus = pib.getCampus();
final String email = pib.getEmail();
final List<String> personalEmails = pib.getPersonalEmails();
final List<String> workEmails = pib.getWorkEmails();
List<String> personalWebAdresses = pib.getPersonalWebAdresses();
List<String> workWebAdresses = pib.getWorkWebAdresses();
final FenixPhoto photo = getPhoto(person);
return new FenixPerson(campus, roles, photo, name, gender, birthday, username, email, personalEmails, workEmails,
personalWebAdresses, workWebAdresses);
}