@iotize/cli
Version:
IoTize command line interface
122 lines • 5.76 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
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 });
const typescript_rest_1 = require("typescript-rest");
const device_manager_1 = require("../../provider/device-manager");
const ENDPOINT = '/device/:deviceId/firmware-update';
function deviceProvider(req) {
return __awaiter(this, void 0, void 0, function* () {
// console.log(req.)
let deviceId = req.params.deviceId;
let tap = device_manager_1.DeviceManager.get(deviceId);
if (!tap.isConnected()) {
yield tap.connect();
}
return req;
});
}
let FirmwareUpdateService = class FirmwareUpdateService {
constructor() {
// TODO
this.firmwareUpdateProviderApi = {
getForDevice(deviceId, version) {
return Uint8Array.from([0]);
}
};
}
getInfo(data) {
return __awaiter(this, void 0, void 0, function* () {
let tap = device_manager_1.DeviceManager.get(this.context.request.params.deviceId);
let storeInfo = null;
try {
storeInfo = (yield tap.service.singlePacket.getInfo()).body();
}
catch (error) {
storeInfo = error.message;
}
return {
serialNumber: (yield tap.service.device.getSerialNumber()).body(),
firmwareVersion: (yield tap.service.device.getFirmwareVersion()).body(),
singlePacketStore: storeInfo
};
});
}
update(targetVersion) {
return __awaiter(this, void 0, void 0, function* () {
let tap = device_manager_1.DeviceManager.get(this.context.request.params.deviceId);
let currentVersion = (yield tap.service.device.getFirmwareVersion()).body();
let serialNumber = (yield tap.service.device.getSerialNumber()).body();
if (currentVersion == targetVersion) {
return {
message: `Current Tap version is already up to date: ${currentVersion}`
};
}
let fwUpdateData = this.firmwareUpdateProviderApi.getForDevice(serialNumber, targetVersion);
let observable = tap.singlePacket.execute(fwUpdateData);
observable.subscribe({
next: update => { }
});
return observable.toPromise();
});
}
apply(crc) {
return __awaiter(this, void 0, void 0, function* () {
let tap = device_manager_1.DeviceManager.get(this.context.request.params.deviceId);
(yield tap.service.singlePacket.bspe(crc)).successful();
});
}
};
__decorate([
typescript_rest_1.Context,
__metadata("design:type", typescript_rest_1.ServiceContext)
], FirmwareUpdateService.prototype, "context", void 0);
__decorate([
typescript_rest_1.Path('/info'),
typescript_rest_1.GET,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", Promise)
], FirmwareUpdateService.prototype, "getInfo", null);
__decorate([
typescript_rest_1.Path('/load-in-store/:targetVersion'),
typescript_rest_1.POST,
__param(0, typescript_rest_1.PathParam('targetVersion')),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", Promise)
], FirmwareUpdateService.prototype, "update", null);
__decorate([
typescript_rest_1.Path('/apply'),
typescript_rest_1.POST,
__param(0, typescript_rest_1.QueryParam('crc')),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Number]),
__metadata("design:returntype", Promise)
], FirmwareUpdateService.prototype, "apply", null);
FirmwareUpdateService = __decorate([
typescript_rest_1.PreProcessor(deviceProvider),
typescript_rest_1.Path(ENDPOINT),
__metadata("design:paramtypes", [])
], FirmwareUpdateService);
exports.FirmwareUpdateService = FirmwareUpdateService;
//# sourceMappingURL=fw-update.service.js.map