diff --git a/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala b/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala index c5f54bfaa14ab096695e6a233f9cfc4cbc7e2d13..82dbae1df806d4dd8d7588700843d2cb235bef78 100755 --- a/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala +++ b/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala @@ -254,86 +254,104 @@ class CollectorActor(dispatcher: IDispatcher) extends Actor { } private def handleLockSetting(msg: LockSetting) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("locked", msg.locked) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.LOCKED, msg.locked) - var settingsMap = new java.util.HashMap[String, Boolean]() - for ((key, value) <- msg.settings) - { + val settingsMap = new java.util.HashMap[String, Boolean]() + for ((key, value) <- msg.settings) { settingsMap.put(key, value) } - map.put("settings", settingsMap) //#todo not tested - map.put("timestamp", System.nanoTime()) - + payload.put("settings", settingsMap) //#todo not tested + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.END_MEETING) + header.put(Constants.TIMESTAMP, System.nanoTime()) + println("***** DISPATCHING LOCK SETTING *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleLockUser(msg: LockUser) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("userId", msg.userId) - map.put("lock", msg.lock) - map.put("timestamp", System.nanoTime()) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.USER_ID, msg.userId) + payload.put(Constants.LOCK, msg.lock) + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.END_MEETING) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING LOCK USER *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleLockAllUsers(msg: LockAllUsers) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("lock", msg.lock) - map.put("exceptUsers", msg.exceptUsers.toString()) //#todo not tested - map.put("timestamp", System.nanoTime()) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.EXCEPT_USERS, msg.exceptUsers.toString()) + payload.put(Constants.LOCK, msg.lock) + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.END_MEETING) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING LOCK ALL USERS *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleInitLockSettings(msg: InitLockSettings) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("locked", msg.locked) - - map.put("settings", msg.settings.toString()) //#todo not tested - map.put("timestamp", System.nanoTime()) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.SETTINGS, msg.settings.toString()) + payload.put(Constants.LOCKED, msg.locked) + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.INIT_LOCK_SETTINGS) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING INIT LOCK SETTINGS *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleSetLockSettings(msg: SetLockSettings) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - - map.put("settings", msg.settings.toString()) //#todo not tested - map.put("timestamp", System.nanoTime()) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.SETTINGS, msg.settings.toString()) + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.SET_LOCK_SETTINGS) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING SET LOCK SETTINGS *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleGetLockSettings(msg: GetLockSettings) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("userId", msg.userId) - map.put("timestamp", System.nanoTime()) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.USER_ID, msg.userId) + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.GET_LOCK_SETTINGS) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING GET LOCK SETTINGS *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleIsMeetingLocked(msg: IsMeetingLocked) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("userId", msg.userId) - map.put("timestamp", System.nanoTime()) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.USER_ID, msg.userId) + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.IS_MEETING_LOCKED) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING IS MEETING LOCKED *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleValidateAuthToken(msg: ValidateAuthToken) { @@ -403,6 +421,9 @@ class CollectorActor(dispatcher: IDispatcher) extends Actor { val header = new java.util.HashMap[String, Any]() header.put(Constants.NAME, MessageNames.GET_USERS) + /** + * Let's temporarily have this convention as correlationId + */ val replyTo = msg.meetingID + "/" + msg.requesterID header.put(Constants.REPLY_TO, replyTo) header.put(Constants.TIMESTAMP, System.nanoTime()) @@ -466,66 +487,79 @@ class CollectorActor(dispatcher: IDispatcher) extends Actor { } private def handleChangeUserStatus(msg: ChangeUserStatus) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("userID", msg.userID) - map.put("status", msg.status) - map.put("value", msg.value) - map.put("timestamp", System.nanoTime()) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.USER_ID, msg.userID) + payload.put(Constants.STATUS, msg.status) + payload.put(Constants.VALUE, msg.value) + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.CHANGE_USER_STATUS) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING CHANGE USER STATUS *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleAssignPresenter(msg: AssignPresenter) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("newPresenterID", msg.newPresenterID) - map.put("newPresenterName", msg.newPresenterName) - map.put("assignedBy", msg.assignedBy) - map.put("timestamp", System.nanoTime()) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.NEW_PRESENTER_ID, msg.newPresenterID) + payload.put(Constants.NEW_PRESENTER_NAME, msg.newPresenterName) + payload.put(Constants.ASSIGNED_BY, msg.assignedBy) + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.ASSIGN_PRESENTER) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING ASSIGN PRESENTER *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleSetRecordingStatus(msg: SetRecordingStatus) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("userId", msg.userId) - map.put("recording", msg.recording) - map.put("timestamp", System.nanoTime()) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.USER_ID, msg.userId) + payload.put(Constants.RECORDING, msg.recording) + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.SET_RECORDING_STATUS) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING SET RECORDING STATUS *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleGetChatHistoryRequest(msg: GetChatHistoryRequest) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("requesterID", msg.requesterID) - map.put("timestamp", System.nanoTime()) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.REQUESTER_ID, msg.requesterID) + + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.GET_CHAT_HISTORY) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING GET CHAT HISTORY REQUEST *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleSendPublicMessageRequest(msg: SendPublicMessageRequest) { - var map = new java.util.HashMap[String, Any]() - map.put("meetingID", msg.meetingID) - map.put("requesterID", msg.requesterID) + val payload = new java.util.HashMap[String, Any]() + payload.put(Constants.MEETING_ID, msg.meetingID) + payload.put(Constants.REQUESTER_ID, msg.requesterID) - var messageMap = new java.util.HashMap[String, String]() - for ((key, value) <- msg.message) - { + val messageMap = new java.util.HashMap[String, String]() + for ((key, value) <- msg.message) { messageMap.put(key, value) } + payload.put("message", messageMap) - map.put("message", messageMap) - map.put("timestamp", System.nanoTime()) + val header = new java.util.HashMap[String, Any]() + header.put(Constants.NAME, MessageNames.SEND_PUBLIC_MESSAGE) + header.put(Constants.TIMESTAMP, System.nanoTime()) println("***** DISPATCHING SEND PUBLIC MESSAGE REQUEST *****************") - dispatcher.dispatch((new Gson).toJson(map)) + dispatcher.dispatch(buildJson(header, payload)) } private def handleSendPrivateMessageRequest(msg: SendPrivateMessageRequest) { diff --git a/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/Constants.scala b/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/Constants.scala index 95043b84f3c3e3549c298b5ad811148fd5969e88..12cc5f1a8a6bc3efd6e9c9bdbca453116a31fa35 100755 --- a/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/Constants.scala +++ b/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/Constants.scala @@ -18,5 +18,14 @@ object Constants { val REPLY_TO = "reply_to" val LOWERED_BY = "lowered_by" val STREAM = "stream" - + val LOCKED = "locked" + val SETTINGS = "settings" + val LOCK = "lock" + val EXCEPT_USERS = "except_users" + val STATUS = "status" + val VALUE = "value" + val NEW_PRESENTER_ID = "new_presenter_id" + val NEW_PRESENTER_NAME = "new_presenter_name" + val ASSIGNED_BY = "assigned_by" + val RECORDING = "recording" } \ No newline at end of file diff --git a/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/MessageNames.scala b/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/MessageNames.scala index 674176e38c52a0060ea8c2578b57d4450e15d7da..ccb25dbfa41e3a9144335d5fe4e3886da4f40da0 100755 --- a/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/MessageNames.scala +++ b/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/MessageNames.scala @@ -6,6 +6,12 @@ object MessageNames { val DESTROY_MEETING = "destroy_meeting_request" val START_MEETING = "start_meeting_request" val END_MEETING = "end_meeting_request" + val LOCK_SETTING = "lock_setting_request" + val LOCK_USER = "lock_user_request" + val INIT_LOCK_SETTINGS = "init_lock_settings" + val SET_LOCK_SETTINGS = "set_lock_settings" + val GET_LOCK_SETTINGS = "get_lock_settings" + val IS_MEETING_LOCKED = "is_meeting_locked" val VALIDATE_AUTH_TOKEN = "validate_auth_token_request" val REGISTER_USER = "register_user_request" val USER_JOINING = "user_joining_request"