import { MessageResponseTopic } from '.' import { MessageEvent } from './messageEvent' import { Client } from '../client' import { CommandRequest } from '../types' export class Command extends MessageEvent { private readonly _publishTopic: string constructor (client: Client, payload: CommandRequest, childDeviceId?: string) { super(client, payload, childDeviceId) this._publishTopic = new MessageResponseTopic().topic } public get name (): string { return this._requestPayload.method } public get payload (): string { return this._requestPayload.params.payload } public async success (payload: any): Promise<{ id: string }> { return this._client['_publish'](this._publishTopic, { requestId: this._requestId, result: payload, }) } public async error (payload: any): Promise<{ id: string }> { return this._client['_publish'](this._publishTopic, { requestId: this._requestId, error: { payload, }, }) } }