Rename moderatorRoomUrl and speakerRoomUrl to moderatorUrl and speakerUrl across the codebase
This commit is contained in:
parent
f1fc2e0ba4
commit
5b2b26fef9
@ -6,4 +6,4 @@ description: >
|
|||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
example: 'roomId,moderatorRoomUrl'
|
example: 'roomId,moderatorUrl'
|
||||||
|
|||||||
@ -18,8 +18,8 @@ content:
|
|||||||
enabled: false
|
enabled: false
|
||||||
virtualBackgroundPreferences:
|
virtualBackgroundPreferences:
|
||||||
enabled: true
|
enabled: true
|
||||||
moderatorRoomURL: 'http://localhost:6080/room/room-123?secret=123456'
|
moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
|
||||||
speakerRoomURL: 'http://localhost:6080/room/room-123?secret=654321'
|
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'
|
||||||
|
|
||||||
fields=roomId:
|
fields=roomId:
|
||||||
summary: Response with only the roomId
|
summary: Response with only the roomId
|
||||||
@ -41,8 +41,8 @@ content:
|
|||||||
virtualBackgroundPreferences:
|
virtualBackgroundPreferences:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
fields=moderatorRoomURL,speakerRoomURL:
|
fields=moderatorUrl,speakerUrl:
|
||||||
summary: Response containing only moderator and speaker URLs
|
summary: Response containing only moderator and speaker URLs
|
||||||
value:
|
value:
|
||||||
moderatorRoomURL: 'http://localhost:6080/room/room-123?secret=123456'
|
moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
|
||||||
speakerRoomURL: 'http://localhost:6080/room/room-123?secret=654321'
|
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'
|
||||||
|
|||||||
@ -27,8 +27,8 @@ content:
|
|||||||
enabled: false
|
enabled: false
|
||||||
virtualBackgroundPreferences:
|
virtualBackgroundPreferences:
|
||||||
enabled: true
|
enabled: true
|
||||||
moderatorRoomURL: 'http://localhost:6080/room/room-123?secret=123456'
|
moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
|
||||||
speakerRoomURL: 'http://localhost:6080/room/room-123?secret=654321'
|
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'
|
||||||
- roomId: 'room-456'
|
- roomId: 'room-456'
|
||||||
roomName: 'room'
|
roomName: 'room'
|
||||||
creationDate: 1620001000000
|
creationDate: 1620001000000
|
||||||
@ -40,8 +40,8 @@ content:
|
|||||||
enabled: true
|
enabled: true
|
||||||
virtualBackgroundPreferences:
|
virtualBackgroundPreferences:
|
||||||
enabled: false
|
enabled: false
|
||||||
moderatorRoomURL: 'http://localhost:6080/room/room-456?secret=789012'
|
moderatorUrl: 'http://localhost:6080/room/room-456?secret=789012'
|
||||||
speakerRoomURL: 'http://localhost:6080/room/room-456?secret=210987'
|
speakerUrl: 'http://localhost:6080/room/room-456?secret=210987'
|
||||||
pagination:
|
pagination:
|
||||||
isTruncated: false
|
isTruncated: false
|
||||||
maxItems: 10
|
maxItems: 10
|
||||||
@ -86,14 +86,14 @@ content:
|
|||||||
nextPageToken: 'abc123'
|
nextPageToken: 'abc123'
|
||||||
maxItems: 10
|
maxItems: 10
|
||||||
|
|
||||||
fields=moderatorRoomURL,speakerRoomURL:
|
fields=moderatorUrl,speakerUrl:
|
||||||
summary: Response containing only moderator and speaker URLs
|
summary: Response containing only moderator and speaker URLs
|
||||||
value:
|
value:
|
||||||
rooms:
|
rooms:
|
||||||
- moderatorRoomURL: 'http://localhost:6080/room/room-123?secret=123456'
|
- moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
|
||||||
speakerRoomURL: 'http://localhost:6080/room/room-123?secret=654321'
|
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'
|
||||||
- moderatorRoomURL: 'http://localhost:6080/room/room-456?secret=789012'
|
- moderatorUrl: 'http://localhost:6080/room/room-456?secret=789012'
|
||||||
speakerRoomURL: 'http://localhost:6080/room/room-456?secret=210987'
|
speakerUrl: 'http://localhost:6080/room/room-456?secret=210987'
|
||||||
pagination:
|
pagination:
|
||||||
isTruncated: false
|
isTruncated: false
|
||||||
maxItems: 10
|
maxItems: 10
|
||||||
|
|||||||
@ -39,13 +39,13 @@ properties:
|
|||||||
# description: >
|
# description: >
|
||||||
# The maximum number of participants allowed in the room. If the number of participants exceeds
|
# The maximum number of participants allowed in the room. If the number of participants exceeds
|
||||||
# this limit, new participants will not be allowed to join.
|
# this limit, new participants will not be allowed to join.
|
||||||
moderatorRoomURL:
|
moderatorUrl:
|
||||||
type: string
|
type: string
|
||||||
example: 'http://localhost:6080/room/room-123?secret=123456'
|
example: 'http://localhost:6080/room/room-123?secret=123456'
|
||||||
description: >
|
description: >
|
||||||
The URL for the moderator participants to join the room. The moderator role has special permissions to manage the
|
The URL for the moderator participants to join the room. The moderator role has special permissions to manage the
|
||||||
room and participants.
|
room and participants.
|
||||||
speakerRoomURL:
|
speakerUrl:
|
||||||
type: string
|
type: string
|
||||||
example: 'http://localhost:6080/room/room-123?secret=654321'
|
example: 'http://localhost:6080/room/room-123?secret=654321'
|
||||||
description: >
|
description: >
|
||||||
|
|||||||
56
backend/package-lock.json
generated
56
backend/package-lock.json
generated
@ -896,9 +896,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aws-sdk/util-locate-window": {
|
"node_modules/@aws-sdk/util-locate-window": {
|
||||||
"version": "3.804.0",
|
"version": "3.873.0",
|
||||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.804.0.tgz",
|
"resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.873.0.tgz",
|
||||||
"integrity": "sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==",
|
"integrity": "sha512-xcVhZF6svjM5Rj89T1WzkjQmrTF6dpR2UvIHPMTnSZoNe6CixejPZ6f0JJ2kAhO8H+dUHwNBlsUgOTIKiK/Syg==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
@ -6227,9 +6227,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/browserslist": {
|
"node_modules/browserslist": {
|
||||||
"version": "4.25.2",
|
"version": "4.25.3",
|
||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.2.tgz",
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.3.tgz",
|
||||||
"integrity": "sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==",
|
"integrity": "sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -6247,8 +6247,8 @@
|
|||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"caniuse-lite": "^1.0.30001733",
|
"caniuse-lite": "^1.0.30001735",
|
||||||
"electron-to-chromium": "^1.5.199",
|
"electron-to-chromium": "^1.5.204",
|
||||||
"node-releases": "^2.0.19",
|
"node-releases": "^2.0.19",
|
||||||
"update-browserslist-db": "^1.1.3"
|
"update-browserslist-db": "^1.1.3"
|
||||||
},
|
},
|
||||||
@ -6434,9 +6434,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001735",
|
"version": "1.0.30001737",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001735.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001737.tgz",
|
||||||
"integrity": "sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==",
|
"integrity": "sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -7517,9 +7517,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.5.203",
|
"version": "1.5.208",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.203.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.208.tgz",
|
||||||
"integrity": "sha512-uz4i0vLhfm6dLZWbz/iH88KNDV+ivj5+2SA+utpgjKaj9Q0iDLuwk6Idhe9BTxciHudyx6IvTvijhkPvFGUQ0g==",
|
"integrity": "sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
@ -9652,9 +9652,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/istanbul-reports": {
|
"node_modules/istanbul-reports": {
|
||||||
"version": "3.1.7",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
|
||||||
"integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
|
"integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -12339,13 +12339,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/openapi-generate-html/node_modules/@apidevtools/json-schema-ref-parser": {
|
"node_modules/openapi-generate-html/node_modules/@apidevtools/json-schema-ref-parser": {
|
||||||
"version": "14.1.1",
|
"version": "14.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.2.0.tgz",
|
||||||
"integrity": "sha512-uGF1YGOzzD50L7HLNWclXmsEhQflw8/zZHIz0/AzkJrKL5r9PceUipZxR/cp/8veTk4TVfdDJLyIwXLjaP5ePg==",
|
"integrity": "sha512-NaGMMWwppbByagq+LwQMq6PMXHFWVu6kSwwx+eJfYTJ5zdpOvb9TIk6ZWxEEeXMUvGdVOZq3JalYsjsTZDvtkA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/json-schema": "^7.0.15",
|
|
||||||
"js-yaml": "^4.1.0"
|
"js-yaml": "^4.1.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -12353,6 +12352,9 @@
|
|||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/philsturgeon"
|
"url": "https://github.com/sponsors/philsturgeon"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/json-schema": "^7.0.15"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/openapi-generate-html/node_modules/commander": {
|
"node_modules/openapi-generate-html/node_modules/commander": {
|
||||||
@ -14487,9 +14489,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/uint8array-extras": {
|
"node_modules/uint8array-extras": {
|
||||||
"version": "1.4.1",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz",
|
||||||
"integrity": "sha512-+NWHrac9dvilNgme+gP4YrBSumsaMZP0fNBtXXFIf33RLLKEcBUKaQZ7ULUbS0sBfcjxIZ4V96OTRkCbM7hxpw==",
|
"integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -15043,9 +15045,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/yoctocolors-cjs": {
|
"node_modules/yoctocolors-cjs": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz",
|
||||||
"integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==",
|
"integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|||||||
@ -27,18 +27,18 @@ export class MeetRoomHelper {
|
|||||||
* This method parses the 'secret' query parameter from both speaker and moderator
|
* This method parses the 'secret' query parameter from both speaker and moderator
|
||||||
* room URLs associated with the meeting room.
|
* room URLs associated with the meeting room.
|
||||||
*
|
*
|
||||||
* @param room - The MeetRoom object containing speakerRoomUrl and moderatorRoomUrl properties
|
* @param room - The MeetRoom object containing speakerUrl and moderatorUrl properties
|
||||||
* @returns An object containing the extracted secrets with the following properties:
|
* @returns An object containing the extracted secrets with the following properties:
|
||||||
* - speakerSecret: The secret extracted from the speaker room URL
|
* - speakerSecret: The secret extracted from the speaker room URL
|
||||||
* - moderatorSecret: The secret extracted from the moderator room URL
|
* - moderatorSecret: The secret extracted from the moderator room URL
|
||||||
*/
|
*/
|
||||||
static extractSecretsFromRoom(room: MeetRoom): { speakerSecret: string; moderatorSecret: string } {
|
static extractSecretsFromRoom(room: MeetRoom): { speakerSecret: string; moderatorSecret: string } {
|
||||||
const { speakerRoomUrl, moderatorRoomUrl } = room;
|
const { speakerUrl, moderatorUrl } = room;
|
||||||
|
|
||||||
const speakerUrl = new URL(speakerRoomUrl);
|
const parsedSpeakerUrl = new URL(speakerUrl);
|
||||||
const speakerSecret = speakerUrl.searchParams.get('secret') || '';
|
const speakerSecret = parsedSpeakerUrl.searchParams.get('secret') || '';
|
||||||
const moderatorUrl = new URL(moderatorRoomUrl);
|
const parsedModeratorUrl = new URL(moderatorUrl);
|
||||||
const moderatorSecret = moderatorUrl.searchParams.get('secret') || '';
|
const moderatorSecret = parsedModeratorUrl.searchParams.get('secret') || '';
|
||||||
return { speakerSecret, moderatorSecret };
|
return { speakerSecret, moderatorSecret };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -81,8 +81,8 @@ export class RoomService {
|
|||||||
// maxParticipants,
|
// maxParticipants,
|
||||||
autoDeletionDate,
|
autoDeletionDate,
|
||||||
preferences,
|
preferences,
|
||||||
moderatorRoomUrl: `${baseUrl}/room/${roomId}?secret=${secureUid(10)}`,
|
moderatorUrl: `${baseUrl}/room/${roomId}?secret=${secureUid(10)}`,
|
||||||
speakerRoomUrl: `${baseUrl}/room/${roomId}?secret=${secureUid(10)}`
|
speakerUrl: `${baseUrl}/room/${roomId}?secret=${secureUid(10)}`
|
||||||
};
|
};
|
||||||
|
|
||||||
await this.storageService.saveMeetRoom(meetRoom);
|
await this.storageService.saveMeetRoom(meetRoom);
|
||||||
@ -197,9 +197,9 @@ export class RoomService {
|
|||||||
|
|
||||||
const filteredRoom = UtilsHelper.filterObjectFields(meetRoom, fields);
|
const filteredRoom = UtilsHelper.filterObjectFields(meetRoom, fields);
|
||||||
|
|
||||||
// Remove moderatorRoomUrl if the participant is a speaker to prevent access to moderator links
|
// Remove moderatorUrl if the participant is a speaker to prevent access to moderator links
|
||||||
if (participantRole === ParticipantRole.SPEAKER) {
|
if (participantRole === ParticipantRole.SPEAKER) {
|
||||||
delete filteredRoom.moderatorRoomUrl;
|
delete filteredRoom.moderatorUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
return filteredRoom as MeetRoom;
|
return filteredRoom as MeetRoom;
|
||||||
|
|||||||
@ -311,8 +311,8 @@ export class MeetStorageService<
|
|||||||
}
|
}
|
||||||
|
|
||||||
const archivedRoom: Partial<MRoom> = {
|
const archivedRoom: Partial<MRoom> = {
|
||||||
moderatorRoomUrl: room.moderatorRoomUrl,
|
moderatorUrl: room.moderatorUrl,
|
||||||
speakerRoomUrl: room.speakerRoomUrl,
|
speakerUrl: room.speakerUrl,
|
||||||
preferences: {
|
preferences: {
|
||||||
recordingPreferences: room.preferences?.recordingPreferences
|
recordingPreferences: room.preferences?.recordingPreferences
|
||||||
}
|
}
|
||||||
|
|||||||
@ -138,10 +138,10 @@ export const expectValidRoom = (
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
expect(room.moderatorRoomUrl).toBeDefined();
|
expect(room.moderatorUrl).toBeDefined();
|
||||||
expect(room.speakerRoomUrl).toBeDefined();
|
expect(room.speakerUrl).toBeDefined();
|
||||||
expect(room.moderatorRoomUrl).toContain(room.roomId);
|
expect(room.moderatorUrl).toContain(room.roomId);
|
||||||
expect(room.speakerRoomUrl).toContain(room.roomId);
|
expect(room.speakerUrl).toContain(room.roomId);
|
||||||
|
|
||||||
if (markedForDeletion !== undefined) {
|
if (markedForDeletion !== undefined) {
|
||||||
expect(room.autoDeletionDate).toBeDefined();
|
expect(room.autoDeletionDate).toBeDefined();
|
||||||
|
|||||||
@ -181,14 +181,14 @@ describe('Recording API Tests', () => {
|
|||||||
let roomMetadata = await meetStorageService.getArchivedRoomMetadata(room.roomId);
|
let roomMetadata = await meetStorageService.getArchivedRoomMetadata(room.roomId);
|
||||||
|
|
||||||
expect(roomMetadata).toBeDefined();
|
expect(roomMetadata).toBeDefined();
|
||||||
expect(roomMetadata!.moderatorRoomUrl).toContain(room.roomId);
|
expect(roomMetadata!.moderatorUrl).toContain(room.roomId);
|
||||||
expect(roomMetadata!.speakerRoomUrl).toContain(room.roomId);
|
expect(roomMetadata!.speakerUrl).toContain(room.roomId);
|
||||||
|
|
||||||
roomMetadata = await meetStorageService.getArchivedRoomMetadata(room.roomId);
|
roomMetadata = await meetStorageService.getArchivedRoomMetadata(room.roomId);
|
||||||
|
|
||||||
expect(roomMetadata).toBeDefined();
|
expect(roomMetadata).toBeDefined();
|
||||||
expect(roomMetadata!.moderatorRoomUrl).toContain(room.roomId);
|
expect(roomMetadata!.moderatorUrl).toContain(room.roomId);
|
||||||
expect(roomMetadata!.speakerRoomUrl).toContain(room.roomId);
|
expect(roomMetadata!.speakerUrl).toContain(room.roomId);
|
||||||
|
|
||||||
const response = await startRecording(room.roomId, moderatorCookie);
|
const response = await startRecording(room.roomId, moderatorCookie);
|
||||||
expectValidStartRecordingResponse(response, room.roomId, room.roomName);
|
expectValidStartRecordingResponse(response, room.roomId, room.roomName);
|
||||||
|
|||||||
@ -73,8 +73,8 @@ describe('Recording API Tests', () => {
|
|||||||
// Check that the room metadata exists after starting the first recording
|
// Check that the room metadata exists after starting the first recording
|
||||||
let roomMetadata = await meetStorageService.getArchivedRoomMetadata(room.roomId);
|
let roomMetadata = await meetStorageService.getArchivedRoomMetadata(room.roomId);
|
||||||
expect(roomMetadata).toBeDefined();
|
expect(roomMetadata).toBeDefined();
|
||||||
expect(roomMetadata!.moderatorRoomUrl).toContain(room.roomId);
|
expect(roomMetadata!.moderatorUrl).toContain(room.roomId);
|
||||||
expect(roomMetadata!.speakerRoomUrl).toContain(room.roomId);
|
expect(roomMetadata!.speakerUrl).toContain(room.roomId);
|
||||||
|
|
||||||
// Generate a new recording
|
// Generate a new recording
|
||||||
const response = await startRecording(room.roomId, moderatorCookie);
|
const response = await startRecording(room.roomId, moderatorCookie);
|
||||||
@ -90,8 +90,8 @@ describe('Recording API Tests', () => {
|
|||||||
roomMetadata = await meetStorageService.getArchivedRoomMetadata(room.roomId);
|
roomMetadata = await meetStorageService.getArchivedRoomMetadata(room.roomId);
|
||||||
|
|
||||||
expect(roomMetadata).toBeDefined();
|
expect(roomMetadata).toBeDefined();
|
||||||
expect(roomMetadata!.moderatorRoomUrl).toContain(room.roomId);
|
expect(roomMetadata!.moderatorUrl).toContain(room.roomId);
|
||||||
expect(roomMetadata!.speakerRoomUrl).toContain(room.roomId);
|
expect(roomMetadata!.speakerUrl).toContain(room.roomId);
|
||||||
|
|
||||||
// Delete the second recording
|
// Delete the second recording
|
||||||
deleteResponse = await deleteRecording(secondRecordingId!);
|
deleteResponse = await deleteRecording(secondRecordingId!);
|
||||||
|
|||||||
@ -71,8 +71,8 @@ describe('Recording API Tests', () => {
|
|||||||
|
|
||||||
const archivedRoom = await storageService.getArchivedRoomMetadata(room.roomId);
|
const archivedRoom = await storageService.getArchivedRoomMetadata(room.roomId);
|
||||||
expect(archivedRoom).toBeDefined();
|
expect(archivedRoom).toBeDefined();
|
||||||
expect(archivedRoom?.moderatorRoomUrl).toBeDefined();
|
expect(archivedRoom?.moderatorUrl).toBeDefined();
|
||||||
expect(archivedRoom?.speakerRoomUrl).toBeDefined();
|
expect(archivedRoom?.speakerUrl).toBeDefined();
|
||||||
expect(archivedRoom?.preferences).toBeDefined();
|
expect(archivedRoom?.preferences).toBeDefined();
|
||||||
|
|
||||||
const secretsResponse = await stopRecording(recordingId, moderatorCookie);
|
const secretsResponse = await stopRecording(recordingId, moderatorCookie);
|
||||||
|
|||||||
@ -97,7 +97,7 @@ describe('Room API Tests', () => {
|
|||||||
expectSuccessRoomResponse(response, 'deletion-date', validAutoDeletionDate);
|
expectSuccessRoomResponse(response, 'deletion-date', validAutoDeletionDate);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should retrieve a room without moderatorRoomUrl when participant is speaker', async () => {
|
it('should retrieve a room without moderatorUrl when participant is speaker', async () => {
|
||||||
const roomData = await setupSingleRoom();
|
const roomData = await setupSingleRoom();
|
||||||
const response = await getRoom(
|
const response = await getRoom(
|
||||||
roomData.room.roomId,
|
roomData.room.roomId,
|
||||||
@ -106,7 +106,7 @@ describe('Room API Tests', () => {
|
|||||||
ParticipantRole.SPEAKER
|
ParticipantRole.SPEAKER
|
||||||
);
|
);
|
||||||
expect(response.status).toBe(200);
|
expect(response.status).toBe(200);
|
||||||
expect(response.body.moderatorRoomUrl).toBeUndefined();
|
expect(response.body.moderatorUrl).toBeUndefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return 404 for a non-existent room', async () => {
|
it('should return 404 for a non-existent room', async () => {
|
||||||
|
|||||||
@ -130,8 +130,8 @@ export class RoomWizardComponent implements OnInit {
|
|||||||
async createRoom(roomName?: string) {
|
async createRoom(roomName?: string) {
|
||||||
try {
|
try {
|
||||||
// Call the room service to create a new room
|
// Call the room service to create a new room
|
||||||
const { moderatorRoomUrl } = await this.roomService.createRoom({ roomName });
|
const { moderatorUrl } = await this.roomService.createRoom({ roomName });
|
||||||
await this.navigationService.redirectTo(moderatorRoomUrl);
|
await this.navigationService.redirectTo(moderatorUrl);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const errorMessage = `Failed to create room ${roomName}`;
|
const errorMessage = `Failed to create room ${roomName}`;
|
||||||
this.notificationService.showSnackbar(errorMessage);
|
this.notificationService.showSnackbar(errorMessage);
|
||||||
@ -157,8 +157,8 @@ export class RoomWizardComponent implements OnInit {
|
|||||||
this.notificationService.showSnackbar('Room updated successfully');
|
this.notificationService.showSnackbar('Room updated successfully');
|
||||||
} else {
|
} else {
|
||||||
// Create new room
|
// Create new room
|
||||||
const { moderatorRoomUrl } = await this.roomService.createRoom(roomOptions);
|
const { moderatorUrl } = await this.roomService.createRoom(roomOptions);
|
||||||
await this.navigationService.redirectTo(moderatorRoomUrl);
|
await this.navigationService.redirectTo(moderatorUrl);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const errorMessage = `Failed to ${this.editMode ? 'update' : 'create'} room`;
|
const errorMessage = `Failed to ${this.editMode ? 'update' : 'create'} room`;
|
||||||
|
|||||||
@ -233,7 +233,7 @@ export class RoomsComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private openRoom(room: MeetRoom) {
|
private openRoom(room: MeetRoom) {
|
||||||
window.open(room.moderatorRoomUrl, '_blank');
|
window.open(room.moderatorUrl, '_blank');
|
||||||
}
|
}
|
||||||
|
|
||||||
private async editRoomPreferences(room: MeetRoom) {
|
private async editRoomPreferences(room: MeetRoom) {
|
||||||
@ -254,12 +254,12 @@ export class RoomsComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private copyModeratorLink(room: MeetRoom) {
|
private copyModeratorLink(room: MeetRoom) {
|
||||||
this.clipboard.copy(room.moderatorRoomUrl);
|
this.clipboard.copy(room.moderatorUrl);
|
||||||
this.notificationService.showSnackbar('Moderator link copied to clipboard');
|
this.notificationService.showSnackbar('Moderator link copied to clipboard');
|
||||||
}
|
}
|
||||||
|
|
||||||
private copySpeakerLink(room: MeetRoom) {
|
private copySpeakerLink(room: MeetRoom) {
|
||||||
this.clipboard.copy(room.speakerRoomUrl);
|
this.clipboard.copy(room.speakerUrl);
|
||||||
this.notificationService.showSnackbar('Speaker link copied to clipboard');
|
this.notificationService.showSnackbar('Speaker link copied to clipboard');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -519,11 +519,7 @@ export class MeetingComponent implements OnInit {
|
|||||||
if (!this.participantService.isModeratorParticipant()) return;
|
if (!this.participantService.isModeratorParticipant()) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this.meetingService.changeParticipantRole(
|
await this.meetingService.changeParticipantRole(this.roomId, participant.identity, ParticipantRole.SPEAKER);
|
||||||
this.roomId,
|
|
||||||
participant.identity,
|
|
||||||
ParticipantRole.SPEAKER
|
|
||||||
);
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error unmaking participant moderator:', error);
|
console.error('Error unmaking participant moderator:', error);
|
||||||
this.notificationService.showSnackbar('Failed to unmake participant moderator');
|
this.notificationService.showSnackbar('Failed to unmake participant moderator');
|
||||||
@ -531,12 +527,12 @@ export class MeetingComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async copyModeratorLink() {
|
async copyModeratorLink() {
|
||||||
this.clipboard.copy(this.room!.moderatorRoomUrl);
|
this.clipboard.copy(this.room!.moderatorUrl);
|
||||||
this.notificationService.showSnackbar('Moderator link copied to clipboard');
|
this.notificationService.showSnackbar('Moderator link copied to clipboard');
|
||||||
}
|
}
|
||||||
|
|
||||||
async copySpeakerLink() {
|
async copySpeakerLink() {
|
||||||
this.clipboard.copy(this.room!.speakerRoomUrl);
|
this.clipboard.copy(this.room!.speakerUrl);
|
||||||
this.notificationService.showSnackbar('Speaker link copied to clipboard');
|
this.notificationService.showSnackbar('Speaker link copied to clipboard');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -68,7 +68,7 @@
|
|||||||
<input
|
<input
|
||||||
type="hidden"
|
type="hidden"
|
||||||
name="roomUrl"
|
name="roomUrl"
|
||||||
value="{{ moderatorRoomUrl }}"
|
value="{{ moderatorUrl }}"
|
||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
type="hidden"
|
type="hidden"
|
||||||
@ -91,7 +91,7 @@
|
|||||||
<input
|
<input
|
||||||
type="hidden"
|
type="hidden"
|
||||||
name="roomUrl"
|
name="roomUrl"
|
||||||
value="{{ speakerRoomUrl }}"
|
value="{{ speakerUrl }}"
|
||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
type="hidden"
|
type="hidden"
|
||||||
@ -115,7 +115,7 @@
|
|||||||
<input
|
<input
|
||||||
type="hidden"
|
type="hidden"
|
||||||
name="roomUrl"
|
name="roomUrl"
|
||||||
value="{{ moderatorRoomUrl }}"
|
value="{{ moderatorUrl }}"
|
||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
type="hidden"
|
type="hidden"
|
||||||
|
|||||||
@ -20,8 +20,8 @@ export interface MeetRoom extends BaseRoomOptions {
|
|||||||
roomId: string;
|
roomId: string;
|
||||||
roomName: string;
|
roomName: string;
|
||||||
creationDate: number;
|
creationDate: number;
|
||||||
moderatorRoomUrl: string;
|
moderatorUrl: string;
|
||||||
speakerRoomUrl: string;
|
speakerUrl: string;
|
||||||
markedForDeletion?: boolean;
|
markedForDeletion?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user