@digital-ai/plugin-dai-release-backend
Version:
Backend functionalities for the dai-release backstage plugin
54 lines (50 loc) • 1.49 kB
JavaScript
;
var apiConfig = require('./apiConfig.cjs.js');
var responseUtil = require('./responseUtil.cjs.js');
class FoldersApi {
logger;
config;
constructor(logger, config) {
this.logger = logger;
this.config = config;
}
static fromConfig(config, logger) {
return new FoldersApi(logger, config);
}
async getReleaseInstances() {
return this.config.getInstanceList();
}
async getFoldersListApi(instanceName) {
this.logger?.debug(
`Calling Workflows List Folders api, instance: ${instanceName}`
);
const instanceConfig = this.config.getInstanceConfig(instanceName);
const accessToken = apiConfig.getCredentials(instanceConfig);
const apiUrl = apiConfig.getReleaseApiHost(instanceConfig);
const foldersList = await this.getFoldersList(
apiUrl,
accessToken
);
return {
folders: foldersList,
totalPages: 0,
totalElements: foldersList.length
};
}
async getFoldersList(apiUrl, accessToken) {
const response = await fetch(`${apiUrl}${apiConfig.RELEASE_FOLDERS_LIST_API_PATH}`, {
method: "GET",
headers: {
"x-release-personal-token": `${accessToken}`,
"Content-Type": "application/json",
Accept: "application/json"
}
});
if (!response.ok) {
await responseUtil.parseErrorResponse(this.logger, response);
}
return await response.json();
}
}
exports.FoldersApi = FoldersApi;
//# sourceMappingURL=FoldersApi.cjs.js.map