frontend: remove HttpService dependency from VideoRoomComponent and move getSecrets method to RoomService
This commit is contained in:
parent
2aa3bc1177
commit
df0089c323
@ -21,7 +21,6 @@ import { OutboundEventMessage } from 'webcomponent/src/models/message.type';
|
||||
import {
|
||||
AuthService,
|
||||
ContextService,
|
||||
HttpService,
|
||||
RoomService,
|
||||
SessionStorageService,
|
||||
WebComponentManagerService
|
||||
@ -85,7 +84,6 @@ export class VideoRoomComponent implements OnInit, OnDestroy {
|
||||
};
|
||||
|
||||
constructor(
|
||||
protected httpService: HttpService,
|
||||
protected navigationService: NavigationService,
|
||||
protected participantTokenService: ParticipantTokenService,
|
||||
protected recManagerService: RecordingManagerService,
|
||||
@ -203,7 +201,7 @@ export class VideoRoomComponent implements OnInit, OnDestroy {
|
||||
// and replace the secret in the URL with the publisher secret
|
||||
if (this.participantRole === ParticipantRole.MODERATOR) {
|
||||
try {
|
||||
const { moderatorSecret, publisherSecret } = await this.getRoomSecrets();
|
||||
const { moderatorSecret, publisherSecret } = await this.roomService.getSecrets(this.roomId);
|
||||
this.sessionStorageService.setModeratorSecret(this.roomId, moderatorSecret);
|
||||
secretQueryParam = publisherSecret;
|
||||
} catch (error) {
|
||||
@ -218,16 +216,6 @@ export class VideoRoomComponent implements OnInit, OnDestroy {
|
||||
});
|
||||
}
|
||||
|
||||
private async getRoomSecrets(): Promise<{ moderatorSecret: string; publisherSecret: string }> {
|
||||
const { moderatorRoomUrl, publisherRoomUrl } = await this.httpService.getRoom(this.roomId);
|
||||
|
||||
const publisherUrl = new URL(publisherRoomUrl);
|
||||
const publisherSecret = publisherUrl.searchParams.get('secret') || '';
|
||||
const moderatorUrl = new URL(moderatorRoomUrl);
|
||||
const moderatorSecret = moderatorUrl.searchParams.get('secret') || '';
|
||||
return { publisherSecret, moderatorSecret };
|
||||
}
|
||||
|
||||
async goToRecordings() {
|
||||
await this.navigationService.goToRecordings(this.roomId, this.roomSecret);
|
||||
}
|
||||
|
||||
@ -49,6 +49,27 @@ export class RoomService {
|
||||
return this.roomPreferences;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the moderator and publisher secrets for a specified room.
|
||||
*
|
||||
* This method fetches room information and extracts the secret parameters
|
||||
* from the moderator and publisher room URLs.
|
||||
*
|
||||
* @param roomId - The unique identifier of the room
|
||||
* @returns A promise that resolves to an object containing both secrets
|
||||
* @returns moderatorSecret - The secret parameter extracted from the moderator room URL
|
||||
* @returns publisherSecret - The secret parameter extracted from the publisher room URL
|
||||
*/
|
||||
async getSecrets(roomId: string): Promise<{ moderatorSecret: string; publisherSecret: string }> {
|
||||
const { moderatorRoomUrl, publisherRoomUrl } = await this.httpService.getRoom(roomId);
|
||||
|
||||
const publisherUrl = new URL(publisherRoomUrl);
|
||||
const publisherSecret = publisherUrl.searchParams.get('secret') || '';
|
||||
const moderatorUrl = new URL(moderatorRoomUrl);
|
||||
const moderatorSecret = moderatorUrl.searchParams.get('secret') || '';
|
||||
return { publisherSecret, moderatorSecret };
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the room preferences.
|
||||
*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user