@apistudio/apim-cli
Version:
CLI for API Management Products
38 lines (37 loc) • 1.52 kB
JavaScript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import axios from 'axios';
import FormData from 'form-data';
import { AppConstants } from './constants/app.constants.js';
// import { // } from './log-wrapper.js';
export const sendToGateway = async (gatewayURL, gatewayUser, gatewaySecret, zipBuffer, gatewaysJsonContent) => {
const formData = new FormData();
formData.append('file', zipBuffer, 'gatewayInstance.zip');
formData.append('overwrite', gatewaysJsonContent.overwrite);
const credentials = `${gatewayUser}:${gatewaySecret}`;
const encodedCredentials = Buffer.from(credentials).toString('base64');
const authorizationHeader = `Basic ${encodedCredentials}`;
//.logDebug('0108', gatewayURL);
return axios.post(gatewayURL + AppConstants.DEPLOY_GATEWAY_URL, formData, {
headers: {
...formData.getHeaders(),
'Authorization': authorizationHeader,
},
}).then((response) => {
//.logDebug('0010', JSON.stringify(response.data));
return {
error: false,
statusCode: response.status,
data: response.data,
};
}).catch((error) => {
const errorMessage = `Error sending to ${gatewayURL}: ${error.message}`;
//.logError('0009', 'Deployment', errorMessage);
return {
error: true,
statusCode: error.response ? error.response.status : 404,
data: error.response ? error.response.data : null,
};
});
};