UNPKG

@digital-ai/plugin-dai-release-backend

Version:

Backend functionalities for the dai-release backstage plugin

54 lines (50 loc) 1.9 kB
'use strict'; 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