UNPKG

@hmcts/media-viewer

Version:
73 lines 9.14 kB
import { Injectable } from '@angular/core'; import { IcpEvents } from './icp.events'; import * as i0 from "@angular/core"; import * as i1 from "./socket.service"; export class IcpUpdateService { constructor(socket) { this.socket = socket; } joinSession(username, session, token) { this.session = session; this.socket.connect(`${session.connectionUrl}?access_token=${token}`, session); if (this.joinSessionSubscription) { this.joinSessionSubscription.unsubscribe(); } this.joinSessionSubscription = this.socket.connected().subscribe(isConnected => { if (isConnected) { this.socket.join({ ...this.session, username }); } }); return this.socket.listen(IcpEvents.SESSION_JOINED); } leaveSession() { if (this.joinSessionSubscription) { this.joinSessionSubscription.unsubscribe(); this.joinSessionSubscription = null; } this.socket.leave(this.session); } newParticipantJoined() { return this.socket.listen(IcpEvents.NEW_PARTICIPANT_JOINED); } clientDisconnected() { return this.socket.listen(IcpEvents.CLIENT_DISCONNECTED); } removeParticipant(participantId) { this.socket.emit(IcpEvents.REMOVE_PARTICIPANT, { participantId: participantId, caseId: this.session.caseId, documentId: this.session.documentId }); } participantListUpdated() { return this.socket.listen(IcpEvents.PARTICIPANTS_UPDATED); } updatePresenter(presenter) { this.socket.emit(IcpEvents.UPDATE_PRESENTER, { ...this.session, presenterId: presenter.id, presenterName: presenter.username }); } presenterUpdated() { return this.socket.listen(IcpEvents.PRESENTER_UPDATED); } updateScreen(screen) { const update = { body: screen, caseId: this.session.caseId, documentId: this.session.documentId }; this.socket.emit(IcpEvents.UPDATE_SCREEN, update); } screenUpdated() { return this.socket.listen(IcpEvents.SCREEN_UPDATED); } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpUpdateService, deps: [{ token: i1.SocketService }], target: i0.ɵɵFactoryTarget.Injectable }); } /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpUpdateService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpUpdateService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.SocketService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLXVwZGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvaWNwL2ljcC11cGRhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUd6QyxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQW9CLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7SUFBSSxDQUFDO0lBSTlDLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE9BQW1CLEVBQUUsS0FBYTtRQUM5RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxhQUFhLGlCQUFpQixLQUFLLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzdFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsYUFBYTtRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUU7WUFDN0MsYUFBYSxFQUFFLGFBQWE7WUFDNUIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQXlCO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtZQUMzQyxHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3pCLGFBQWEsRUFBRSxTQUFTLENBQUMsUUFBUTtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQXVCO1FBQ2xDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsSUFBSSxFQUFFLE1BQU07WUFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7U0FDcEMsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxDQUFDO2tJQXpFVSxnQkFBZ0I7c0lBQWhCLGdCQUFnQixjQURILE1BQU07OzRGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU29ja2V0U2VydmljZSB9IGZyb20gJy4vc29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwUGFydGljaXBhbnQsIEljcFNjcmVlblVwZGF0ZSwgSWNwU2Vzc2lvbiB9IGZyb20gJy4vaWNwLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgSWNwRXZlbnRzIH0gZnJvbSAnLi9pY3AuZXZlbnRzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJY3BVcGRhdGVTZXJ2aWNlIHtcblxuICBzZXNzaW9uOiBJY3BTZXNzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc29ja2V0OiBTb2NrZXRTZXJ2aWNlKSB7IH1cblxuICBwcml2YXRlIGpvaW5TZXNzaW9uU3Vic2NyaXB0aW9uOiBhbnk7XG5cbiAgam9pblNlc3Npb24odXNlcm5hbWU6IHN0cmluZywgc2Vzc2lvbjogSWNwU2Vzc2lvbiwgdG9rZW46IHN0cmluZykge1xuICAgIHRoaXMuc2Vzc2lvbiA9IHNlc3Npb247XG4gICAgdGhpcy5zb2NrZXQuY29ubmVjdChgJHtzZXNzaW9uLmNvbm5lY3Rpb25Vcmx9P2FjY2Vzc190b2tlbj0ke3Rva2VufWAsIHNlc3Npb24pO1xuICAgIGlmICh0aGlzLmpvaW5TZXNzaW9uU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmpvaW5TZXNzaW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuam9pblNlc3Npb25TdWJzY3JpcHRpb24gPSB0aGlzLnNvY2tldC5jb25uZWN0ZWQoKS5zdWJzY3JpYmUoaXNDb25uZWN0ZWQgPT4ge1xuICAgICAgaWYgKGlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuc29ja2V0LmpvaW4oeyAuLi50aGlzLnNlc3Npb24sIHVzZXJuYW1lIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLnNvY2tldC5saXN0ZW4oSWNwRXZlbnRzLlNFU1NJT05fSk9JTkVEKTtcbiAgfVxuXG4gIGxlYXZlU2Vzc2lvbigpIHtcbiAgICBpZiAodGhpcy5qb2luU2Vzc2lvblN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5qb2luU2Vzc2lvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5qb2luU2Vzc2lvblN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuc29ja2V0LmxlYXZlKHRoaXMuc2Vzc2lvbik7XG4gIH1cblxuICBuZXdQYXJ0aWNpcGFudEpvaW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXQubGlzdGVuKEljcEV2ZW50cy5ORVdfUEFSVElDSVBBTlRfSk9JTkVEKTtcbiAgfVxuXG4gIGNsaWVudERpc2Nvbm5lY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXQubGlzdGVuKEljcEV2ZW50cy5DTElFTlRfRElTQ09OTkVDVEVEKTtcbiAgfVxuXG4gIHJlbW92ZVBhcnRpY2lwYW50KHBhcnRpY2lwYW50SWQpIHtcbiAgICB0aGlzLnNvY2tldC5lbWl0KEljcEV2ZW50cy5SRU1PVkVfUEFSVElDSVBBTlQsIHtcbiAgICAgIHBhcnRpY2lwYW50SWQ6IHBhcnRpY2lwYW50SWQsXG4gICAgICBjYXNlSWQ6IHRoaXMuc2Vzc2lvbi5jYXNlSWQsXG4gICAgICBkb2N1bWVudElkOiB0aGlzLnNlc3Npb24uZG9jdW1lbnRJZFxuICAgIH0pO1xuICB9XG5cbiAgcGFydGljaXBhbnRMaXN0VXBkYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXQubGlzdGVuKEljcEV2ZW50cy5QQVJUSUNJUEFOVFNfVVBEQVRFRCk7XG4gIH1cblxuICB1cGRhdGVQcmVzZW50ZXIocHJlc2VudGVyOiBJY3BQYXJ0aWNpcGFudCkge1xuICAgIHRoaXMuc29ja2V0LmVtaXQoSWNwRXZlbnRzLlVQREFURV9QUkVTRU5URVIsIHtcbiAgICAgIC4uLnRoaXMuc2Vzc2lvbixcbiAgICAgIHByZXNlbnRlcklkOiBwcmVzZW50ZXIuaWQsXG4gICAgICBwcmVzZW50ZXJOYW1lOiBwcmVzZW50ZXIudXNlcm5hbWVcbiAgICB9KTtcbiAgfVxuXG4gIHByZXNlbnRlclVwZGF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ja2V0Lmxpc3RlbihJY3BFdmVudHMuUFJFU0VOVEVSX1VQREFURUQpO1xuICB9XG5cbiAgdXBkYXRlU2NyZWVuKHNjcmVlbjogSWNwU2NyZWVuVXBkYXRlKSB7XG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgYm9keTogc2NyZWVuLFxuICAgICAgY2FzZUlkOiB0aGlzLnNlc3Npb24uY2FzZUlkLFxuICAgICAgZG9jdW1lbnRJZDogdGhpcy5zZXNzaW9uLmRvY3VtZW50SWRcbiAgICB9O1xuICAgIHRoaXMuc29ja2V0LmVtaXQoSWNwRXZlbnRzLlVQREFURV9TQ1JFRU4sIHVwZGF0ZSk7XG4gIH1cblxuICBzY3JlZW5VcGRhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLnNvY2tldC5saXN0ZW4oSWNwRXZlbnRzLlNDUkVFTl9VUERBVEVEKTtcbiAgfVxufVxuIl19