package fi.otavanopisto.pyramus.json.settings; import fi.internetix.smvc.SmvcRuntimeException; import fi.internetix.smvc.StatusCode; import fi.internetix.smvc.controllers.JSONRequestContext; import fi.otavanopisto.pyramus.dao.DAOFactory; import fi.otavanopisto.pyramus.dao.base.CurriculumDAO; import fi.otavanopisto.pyramus.domainmodel.base.Curriculum; import fi.otavanopisto.pyramus.framework.JSONRequestController; import fi.otavanopisto.pyramus.framework.UserRole; public class SaveCurriculumsJSONRequestController extends JSONRequestController { public void process(JSONRequestContext jsonRequestContext) { CurriculumDAO curriculumDAO = DAOFactory.getInstance().getCurriculumDAO(); Long rowCountLong = jsonRequestContext.getLong("curriculumsTable.rowCount"); if (rowCountLong == null) throw new SmvcRuntimeException(StatusCode.UNDEFINED, "Row count was not defined."); int rowCount = rowCountLong.intValue(); for (int i = 0; i < rowCount; i++) { String colPrefix = "curriculumsTable." + i; Long curriculumId = jsonRequestContext.getLong(colPrefix + ".curriculumId"); String name = jsonRequestContext.getString(colPrefix + ".name"); boolean modified = new Integer(1).equals(jsonRequestContext.getInteger(colPrefix + ".modified")); if (curriculumId == -1) { curriculumDAO.create(name); } else if (modified) { Curriculum curriculum = curriculumDAO.findById(curriculumId); if (curriculum != null) curriculumDAO.updateName(curriculum, name); else throw new SmvcRuntimeException(StatusCode.UNDEFINED, "Modified curriculum was not found."); } } jsonRequestContext.setRedirectURL(jsonRequestContext.getReferer(true)); } public UserRole[] getAllowedRoles() { return new UserRole[] { UserRole.MANAGER, UserRole.STUDY_PROGRAMME_LEADER, UserRole.ADMINISTRATOR }; } }