Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomUtil.java =================================================================== diff -u -r2cf1e086b82a29fae22136351fc7a44821181323 -r37f066ac5ffb3067a1f8094f8c41d5e8f7aa2b3f --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomUtil.java (.../ZoomUtil.java) (revision 2cf1e086b82a29fae22136351fc7a44821181323) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomUtil.java (.../ZoomUtil.java) (revision 37f066ac5ffb3067a1f8094f8c41d5e8f7aa2b3f) @@ -23,6 +23,40 @@ package org.lamsfoundation.lams.tool.zoom.util; +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.apache.tomcat.util.json.JSONException; +import org.lamsfoundation.lams.tool.zoom.model.Zoom; +import org.lamsfoundation.lams.tool.zoom.service.IZoomService; + public class ZoomUtil { -} + /** + * Creates and starts a Zoom meeting + */ + public static ActionErrors startMeeting(IZoomService zoomService, Zoom zoom, HttpServletRequest request) + throws IOException, JSONException { + ActionErrors errors = new ActionErrors(); + String meetingURL = zoom.getMeetingStartUrl(); + if (meetingURL == null) { + Boolean apiOK = zoomService.chooseApi(zoom.getUid()); + if (apiOK == null) { + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.api.none.configured")); + request.setAttribute("skipContent", true); + } else { + if (!apiOK) { + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.api.reuse")); + } + meetingURL = zoomService.createMeeting(zoom.getUid()); + } + } + + request.setAttribute(ZoomConstants.ATTR_MEETING_URL, meetingURL); + return errors; + } +} \ No newline at end of file Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/LearningAction.java =================================================================== diff -u -r5da86331a25afcff7dfa0dd4647187c5beaa757b -r37f066ac5ffb3067a1f8094f8c41d5e8f7aa2b3f --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/LearningAction.java (.../LearningAction.java) (revision 5da86331a25afcff7dfa0dd4647187c5beaa757b) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/LearningAction.java (.../LearningAction.java) (revision 37f066ac5ffb3067a1f8094f8c41d5e8f7aa2b3f) @@ -30,12 +30,11 @@ import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; +import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; -import org.apache.struts.util.MessageResources; -import org.lamsfoundation.lams.integration.security.RandomPasswordGenerator; import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; @@ -50,6 +49,7 @@ import org.lamsfoundation.lams.tool.zoom.service.IZoomService; import org.lamsfoundation.lams.tool.zoom.service.ZoomServiceProxy; import org.lamsfoundation.lams.tool.zoom.util.ZoomConstants; +import org.lamsfoundation.lams.tool.zoom.util.ZoomUtil; import org.lamsfoundation.lams.tool.zoom.web.forms.LearningForm; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; @@ -144,30 +144,6 @@ } - public ActionForward openPreviewMeeting(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) throws Exception { - - // get user uid parameter - Long uid = WebUtil.readLongParam(request, ZoomConstants.PARAM_USER_UID); - ZoomUser user = zoomService.getUserByUID(uid); - ZoomSession session = user.getZoomSession(); - - // Get LAMS userDTO - org.lamsfoundation.lams.usermanagement.dto.UserDTO lamsUserDTO = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) SessionManager - .getSession().getAttribute(AttributeNames.USER); - - // create random strings for attendee and moderator passwords - String attendeePassword = RandomPasswordGenerator.nextPassword(20); - String moderatorPassword = RandomPasswordGenerator.nextPassword(20); - MessageResources resources = MessageResources.getMessageResources(ZoomConstants.APP_RESOURCES); - - // Get default localized welcome message - - String welcomeMessage = resources.getMessage("activity.welcome.message"); - - return null; - } - public ActionForward submitReflection(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException { @@ -255,21 +231,21 @@ // set toolSessionID in request request.setAttribute(ZoomConstants.ATTR_TOOL_SESSION_ID, session.getSessionId()); -// String dispatchValue = new String(); -// boolean meetingOpen = false; -// if (mode.isAuthor()) { -// dispatchValue = "openPreviewMeeting"; -// meetingOpen = true; -// } else { -// } - - String meetingURL = user.getMeetingJoinUrl(); - if (meetingURL == null && zoom.getMeetingId() != null) { - meetingURL = zoomService.registerUser(zoom.getUid(), user.getUid(), session.getSessionName()); + if (mode.isAuthor()) { + // start a meeting just like a monitor would + ActionErrors errors = ZoomUtil.startMeeting(zoomService, zoom, request); + if (!errors.isEmpty()) { + this.addErrors(request, errors); + } + } else { + // register a learner for the meeting + String meetingURL = user.getMeetingJoinUrl(); + if (meetingURL == null && zoom.getMeetingId() != null) { + meetingURL = zoomService.registerUser(zoom.getUid(), user.getUid(), session.getSessionName()); + } + request.setAttribute(ZoomConstants.ATTR_MEETING_URL, meetingURL); } - request.setAttribute(ZoomConstants.ATTR_MEETING_URL, meetingURL); - return mapping.findForward("zoom"); } } Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/MonitoringAction.java =================================================================== diff -u -r5da86331a25afcff7dfa0dd4647187c5beaa757b -r37f066ac5ffb3067a1f8094f8c41d5e8f7aa2b3f --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 5da86331a25afcff7dfa0dd4647187c5beaa757b) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 37f066ac5ffb3067a1f8094f8c41d5e8f7aa2b3f) @@ -31,8 +31,6 @@ import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.ActionMessage; -import org.apache.struts.action.ActionMessages; import org.apache.struts.actions.DispatchAction; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.tool.zoom.dto.ContentDTO; @@ -43,6 +41,7 @@ import org.lamsfoundation.lams.tool.zoom.service.IZoomService; import org.lamsfoundation.lams.tool.zoom.service.ZoomServiceProxy; import org.lamsfoundation.lams.tool.zoom.util.ZoomConstants; +import org.lamsfoundation.lams.tool.zoom.util.ZoomUtil; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -113,28 +112,11 @@ contentDTO.setInstructions(zoom.getInstructions()); request.setAttribute(ZoomConstants.ATTR_CONTENT_DTO, contentDTO); - String meetingURL = zoom.getMeetingStartUrl(); - - if (meetingURL == null) { - ActionErrors errors = new ActionErrors(); - - Boolean apiOK = zoomService.chooseApi(zoom.getUid()); - if (apiOK == null) { - errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.api.none.configured")); - request.setAttribute("skipContent", true); - } else { - if (!apiOK) { - errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.api.reuse")); - } - meetingURL = zoomService.createMeeting(zoom.getUid()); - } - if (!errors.isEmpty()) { - this.addErrors(request, errors); - } + ActionErrors errors = ZoomUtil.startMeeting(zoomService, zoom, request); + if (!errors.isEmpty()) { + this.addErrors(request, errors); } - request.setAttribute(ZoomConstants.ATTR_MEETING_URL, meetingURL); - return mapping.findForward("learning"); } }