UNPKG

@iotize/cli

Version:
122 lines 5.76 kB
"use strict"; 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