@apistudio/apim-cli
Version:
CLI for API Management Products
58 lines (47 loc) • 2.14 kB
text/typescript
/**
* 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;
}
}