package fi.otavanopisto.pyramus.json.drafts;
import fi.internetix.smvc.controllers.JSONRequestContext;
import fi.otavanopisto.pyramus.dao.DAOFactory;
import fi.otavanopisto.pyramus.dao.drafts.DraftDAO;
import fi.otavanopisto.pyramus.dao.users.StaffMemberDAO;
import fi.otavanopisto.pyramus.domainmodel.drafts.FormDraft;
import fi.otavanopisto.pyramus.domainmodel.users.User;
import fi.otavanopisto.pyramus.framework.JSONRequestController;
import fi.otavanopisto.pyramus.framework.UserRole;
public class SaveFormDraftJSONRequestController extends JSONRequestController {
public void process(JSONRequestContext requestContext) {
StaffMemberDAO userDAO = DAOFactory.getInstance().getStaffMemberDAO();
DraftDAO draftDAO = DAOFactory.getInstance().getDraftDAO();
String url = requestContext.getRequest().getHeader("Referer");
String draftData = requestContext.getString("draftData");
if (draftData != null) {
User loggedUser = userDAO.findById(requestContext.getLoggedUserId());
FormDraft formDraft = draftDAO.findByUserAndURL(loggedUser, url);
if (formDraft == null)
formDraft = draftDAO.create(loggedUser, url, draftData);
else
draftDAO.update(formDraft, draftData);
requestContext.addResponseParameter("url", formDraft.getUrl());
requestContext.addResponseParameter("draftCreated", formDraft.getCreated());
requestContext.addResponseParameter("draftModified", formDraft.getModified());
}
}
public UserRole[] getAllowedRoles() {
return new UserRole[] { UserRole.GUEST, UserRole.USER, UserRole.MANAGER, UserRole.STUDY_PROGRAMME_LEADER, UserRole.ADMINISTRATOR };
}
}