import AgoraRTC, { ILocalAudioTrack, ILocalVideoTrack } from "agora-rtc-sdk-ng"; import { ActionParams } from "../action/type/ActionParams"; import { ChangeModuleConfigParams } from "../action/type/ChangeModuleConfigParams"; import { RegionChangeActionParams } from "../action/type/RegionChangeActionParams"; import { ToggleVoiceActionParams } from "../action/type/ToggleVoiceActionParams"; import { Context } from "../context/Context"; import { CustomError } from "../exception/CustomError"; import { ErrorType } from "../exception/enum/ErrorType"; import { BaseOperation } from "./base/BaseOperation"; import { EOperationStatus } from "./enum/EOperationStatus"; import { EOperationType } from "./enum/EOperationType"; import { IOperation } from "./interface/IOperation"; const parseError = require('parse-error'); export class ChangeModuleConfigOperation extends BaseOperation implements IOperation { constructor(context: Context){ super(context); this.type=EOperationType.MUTE_AUDIO; } /*@overwrite*/ public async handler(params ? : ActionParams) : Promise{ return new Promise( async (resolve, reject)=>{ try { this.context.getDeterminants().setUpdating(true); let changeModuleConfigParams : ChangeModuleConfigParams = Object.assign(params ? params : {}); if(changeModuleConfigParams.uid) this.context.getDeterminants().setUid(changeModuleConfigParams.uid); if(changeModuleConfigParams.app_id) this.context.getDeterminants().setAppId(changeModuleConfigParams.app_id); if(changeModuleConfigParams.client_config) this.context.getResources().setConfigClient(changeModuleConfigParams.client_config); if(changeModuleConfigParams.user) this.context.getDeterminants().setUserInformation(changeModuleConfigParams.user); this.status = EOperationStatus.PERFORMED; } catch (error) { this.addError(error); this.status = EOperationStatus.FAILED; } resolve(this.status); }); } }