Search in sources :

Example 1 with Municipality

use of fi.otavanopisto.pyramus.rest.model.Municipality in project muikku by otavanopisto.

the class PyramusUserSchoolDataBridge method updateUser.

@Override
public User updateUser(User user) {
    Long studentId = identifierMapper.getPyramusStudentId(user.getIdentifier());
    if (studentId == null) {
        throw new SchoolDataBridgeInternalException("User is not a Pyramus student");
    }
    Student student = pyramusClient.get(String.format("/students/students/%d", studentId), Student.class);
    Municipality[] municipalities = pyramusClient.get("/students/municipalities", Municipality[].class);
    // There's no search endpoint in Pyramus REST, and the municipality field is text, so we need to do this
    boolean municipalityFound = false;
    for (Municipality municipality : Arrays.asList(municipalities)) {
        if (StringUtils.equalsIgnoreCase(municipality.getName(), user.getMunicipality())) {
            student.setMunicipalityId(municipality.getId());
            municipalityFound = true;
            break;
        }
    }
    if (!municipalityFound) {
        throw new SchoolDataBridgeInternalException("Municipality not found");
    }
    pyramusClient.put(String.format("/students/students/%d", studentId), student);
    return user;
}
Also used : Municipality(fi.otavanopisto.pyramus.rest.model.Municipality) SchoolDataBridgeInternalException(fi.otavanopisto.muikku.schooldata.SchoolDataBridgeInternalException) Student(fi.otavanopisto.pyramus.rest.model.Student) StudentGroupStudent(fi.otavanopisto.pyramus.rest.model.StudentGroupStudent)

Example 2 with Municipality

use of fi.otavanopisto.pyramus.rest.model.Municipality in project muikku by otavanopisto.

the class PyramusUserSchoolDataBridge method createStudentEntities.

private List<User> createStudentEntities(Student... students) {
    Map<Long, StudyProgramme> studyProgrammeMap = new HashMap<Long, StudyProgramme>();
    List<User> users = new ArrayList<User>();
    for (Student student : students) {
        StudyProgramme studyProgramme;
        String nationality = null;
        String language = null;
        String municipality = null;
        String school = null;
        boolean hidden = false;
        if (student.getStudyProgrammeId() != null) {
            if (!studyProgrammeMap.containsKey(student.getStudyProgrammeId())) {
                StudyProgramme studyProgrammeO = pyramusClient.get("/students/studyProgrammes/" + student.getStudyProgrammeId(), StudyProgramme.class);
                if (studyProgrammeO != null)
                    studyProgrammeMap.put(student.getStudyProgrammeId(), studyProgrammeO);
            }
            studyProgramme = studyProgrammeMap.get(student.getStudyProgrammeId());
        } else {
            studyProgramme = null;
        }
        if (student.getNationalityId() != null) {
            Nationality nationalityO = pyramusClient.get("/students/nationalities/" + student.getNationalityId(), Nationality.class);
            if (nationalityO != null)
                nationality = nationalityO.getName();
        }
        if (student.getLanguageId() != null) {
            Language languageO = pyramusClient.get("/students/languages/" + student.getLanguageId(), Language.class);
            if (languageO != null)
                language = languageO.getName();
        }
        if (student.getMunicipalityId() != null) {
            Municipality municipalityO = pyramusClient.get("/students/municipalities/" + student.getMunicipalityId(), Municipality.class);
            if (municipalityO != null)
                municipality = municipalityO.getName();
        }
        if (student.getSchoolId() != null) {
            School schoolO = pyramusClient.get("/schools/schools/" + student.getSchoolId(), School.class);
            if (schoolO != null)
                school = schoolO.getName();
        }
        if (student.getPersonId() != null) {
            Person person = pyramusClient.get("/persons/persons/" + student.getPersonId(), Person.class);
            if (person != null)
                hidden = person.getSecureInfo() != null ? person.getSecureInfo() : false;
        }
        String curriculumIdentifier = student.getCurriculumId() != null ? identifierMapper.getCurriculumIdentifier(student.getCurriculumId()).toId() : null;
        // #3069: User has evaluation fees if their study program begins with Internetix/
        boolean evaluationFees = studyProgramme != null && StringUtils.startsWith(studyProgramme.getName(), "Internetix/");
        users.add(entityFactory.createEntity(student, studyProgramme, nationality, language, municipality, school, student.getStudyStartDate(), student.getStudyEndDate(), student.getStudyTimeEnd(), evaluationFees, hidden, curriculumIdentifier));
    }
    return users;
}
Also used : User(fi.otavanopisto.muikku.schooldata.entity.User) PyramusGroupUser(fi.otavanopisto.muikku.plugins.schooldatapyramus.entities.PyramusGroupUser) StudentGroupUser(fi.otavanopisto.pyramus.rest.model.StudentGroupUser) GroupUser(fi.otavanopisto.muikku.schooldata.entity.GroupUser) Municipality(fi.otavanopisto.pyramus.rest.model.Municipality) StudyProgramme(fi.otavanopisto.pyramus.rest.model.StudyProgramme) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Student(fi.otavanopisto.pyramus.rest.model.Student) StudentGroupStudent(fi.otavanopisto.pyramus.rest.model.StudentGroupStudent) Nationality(fi.otavanopisto.pyramus.rest.model.Nationality) School(fi.otavanopisto.pyramus.rest.model.School) Language(fi.otavanopisto.pyramus.rest.model.Language) Person(fi.otavanopisto.pyramus.rest.model.Person)

Aggregations

Municipality (fi.otavanopisto.pyramus.rest.model.Municipality)2 Student (fi.otavanopisto.pyramus.rest.model.Student)2 StudentGroupStudent (fi.otavanopisto.pyramus.rest.model.StudentGroupStudent)2 PyramusGroupUser (fi.otavanopisto.muikku.plugins.schooldatapyramus.entities.PyramusGroupUser)1 SchoolDataBridgeInternalException (fi.otavanopisto.muikku.schooldata.SchoolDataBridgeInternalException)1 GroupUser (fi.otavanopisto.muikku.schooldata.entity.GroupUser)1 User (fi.otavanopisto.muikku.schooldata.entity.User)1 Language (fi.otavanopisto.pyramus.rest.model.Language)1 Nationality (fi.otavanopisto.pyramus.rest.model.Nationality)1 Person (fi.otavanopisto.pyramus.rest.model.Person)1 School (fi.otavanopisto.pyramus.rest.model.School)1 StudentGroupUser (fi.otavanopisto.pyramus.rest.model.StudentGroupUser)1 StudyProgramme (fi.otavanopisto.pyramus.rest.model.StudyProgramme)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1