Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardServicePOJO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardServicePOJO.java,v diff -u -r1.54 -r1.55 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardServicePOJO.java 3 Sep 2014 10:31:13 -0000 1.54 +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardServicePOJO.java 16 Apr 2015 02:08:18 -0000 1.55 @@ -28,11 +28,12 @@ import java.util.Hashtable; import java.util.Iterator; import java.util.List; -import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; import org.apache.log4j.Logger; +import org.apache.tomcat.util.json.JSONException; +import org.apache.tomcat.util.json.JSONObject; import org.lamsfoundation.lams.contentrepository.ItemNotFoundException; import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; @@ -43,6 +44,7 @@ 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.ToolRestManager; import org.lamsfoundation.lams.tool.ToolContentImport102Manager; import org.lamsfoundation.lams.tool.ToolContentManager; import org.lamsfoundation.lams.tool.ToolOutput; @@ -62,8 +64,8 @@ import org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardUserDAO; import org.lamsfoundation.lams.tool.service.ILamsToolService; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.WebUtil; -import org.springframework.dao.DataAccessException; /** * An implementation of the NoticeboardService interface. @@ -74,7 +76,7 @@ * */ public class NoticeboardServicePOJO implements INoticeboardService, ToolContentManager, ToolSessionManager, - ToolContentImport102Manager { + ToolContentImport102Manager, ToolRestManager { private static Logger log = Logger.getLogger(NoticeboardServicePOJO.class); private ILearnerService learnerService; @@ -357,7 +359,7 @@ return; } - for (NoticeboardSession session : (Set) nbContent.getNbSessions()) { + for (NoticeboardSession session : nbContent.getNbSessions()) { NoticeboardUser user = nbUserDAO.getNbUser(userId.longValue(), session.getNbSessionId()); if (user != null) { NotebookEntry entry = getEntry(session.getNbSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL, @@ -519,7 +521,7 @@ DataMissingException { Iterator i = toolSessionIds.iterator(); if (i.hasNext()) { - Long id = (Long) i.next(); + Long id = i.next(); getAndCheckSessionIDandObject(id); } @@ -594,11 +596,11 @@ public void setNbContentDAO(INoticeboardContentDAO nbContentDAO) { this.nbContentDAO = nbContentDAO; } - + public void setNbSessionDAO(INoticeboardSessionDAO nbSessionDAO) { this.nbSessionDAO = nbSessionDAO; } - + public void setNbUserDAO(INoticeboardUserDAO nbUserDAO) { this.nbUserDAO = nbUserDAO; } @@ -661,4 +663,25 @@ public Class[] getSupportedToolOutputDefinitionClasses(int definitionType) { return null; } + + // ****************** REST methods ************************* + + @Override + public void createRestToolContent(Integer userID, Long toolContentID, JSONObject toolContentJSON) throws JSONException { + Date updateDate = new Date(); + + NoticeboardContent noticeboard = new NoticeboardContent(); + noticeboard.setNbContentId(toolContentID); + noticeboard.setTitle(toolContentJSON.getString("title")); + noticeboard.setContent(toolContentJSON.getString("content")); + noticeboard.setReflectOnActivity(JsonUtil.opt(toolContentJSON, "reflectOnActivity", Boolean.FALSE)); + noticeboard.setReflectInstructions((String)JsonUtil.opt(toolContentJSON, "reflectInstructions", null)); + + noticeboard.setCreatorUserId(userID.longValue()); + noticeboard.setDateCreated(updateDate); + noticeboard.setDateUpdated(updateDate); + noticeboard.setContentInUse(false); + + saveNoticeboard(noticeboard); + } } \ No newline at end of file