Index: lams_tool_sbmt/.classpath
===================================================================
diff -u -re59bc835a5ec91886980d67af70c0f05a0f7ae73 -rea9285af37b0a9b8e54a52298afd8ae8adac75bc
--- lams_tool_sbmt/.classpath (.../.classpath) (revision e59bc835a5ec91886980d67af70c0f05a0f7ae73)
+++ lams_tool_sbmt/.classpath (.../.classpath) (revision ea9285af37b0a9b8e54a52298afd8ae8adac75bc)
@@ -19,5 +19,6 @@
+
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java
===================================================================
diff -u -r40eb54374e84591563d8b6a679ac719dbc85c8f7 -rea9285af37b0a9b8e54a52298afd8ae8adac75bc
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 40eb54374e84591563d8b6a679ac719dbc85c8f7)
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision ea9285af37b0a9b8e54a52298afd8ae8adac75bc)
@@ -45,6 +45,8 @@
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.struts.upload.FormFile;
+import org.apache.tomcat.util.json.JSONException;
+import org.apache.tomcat.util.json.JSONObject;
import org.lamsfoundation.lams.contentrepository.AccessDeniedException;
import org.lamsfoundation.lams.contentrepository.FileException;
import org.lamsfoundation.lams.contentrepository.ICredentials;
@@ -68,6 +70,8 @@
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants;
import org.lamsfoundation.lams.notebook.service.ICoreNotebookService;
+import org.lamsfoundation.lams.rest.RestTags;
+import org.lamsfoundation.lams.rest.ToolRestManager;
import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolOutput;
@@ -97,6 +101,7 @@
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
import org.lamsfoundation.lams.usermanagement.util.LastNameAlphabeticComparator;
+import org.lamsfoundation.lams.util.JsonUtil;
import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.WebUtil;
import org.springframework.dao.DataAccessException;
@@ -105,7 +110,7 @@
* @author Manpreet Minhas
*/
public class SubmitFilesService implements ToolContentManager, ToolSessionManager, ISubmitFilesService,
- ToolContentImport102Manager {
+ ToolContentImport102Manager, ToolRestManager {
private static Logger log = Logger.getLogger(SubmitFilesService.class);
@@ -1003,6 +1008,24 @@
return submitUserDAO.getLearner(sessionID, userID);
}
+ public SubmitUser createContentUser(Integer userId, String firstName, String lastName, String loginName, Long contentId) {
+ SubmitUser author = submitUserDAO.getContentUser(contentId, userId);
+ if (author != null) {
+ return author;
+ }
+ author = new SubmitUser();
+ author.setUserID(userId);
+ author.setFirstName(firstName);
+ author.setLastName(lastName);
+ author.setLogin(loginName);
+ author.setContentID(contentId);
+ author.setFinished(false);
+
+ submitUserDAO.saveOrUpdateUser(author);
+ return author;
+
+ }
+
public SubmitUser createContentUser(UserDTO userDto, Long contentId) {
SubmitUser learner = submitUserDAO.getContentUser(contentId, userDto.getUserID());
if (learner != null) {
@@ -1167,4 +1190,42 @@
public void setSubmitFilesOutputFactory(SubmitFilesOutputFactory submitFilesOutputFactory) {
this.submitFilesOutputFactory = submitFilesOutputFactory;
}
+
+ // ****************** REST methods *************************
+
+ /** Used by the Rest calls to create content.
+ * Mandatory fields in toolContentJSON: title, instructions
+ */
+ @Override
+ public void createRestToolContent(Integer userID, Long toolContentID, JSONObject toolContentJSON) throws JSONException {
+
+ SubmitFilesContent content = new SubmitFilesContent();
+ Date updateDate = new Date();
+ content.setCreated(updateDate);
+ content.setUpdated(updateDate);
+
+ content.setContentID(toolContentID);
+ content.setTitle(toolContentJSON.getString(RestTags.TITLE));
+ content.setInstruction(toolContentJSON.getString(RestTags.INSTRUCTIONS));
+
+ content.setContentInUse(false);
+ content.setDefineLater(false);
+ content.setNotifyTeachersOnFileSubmit(JsonUtil.opt(toolContentJSON, "notifyTeachersOnFileSubmit", Boolean.FALSE));
+ content.setNotifyLearnersOnMarkRelease(JsonUtil.opt(toolContentJSON, "notifyLearnersOnMarkRelease", Boolean.FALSE));
+ content.setReflectInstructions((String) JsonUtil.opt(toolContentJSON, RestTags.REFLECT_INSTRUCTIONS, null));
+ content.setReflectOnActivity(JsonUtil.opt(toolContentJSON, RestTags.REFLECT_ON_ACTIVITY, Boolean.FALSE));
+ content.setSubmissionDeadline((Date) JsonUtil.opt(toolContentJSON, RestTags.SUBMISSION_DEADLINE, null));
+ content.setLockOnFinished(JsonUtil.opt(toolContentJSON, RestTags.LOCK_WHEN_FINISHED, Boolean.FALSE));
+ content.setLimitUpload(JsonUtil.opt(toolContentJSON, "limitUpload", Boolean.FALSE));
+ content.setLimitUploadNumber(JsonUtil.opt(toolContentJSON, "limitUploadNumber", 0));
+
+ SubmitUser user = getContentUser(toolContentID, userID);
+ if (user == null) {
+ user = createContentUser(userID, toolContentJSON.getString("firstName"), toolContentJSON.getString("lastName"),toolContentJSON.getString("loginName"), toolContentID);
+ }
+ content.setCreatedBy(user);
+ saveOrUpdateContent(content);
+
+ }
+
}
\ No newline at end of file