in lambdas/src/MembershipSub-PromoCode-View-Dynamo-to-Salesforce.js [37:73]
function login(config) {
const loginData = {
grant_type: 'password',
client_id: config.client_id,
client_secret: config.client_secret,
username: config.username,
password: config.password,
}
const body = querystring.stringify(loginData);
const options = {
hostname: config.salesforce_url,
port: 443,
path: '/services/oauth2/token',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(body)
}
};
return new Promise((fulfilled, rejected) => {
makeSalesforceAPIRequest(
options,
body,
(res, body) => {
if (res.statusCode === 200) {
const data = JSON.parse(body);
const accessToken = data.access_token;
const instanceUrl = data.instance_url.replace('https://', '');
fulfilled({ accessToken, instanceUrl });
} else {
rejected(`Error: login-${res.statusCode} - ${body}`);
}
},
rejected
);
});
}