UNPKG

test-ic-wallet-middleware-icrc

Version:
78 lines (77 loc) 3.75 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); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ServiceRepository = void 0; const common_1 = require("@ic-wallet-middleware/common"); const typedi_1 = require("typedi"); let ServiceRepository = class ServiceRepository { serviceDataStorage; constructor(serviceDataStorage) { this.serviceDataStorage = serviceDataStorage; } async getServices() { return await this.serviceDataStorage.getItems(); } async addService(service) { await this.serviceDataStorage.addItem(service); } async updateServiceName(principal, newName) { const service = await this.getServiceByPrincipal(principal); service.name = newName; await this.serviceDataStorage.updateItem(service); return service; } async removeService(principal) { await this.serviceDataStorage.deleteItem(principal); } async addServiceAssets(servicePrincipal, assets) { const service = await this.getServiceByPrincipal(servicePrincipal); assets.forEach((ast) => { const asset = service.assets.find((a) => a.ledgerAddress === ast.ledgerAddress.toString()); if (asset) { throw new common_1.ValidationError("service.asset.already.exists", "ledgerAddress", `Asset already exists. Asset: ${ast.ledgerAddress}`); } service.assets.push(ast); }); await this.serviceDataStorage.updateItem(service); return service.assets; } async removeServiceAsset(servicePrincipal, ledgerAddress) { const service = await this.getServiceByPrincipal(servicePrincipal); const item = service.assets.find((a) => a.ledgerAddress === ledgerAddress); if (!item) { throw new common_1.ValidationError("service.asset.not.exists", "ledgerAddress", `Asset not exists. Asset: ${ledgerAddress}`); } service.assets = service.assets.filter((a) => a.ledgerAddress !== ledgerAddress); await this.serviceDataStorage.updateItem(service); } async isServiceExist(serviceId) { const service = await this.serviceDataStorage.getItem(serviceId); const result = service ? true : false; return result; } async getServiceByPrincipal(principal) { const service = await this.serviceDataStorage.getItem(principal); if (!service) { throw new common_1.ValidationError("service.not.exists", "principal", `Service not exists. Principal: ${principal}`); } return service; } }; exports.ServiceRepository = ServiceRepository; exports.ServiceRepository = ServiceRepository = __decorate([ (0, typedi_1.Service)("ServiceRepository"), __param(0, (0, typedi_1.Inject)("IServiceDataStorage")), __metadata("design:paramtypes", [Object]) ], ServiceRepository);