UNPKG

trade360-nodejs-sdk

Version:
73 lines 3.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DistributionUtil = void 0; const lodash_1 = require("lodash"); const common_1 = require("../api/common"); const customers_api_1 = require("../api/customers-api"); const transformer_util_1 = require("./transformer-util"); /** * Utility class for distribution operations such * as starting and stopping distribution * and checking the status of the distribution * service through the API request object. */ class DistributionUtil { constructor(settings, logger) { const customersApiFactory = new customers_api_1.CustomersApiFactory(); DistributionUtil.packageDistributionApi = customersApiFactory.createPackageDistributionHttpClient({ packageCredentials: transformer_util_1.TransformerUtil.transform(settings, common_1.HttpRequestDto), restApiBaseUrl: settings.customersApiBaseUrl, logger: (DistributionUtil.logger = logger), }); } /** * Check the status of the distribution service * through the API request object. * @returns the status of the distribution service */ static async checkStatus() { if ((0, lodash_1.isNil)(DistributionUtil.packageDistributionApi)) throw new Error('initialize distribution api first!'); const distributionStatus = await DistributionUtil.packageDistributionApi.getDistributionStatus(common_1.StatusResponseBody); return distributionStatus; } /** * Start the distribution service through the API * request object. This method will wait for a delay * before resolving. * @returns a promise that resolves when the * distribution service is started after the delay * has passed successfully */ static async start() { if ((0, lodash_1.isNil)(DistributionUtil.packageDistributionApi)) throw new Error('initialize distribution api first!'); const startRequest = await DistributionUtil.packageDistributionApi.startDistribution(common_1.StartResponseBody); if (!(0, lodash_1.isNil)(startRequest)) DistributionUtil.logger?.debug(startRequest.message); await new Promise((resolve) => { setTimeout(() => { return resolve(); }, DistributionUtil.delayMs); }); } /** * Stop the distribution service through the API * request object. This method will wait for a * delay before resolving. * @returns a promise that resolves when the * distribution service is stopped after the * delay has passed successfully */ static async stop() { if ((0, lodash_1.isNil)(DistributionUtil.packageDistributionApi)) throw new Error('initialize distribution api first!'); const stopRequest = await DistributionUtil.packageDistributionApi.stopDistribution(common_1.StopResponseBody); if (!(0, lodash_1.isNil)(stopRequest) && !(0, lodash_1.isNil)(stopRequest)) DistributionUtil.logger?.debug(stopRequest.message); } } exports.DistributionUtil = DistributionUtil; DistributionUtil.delayMs = 2000; //# sourceMappingURL=distribution-util.js.map