Skip to content

Commit

Permalink
Added new property redirectOnJoin to CreateBreakoutRoomsRequest.
Browse files Browse the repository at this point in the history
  • Loading branch information
GhaziTriki committed Oct 14, 2016
1 parent c694f63 commit 415e34f
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 23 deletions.
Expand Up @@ -25,7 +25,7 @@ object UserMessagesProtocol extends DefaultJsonProtocol {
}

implicit val breakoutRoomInPayloadFormat = jsonFormat3(BreakoutRoomInPayload)
implicit val createBreakoutRoomsFormat = jsonFormat4(CreateBreakoutRooms)
implicit val createBreakoutRoomsFormat = jsonFormat5(CreateBreakoutRooms)
implicit val breakoutRoomsListMessageFormat = jsonFormat1(BreakoutRoomsListMessage)
implicit val requestBreakoutJoinURLInMessageFormat = jsonFormat4(RequestBreakoutJoinURLInMessage)
implicit val transferUserToMeetingRequestFormat = jsonFormat3(TransferUserToMeetingRequest)
Expand Down
Expand Up @@ -42,7 +42,7 @@ case class LockSetting(meetingID: String, locked: Boolean, settings: Map[String,
// Sent by user to request the breakout rooms list of a room
case class BreakoutRoomsListMessage(meetingId: String) extends InMessage
// Sent by user to request creation of breakout rooms
case class CreateBreakoutRooms(meetingId: String, durationInMinutes: Int, record: Boolean, rooms: Vector[BreakoutRoomInPayload]) extends InMessage
case class CreateBreakoutRooms(meetingId: String, durationInMinutes: Int, record: Boolean, redirectOnJoin: Boolean, rooms: Vector[BreakoutRoomInPayload]) extends InMessage
case class BreakoutRoomInPayload(name: String, sequence: Int, users: Vector[String])
// Sent by user to request for a join URL in order to be able to join a breakout room
case class RequestBreakoutJoinURLInMessage(meetingId: String, breakoutMeetingId: String, userId: String, redirect: Boolean) extends InMessage
Expand Down
Expand Up @@ -44,6 +44,7 @@ trait BreakoutRoomApp extends SystemConfiguration {
val sourcePresentationId = if (!presModel.getCurrentPresentation().isEmpty) presModel.getCurrentPresentation().get.id else "blank"
val sourcePresentationSlide = if (!presModel.getCurrentPage().isEmpty) presModel.getCurrentPage().get.num else 0
breakoutModel.pendingRoomsNumber = msg.rooms.length;
breakoutModel.redirectOnJoin = msg.redirectOnJoin;

for (room <- msg.rooms) {
i += 1
Expand Down Expand Up @@ -90,8 +91,7 @@ trait BreakoutRoomApp extends SystemConfiguration {
breakoutModel.getAssignedUsers(room.id) foreach { users =>
users.foreach { u =>
log.debug("Sending Join URL for users");
// @fixme: to refactor with CreateBreakoutRooms
sendJoinURL(u, room.externalMeetingId, true)
sendJoinURL(u, room.externalMeetingId, breakoutModel.redirectOnJoin)
}
}
}
Expand Down
Expand Up @@ -10,6 +10,7 @@ class BreakoutRoomModel {
private var rooms = new collection.immutable.HashMap[String, BreakoutRoom]

var pendingRoomsNumber: Integer = 0
var redirectOnJoin: Boolean = false

def add(room: BreakoutRoom): BreakoutRoom = {
rooms += room.id -> room
Expand Down
Expand Up @@ -3,21 +3,24 @@
import java.util.ArrayList;

public class CreateBreakoutRoomsRequestPayload {
// The main meeting internal id
public final String meetingId;
// The list of breakout rooms
public final ArrayList<BreakoutRoomRequestPayload> rooms;
// The duration of the breakout room
public final Integer durationInMinutes;
// Breakout rooms recording option
public final Boolean record;
// The main meeting internal id
public final String meetingId;
// The list of breakout rooms
public final ArrayList<BreakoutRoomRequestPayload> rooms;
// The duration of the breakout room
public final Integer durationInMinutes;
// Breakout rooms recording option
public final Boolean record;
// Creates join URL with redirect value true or false
public final Boolean redirectOnJoin;

public CreateBreakoutRoomsRequestPayload(String meetingId,
ArrayList<BreakoutRoomRequestPayload> breakoutRooms,
Integer duration, Boolean record) {
this.meetingId = meetingId;
this.rooms = breakoutRooms;
this.durationInMinutes = duration;
this.record = record;
}
public CreateBreakoutRoomsRequestPayload(String meetingId,
ArrayList<BreakoutRoomRequestPayload> breakoutRooms,
Integer duration, Boolean record, Boolean redirectOnJoin) {
this.meetingId = meetingId;
this.rooms = breakoutRooms;
this.durationInMinutes = duration;
this.record = record;
this.redirectOnJoin = redirectOnJoin;
}
}
Expand Up @@ -15,6 +15,7 @@ public void testCreateBreakoutRoomsRequest() {
String meetingId = "abc123";
Integer durationInMinutes = 20;
Boolean record = true;
Boolean redirectOnJoin = false;

ArrayList<String> room1Users = new ArrayList<String>();
room1Users.add("Tidora"); room1Users.add("Nidora"); room1Users.add("Tinidora");
Expand All @@ -31,7 +32,7 @@ public void testCreateBreakoutRoomsRequest() {
ArrayList<BreakoutRoomRequestPayload> rooms = new ArrayList<BreakoutRoomRequestPayload>();
rooms.add(room1); rooms.add(room2); rooms.add(room3);

CreateBreakoutRoomsRequestPayload payload = new CreateBreakoutRoomsRequestPayload(meetingId, rooms, durationInMinutes, record);
CreateBreakoutRoomsRequestPayload payload = new CreateBreakoutRoomsRequestPayload(meetingId, rooms, durationInMinutes, record, redirectOnJoin);
CreateBreakoutRoomsRequest msg = new CreateBreakoutRoomsRequest(payload);
Gson gson = new Gson();
String json = gson.toJson(msg);
Expand Down
Expand Up @@ -199,7 +199,7 @@ package org.bigbluebutton.main.model.users
}

public function createBreakoutRooms(e:BreakoutRoomEvent):void{
sender.createBreakoutRooms(_conferenceParameters.meetingID, e.rooms, e.durationInMinutes, e.record);
sender.createBreakoutRooms(_conferenceParameters.meetingID, e.rooms, e.durationInMinutes, e.record, true);
}

public function requestBreakoutJoinUrl(e:BreakoutRoomEvent):void{
Expand Down
Expand Up @@ -87,12 +87,13 @@ package org.bigbluebutton.modules.users.services
);
}

public function createBreakoutRooms(meetingId:String, rooms:Array, durationInMinutes:int, record:Boolean):void {
public function createBreakoutRooms(meetingId:String, rooms:Array, durationInMinutes:int, record:Boolean, redirectOnJoin:Boolean):void {
var message:Object = new Object();
message["meetingId"] = meetingId;
message["rooms"] = rooms;
message["durationInMinutes"] = durationInMinutes;
message["record"] = record;
message["redirectOnJoin"] = redirectOnJoin;
var jsonMsg:String = JSON.stringify(message);

var _nc:ConnectionManager = BBB.initConnectionManager();
Expand Down

0 comments on commit 415e34f

Please sign in to comment.