@digital-ai/plugin-dai-release-backend
Version:
Backend functionalities for the dai-release backstage plugin
54 lines (50 loc) • 1.9 kB
JavaScript
;
var errors = require('@backstage/errors');
async function parseErrorResponse(logger, response) {
logger?.error(
`Error occurred while accessing release: status: ${response.status}, statusText: ${response.statusText} `
);
const responseText = await response.text();
if (responseText) {
logger?.error(`Response Error - ${responseText}`);
}
if (response.status === 401) {
logger?.error(`Inside 401`);
throw new errors.AuthenticationError(
`Access Denied: Missing or invalid release Token. Unauthorized to Use Digital.ai Release`
);
} else if (response.status === 403) {
if (!responseText.includes(
"You do not have 'Start workflow execution' privilege"
)) {
throw new errors.NotAllowedError(
`Permission denied or the requested functionality is not supported`
);
} else {
throw new errors.NotAllowedError(
`You do not have enough permissions to run a workflow in the selected folder.
Please choose another folder or contact your Release Administrator for further assistance.`
);
}
} else if (response.status === 404) {
throw new errors.NotFoundError(`Release service request not found`);
}
throw new Error(
`failed to fetch data, status ${response.status} ${response.statusText}`
);
}
function validateInstanceRes(instancesList) {
if (instancesList && instancesList.length === 0) {
return false;
}
return instancesList.every((data) => {
return !(data.name === "" || data.host === "" || data.token === "");
});
}
function readValues(config, keyName) {
return config.has(keyName) && config.get(keyName) !== "" ? config.getString(keyName) : "";
}
exports.parseErrorResponse = parseErrorResponse;
exports.readValues = readValues;
exports.validateInstanceRes = validateInstanceRes;
//# sourceMappingURL=responseUtil.cjs.js.map