How to pass the environment for the API call dynamically

 let environment = runtime.envType === runtime.EnvType.PRODUCTION ? ‘production’ : (runtime.envType === runtime.EnvType.SANDBOX ? ‘sandbox’ : )

let response = checkForParameter(environment) ? customersalesforce.syncToSalesForce(combinedResult, environment, accessSearchResult, true) : {};

   const SALES_FORCE_API = {

            environment: {

                production: {

                    baseUrl: ‘https://login.salesforce.com/services/oauth2/token’,

                    client_id: ‘3MVG9cHH2bfKACZblccwf36aL.Ju6_.EFojaBVGpMFwxzRcvnA0GwqMPUUYWG6ADWtM1okj2bFJnkISxsW2Pv’,

                    client_secret: ‘5CEE8E6AEEDEDADD62286A341E28B8D26CF3CEB05F2D0E0454A48677079CEA60’,

                    username: ‘airport@clotusinfotech.com’,

                    password: ‘Clotus@2025lc7Q3YDEivHsVhMCnADWxmfJ1’,

                    endPoind: ‘https://airportappliance.my.salesforce.com/services/apexrest/AirportResource/v1’

                },

                sandbox: {

                    baseUrl: ‘https://test.salesforce.com/services/oauth2/token’,

                    client_id: ‘3MVG9KshNav2_JdrkT9v5uC7Gok0tWuy6rzkWDwN3r.WBYD7DTHp1PCdhTAy672AK6q9uqoY5Rd10KSZTd9iL’,

                    client_secret: ‘8916713E1C73CBEB051CAC61A41C27F452E51E7B67D6CE0646A8A19E65322C41’,

                    username: ‘airport@clotusinfotech.com.dev’,

                    password: ‘Clotus@2031eacMn5xDd6ak04tXhQIqnzk8z’,

                    endPoind: “https://airportappliance–dev.sandbox.my.salesforce.com/services/apexrest/AirportResource/v1”

                }

            }         

        };

        const searchResults = {

            syncToSalesForce(payLoadJson, netsuiteEnvironment, accessToken, retry) {

               

                    try {

                        let request = https.post({

                            url: `${SALES_FORCE_API[‘environment’][netsuiteEnvironment][‘endPoind’]}`,

                            headers: {

                                ‘Content-Type’: ‘application/json’,

                                ‘Authorization’: `Bearer ${accessToken}`

                            },

                            body: JSON.stringify(payLoadJson)

                        });

                        log.debug(“request”, request);

                       

                        if (request?.code === 401 && retry) {

                            log.debug(“wrong”);

                            accessToken = SALES_FORCE_API.serviceOrder.generateAccessToken(netsuiteEnvironment);

                            return this.syncToSalesForce(payLoadJson, netsuiteEnvironment, accessToken, false);

                        }

                        else {

                            log.debug(“correct”)

                            let responseBody = JSON.parse(request.body);

                            return responseBody;

                        }

                    }

Leave a comment

Your email address will not be published. Required fields are marked *