UNPKG

@iotize/tap-scripts

Version:

IoTize Tap scripts

87 lines 7.65 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Lwm2mCommandInstruction = exports.UnexpectedResponseLengthError = exports.UnexpectedResponseError = exports.UnexpectedResultCodeError = void 0; const tap_1 = require("@iotize/tap"); const api_1 = require("@iotize/tap/client/api"); const instruction_error_1 = require("../instruction-error"); const logger_1 = require("../logger"); const util_1 = require("../util"); // TODO add line number class UnexpectedResultCodeError extends instruction_error_1.InstructionError { constructor(context, cmd, response, expectedResultCode) { super(`Expecting command ${cmd} to respond with result code "${expectedResultCode}" but it responded with result code "${response.status}". ${(0, util_1.contextToString)(context)}`); this.context = context; } } exports.UnexpectedResultCodeError = UnexpectedResultCodeError; class UnexpectedResponseError extends instruction_error_1.InstructionError { constructor(context, cmd, response) { super(`Expecting command ${cmd} to be successful. Error: ${tap_1.TapError.reponseStatusError(response).toString()}. ${(0, util_1.contextToString)(context)}`); this.context = context; } } exports.UnexpectedResponseError = UnexpectedResponseError; class UnexpectedResponseLengthError extends instruction_error_1.InstructionError { constructor(context, cmd, response, expectedResponseLength) { super(`Expecting command ${cmd} to respond with ${expectedResponseLength} byte(s) of data but found ${response.rawBody().length} byte(s). ${(0, util_1.contextToString)(context)}`); this.context = context; } } exports.UnexpectedResponseLengthError = UnexpectedResponseLengthError; class Lwm2mCommandInstruction { constructor(call, expectedResultCode, expectedResponseLength) { this.call = call; this.expectedResultCode = expectedResultCode; this.expectedResponseLength = expectedResponseLength; } getCommand() { return this.call; } /** * @throws UnexpectedResponseError * @throws UnexpectedResultCode * @throws UnexpectedResponseLengthError * @param context */ run(context) { return __awaiter(this, void 0, void 0, function* () { const response = yield context.device.service.serviceCallRunner .execute(this.call); // .command<Uint8Array>(this.call) // .toPromise(); context.lastLwm2mResponse = response; if (this.expectedResultCode === 0) { if (!response.isSuccessful()) { throw new UnexpectedResponseError(this.context, this.call, response); } } else if (this.expectedResultCode !== 0xff && response.status !== this.expectedResultCode) { throw new UnexpectedResultCodeError(this.context, this.call, response, this.expectedResultCode); } if (this.expectedResponseLength != null && this.expectedResponseLength !== response.rawBody().length) { throw new UnexpectedResponseLengthError(this.context, this.call, response, this.expectedResponseLength); } if (this.call.method === api_1.TapRequestFrame.MethodType.GET) { (0, logger_1.debug)('Lwm2mCommandInstruction', `Saving lwm2m response to context: ${response}`); context.lastLwm2mGetResponse = response; } return response; }); } toString() { return `${(0, tap_1.serviceCallToString)(this.call)}`; } } exports.Lwm2mCommandInstruction = Lwm2mCommandInstruction; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHdtMm0tY29tbWFuZC1pbnN0cnVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvaW5zdHJ1Y3Rpb25zL2x3bTJtLWNvbW1hbmQtaW5zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEscUNBQTBGO0FBQzFGLGdEQUF5RDtBQUd6RCw0REFBd0Q7QUFDeEQsc0NBQWtDO0FBRWxDLGtDQUEwQztBQUcxQyx1QkFBdUI7QUFDdkIsTUFBYSx5QkFBMEIsU0FBUSxvQ0FBZ0I7SUFDM0QsWUFDVyxPQUE0QyxFQUNuRCxHQUE4QixFQUM5QixRQUEwQixFQUMxQixrQkFBMEI7UUFFMUIsS0FBSyxDQUNELHFCQUFxQixHQUFHLGlDQUFpQyxrQkFBa0Isd0NBQXdDLFFBQVEsQ0FBQyxNQUFNLE1BQU0sSUFBQSxzQkFBZSxFQUNuSixPQUFPLENBQ1YsRUFBRSxDQUNOLENBQUM7UUFUSyxZQUFPLEdBQVAsT0FBTyxDQUFxQztJQVV2RCxDQUFDO0NBQ0o7QUFiRCw4REFhQztBQUVELE1BQWEsdUJBQXdCLFNBQVEsb0NBQWdCO0lBQ3pELFlBQ1csT0FBNEMsRUFDbkQsR0FBOEIsRUFDOUIsUUFBMEI7UUFFMUIsS0FBSyxDQUNELHFCQUFxQixHQUFHLDZCQUE2QixjQUFRLENBQUMsa0JBQWtCLENBQzVFLFFBQVEsQ0FDWCxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUEsc0JBQWUsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUM5QyxDQUFDO1FBUkssWUFBTyxHQUFQLE9BQU8sQ0FBcUM7SUFTdkQsQ0FBQztDQUNKO0FBWkQsMERBWUM7QUFFRCxNQUFhLDZCQUE4QixTQUFRLG9DQUFnQjtJQUMvRCxZQUNXLE9BQTRDLEVBQ25ELEdBQThCLEVBQzlCLFFBQTBCLEVBQzFCLHNCQUE4QjtRQUU5QixLQUFLLENBQ0QscUJBQXFCLEdBQUcsb0JBQW9CLHNCQUFzQiw4QkFBOEIsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQ25ILGFBQWEsSUFBQSxzQkFBZSxFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQzFDLENBQUM7UUFSSyxZQUFPLEdBQVAsT0FBTyxDQUFxQztJQVN2RCxDQUFDO0NBQ0o7QUFaRCxzRUFZQztBQUVELE1BQWEsdUJBQXVCO0lBR2hDLFlBQ2MsSUFBdUMsRUFDMUMsa0JBQTBCLEVBQzFCLHNCQUErQjtRQUY1QixTQUFJLEdBQUosSUFBSSxDQUFtQztRQUMxQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVE7UUFDMUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFTO0lBQ3RDLENBQUM7SUFFTCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNHLEdBQUcsQ0FDTCxPQUFtQzs7WUFFbkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUI7aUJBQzFELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsa0NBQWtDO1lBQ2xDLGdCQUFnQjtZQUNoQixPQUFPLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRTtvQkFDMUIsTUFBTSxJQUFJLHVCQUF1QixDQUM3QixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxJQUFJLEVBQ1QsUUFBUSxDQUNYLENBQUM7aUJBQ0w7YUFDSjtpQkFBTSxJQUNILElBQUksQ0FBQyxrQkFBa0IsS0FBSyxJQUFJO2dCQUNoQyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxrQkFBa0IsRUFDN0M7Z0JBQ0UsTUFBTSxJQUFJLHlCQUF5QixDQUMvQixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxJQUFJLEVBQ1QsUUFBUSxFQUNSLElBQUksQ0FBQyxrQkFBa0IsQ0FDMUIsQ0FBQzthQUNMO1lBRUQsSUFDSSxJQUFJLENBQUMsc0JBQXNCLElBQUksSUFBSTtnQkFDbkMsSUFBSSxDQUFDLHNCQUFzQixLQUFLLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQzNEO2dCQUNFLE1BQU0sSUFBSSw2QkFBNkIsQ0FDbkMsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsSUFBSSxFQUNULFFBQVEsRUFDUixJQUFJLENBQUMsc0JBQXNCLENBQzlCLENBQUM7YUFDTDtZQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUsscUJBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNyRCxJQUFBLGNBQUssRUFDRCx5QkFBeUIsRUFDekIscUNBQXFDLFFBQVEsRUFBRSxDQUNsRCxDQUFDO2dCQUNGLE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUM7YUFDM0M7WUFDRCxPQUFPLFFBQWUsQ0FBQztRQUMzQixDQUFDO0tBQUE7SUFFRCxRQUFRO1FBQ0osT0FBTyxHQUFHLElBQUEseUJBQW1CLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDL0MsQ0FBQztDQUNKO0FBdkVELDBEQXVFQyJ9