UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

91 lines 6.14 kB
import { bufferToHexString } from '@iotize/common/byte-converter'; import { ResultCode, } from '@iotize/tap/client/api'; import { TapResponseFrameBuilder } from '@iotize/tap/client/impl'; import { TapError } from './tap-errors'; export class TapResponse { constructor(_tapResponse, request, bodyDecoder) { this._tapResponse = _tapResponse; this.request = request; this.bodyDecoder = bodyDecoder; } static SUCCESS(data) { return TapResponse.create(ResultCode.OK, data); } static ERROR(errorCode) { errorCode = errorCode || ResultCode.BAD_REQUEST; return TapResponse.create(errorCode); } static create(codeRet, data) { return new TapResponse(TapResponseFrameBuilder.create(codeRet, data)); } get data() { return this._tapResponse.data; } body(decoder) { this.successful(); if (decoder) { return decoder.decode(this.rawBody()); } else if (this._bodyCache === undefined) { if (this.bodyDecoder) { this._bodyCache = this.bodyDecoder.decode(this.rawBody()); } else { this._bodyCache = this.rawBody(); } } // In this case we now that T = DataType return this._bodyCache; } rawBody() { if (this.data) { return this.data; } else { return new Uint8Array(0); } } setBodyDecoder(decoder) { this.bodyDecoder = decoder; return this; } hasBody() { return this.rawBody() != null; } codeRet() { return this.status; } get status() { return this._tapResponse.status; } toString() { return `ResponseMessage[codeRet="${this.status}";data="${this.hasBody() ? bufferToHexString(this.rawBody()) : 'NO DATA'}";decoder=${this.bodyDecoder ? this.bodyDecoder.constructor.name : 'NONE'}]`; } toBytes() { return this.data; } setBody(body) { this._bodyCache = body; } isSuccessful() { return (this.status & 0x80) === 0; } setError(err) { return (this.error = err); } successful() { if (!this.isSuccessful()) { if (this.error) { throw this.error; } else { throw TapError.reponseStatusError(this); } } } setRequest(request) { this.request = request; } } export { TapResponse as ServiceResponse }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtaW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcmVzcG9uc2UtaW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBRUwsVUFBVSxHQUdYLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV4QyxNQUFNLE9BQU8sV0FBVztJQXlCdEIsWUFDVSxZQUE4QixFQUMvQixPQUF5QixFQUN4QixXQUFtQztRQUZuQyxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO0lBQzFDLENBQUM7SUFyQkosTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFpQjtRQUM5QixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFrQjtRQUM3QixTQUFTLEdBQUcsU0FBUyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDaEQsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQWUsRUFBRSxJQUFpQjtRQUNyRCxPQUFPLElBQUksV0FBVyxDQUFNLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFBWSxJQUFJO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFD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