@iotize/tap
Version:
IoTize Device client for Javascript
91 lines • 6.14 kB
JavaScript
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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