UNPKG

roadofcloud-playback-sdk

Version:

CloudHubPlaybackSdk

64 lines (63 loc) 2.03 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const global_1 = __importDefault(require("../global")); class RoomController { constructor() { this.filename = null; this.fileUrl = null; this.users = []; } static getInstance() { if (!this.instance) { this.instance = new RoomController(); } return this.instance; } getRoomContent(filename = 'room.json') { return new Promise((resolve, reject) => { this.fileUrl = global_1.default.config.recordRootUrl + '/' + filename; this.filename = filename; // 检查是否存在 room 文件 fetch(this.fileUrl).then(response => { if (!response.ok || response.status !== 200) { reject('file not found'); } response.json().then(data => { // 批量赋值 for (let key in data) { // @ts-ignore this[key] = data[key]; } resolve(true); }).catch(() => { reject('parser room.json fail'); }); }).catch(error => { reject(error); }); }); } //获取所有用户 getUsers() { return this.users; } getUser(id) { return this.users.find((item) => item.id === id); } setUser(user) { this.users.push(user); } delUser(id) { let index = this.getUserIndex(id); if (index >= 0) { this.users.splice(index, 1); } } getUserIndex(id) { return this.users.findIndex((item) => item.id === id); } } exports.default = RoomController.getInstance();