function login()

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
        );
    });
}