@iotize/tap-scripts
Version:
IoTize Tap scripts
87 lines • 7.65 kB
JavaScript
;
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