@digital-ai/plugin-dai-release-backend
Version:
Backend functionalities for the dai-release backstage plugin
48 lines (44 loc) • 1.45 kB
JavaScript
;
var apiConfig = require('./apiConfig.cjs.js');
var responseUtil = require('./responseUtil.cjs.js');
class CategoriesApi {
logger;
config;
constructor(logger, config) {
this.logger = logger;
this.config = config;
}
static fromConfig(config, logger) {
return new CategoriesApi(logger, config);
}
async getCategoriesApi(instanceName) {
this.logger?.debug(`Calling Categories api, instance: ${instanceName}`);
const instanceConfig = this.config.getInstanceConfig(instanceName);
const accessToken = apiConfig.getCredentials(instanceConfig);
const apiUrl = apiConfig.getReleaseApiHost(instanceConfig);
const categories = await this.getCategories(
accessToken,
apiUrl
);
const categoriesActiveList = categories.content.map(({ id, title }) => ({ id, title }));
return {
activeCategory: categoriesActiveList
};
}
async getCategories(accessToken, apiUrl) {
const response = await fetch(`${apiUrl}${apiConfig.RELEASE_CATEGORIES}?active=true`, {
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.CategoriesApi = CategoriesApi;
//# sourceMappingURL=CategoriesApi.cjs.js.map