steadybit
Version:
Command-line interface to interact with the Steadybit API
63 lines • 2.49 kB
JavaScript
;
// SPDX-License-Identifier: MIT
// SPDX-FileCopyrightText: 2024 Steadybit GmbH
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 });
exports.fetchAllAdvice = fetchAllAdvice;
const errors_1 = require("../errors");
const http_1 = require("../api/http");
const util_1 = require("util");
function fetchAdvice(offset, environment, query) {
return __awaiter(this, void 0, void 0, function* () {
const body = {
offset: offset,
environmentName: environment,
};
if (query) {
body.query = query;
}
try {
const response = yield (0, http_1.executeApiCall)({
method: 'POST',
path: '/api/advice',
body,
});
return (yield response.json());
}
catch (e) {
throw yield (0, errors_1.abortExecutionWithError)(e, 'Failed to fetch advice status. HTTP request failed.');
}
});
}
function fetchAllAdvice(environment, query) {
return __awaiter(this, void 0, void 0, function* () {
let offset = 0;
const allAdvice = [];
do {
const response = yield fetchAdvice(offset, environment, query);
if (response.nextOffset) {
offset = response.nextOffset;
}
else {
offset = -1;
}
if (response.items.length > 0) {
allAdvice.push(...response.items);
console.log((0, util_1.format)('Fetched %d of %d matching advice.', allAdvice.length, response.totalItems));
}
else {
console.log('No matching advice.');
}
} while (offset > 0);
return allAdvice;
});
}
//# sourceMappingURL=api.js.map