package fi.otavanopisto.pyramus.util.dataimport.scripting.api;
import java.util.ArrayList;
import java.util.List;
import fi.otavanopisto.pyramus.dao.DAOFactory;
import fi.otavanopisto.pyramus.dao.base.StudyProgrammeDAO;
import fi.otavanopisto.pyramus.domainmodel.base.StudyProgramme;
import fi.otavanopisto.pyramus.domainmodel.base.StudyProgrammeCategory;
import fi.otavanopisto.pyramus.util.dataimport.scripting.InvalidScriptException;
public class StudyProgrammeAPI {
public StudyProgrammeAPI(Long loggedUserId) {
this.loggedUserId = loggedUserId;
}
public Long create(String name, Long categoryId, String code) throws InvalidScriptException {
StudyProgrammeCategory category = null;
if (categoryId != null) {
category = DAOFactory.getInstance().getStudyProgrammeCategoryDAO().findById(categoryId);
if (category == null) {
throw new InvalidScriptException("StudyProgrammeCategory #" + categoryId + " not found.");
}
}
return (DAOFactory.getInstance().getStudyProgrammeDAO().create(name, category, code).getId());
}
public Long findIdByCode(String code) {
StudyProgrammeDAO studyProgrammeDAO = DAOFactory.getInstance().getStudyProgrammeDAO();
StudyProgramme studyProgramme = studyProgrammeDAO.findByCode(code);
return studyProgramme != null ? studyProgramme.getId() : null;
}
public Long[] listIds() {
StudyProgrammeDAO studyProgrammeDAO = DAOFactory.getInstance().getStudyProgrammeDAO();
List<Long> result = new ArrayList<>();
List<StudyProgramme> studyProgrammes = studyProgrammeDAO.listUnarchived();
for (StudyProgramme studyProgramme : studyProgrammes) {
result.add(studyProgramme.getId());
}
return result.toArray(new Long[0]);
}
@SuppressWarnings("unused")
private Long loggedUserId;
}