trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
73 lines • 3.23 kB
JavaScript
;
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