UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

58 lines (47 loc) 2.14 kB
/** * Copyright Super iPaaS Integration LLC, an IBM Company 2024 */ import { AppConstants } from '../constants/app-constants.js'; import { GatewaysJson } from '../index.js'; import { sendToGateway, validationManager } from '../service/gateway-service.js'; import { LogWrapper } from '../service/log-wrapper.js'; export const processDeployment = async (gatewaysJsonContent: GatewaysJson, zipBuffer: Buffer) => { const gatewayResponses = []; if (gatewaysJsonContent.gateways && gatewaysJsonContent.gateways.length > 0) { LogWrapper.logInfo('0105', `${gatewaysJsonContent.gateways.length}`); for (const gateway of gatewaysJsonContent.gateways) { const { gatewayURL, gatewayUser, gatewaySecret, is_mcsp_enabled } = gateway; LogWrapper.logDebug('0106', gatewayURL); try { const response = await sendToGateway(gatewayURL, gatewayUser, gatewaySecret, is_mcsp_enabled, zipBuffer, gatewaysJsonContent); LogWrapper.logDebug('0003', `Gateway Response: ${response.data}`); gatewayResponses.push(response); } catch (error) { if (error instanceof Error) { const errorMessage = `Error sending to ${gatewayURL}: ${error.message}`; LogWrapper.logError('0013', 'deploying to', errorMessage); gatewayResponses.push({ error: true, message: errorMessage }); } else { const unknownErrorMessage = `Unknown error sending to ${gatewayURL}`; LogWrapper.logError('0003', unknownErrorMessage); gatewayResponses.push({ error: true, message: unknownErrorMessage }); } } } } else { LogWrapper.logWarn('0003', 'No gateways to deploy.'); } LogWrapper.logInfo('0003', 'Deployment process completed.'); return gatewayResponses; }; export async function validateGateways(url: string, authHeader: string): Promise<{ data: string; status: number }> { if (!url || !authHeader) { throw new Error(JSON.stringify({ message: { data: 'Invalid parameters: URL and Authorization Header are required.', status: 400 } })); } try { const result = await validationManager(`${url}${AppConstants.GATEWAY_VALIDATION_URL}`, authHeader); return result; } catch (error) { throw error; } }