diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a51ca3..f02fb58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ +## 1.3.7 (October 30, 2020) + +Upgrade to sailor 2.6.18 + ## 1.3.6 (October 8, 2020) + Component got deprecated. Use https://github.com/elasticio/salesforce-component-v2 instead ## 1.3.5 (August 21, 2020) diff --git a/lib/actions/bulk_cud.js b/lib/actions/bulk_cud.js index 68f0bc6..ea08065 100644 --- a/lib/actions/bulk_cud.js +++ b/lib/actions/bulk_cud.js @@ -1,7 +1,7 @@ const { messages } = require('elasticio-node'); +const { Readable } = require('stream'); const util = require('../util'); -const { Readable } = require('stream'); const MetaLoader = require('../helpers/metaLoader'); const sfConnection = require('../helpers/sfConnection.js'); @@ -30,7 +30,7 @@ exports.objectTypes = async function objectTypes(configuration) { exports.process = async function bulkCUD(message, configuration) { - this.logger.debug('Starting:', configuration.operation); + this.logger.info('Starting bulkCUD'); const conn = sfConnection.createConnection(configuration, this); @@ -49,7 +49,7 @@ exports.process = async function bulkCUD(message, configuration) { timeout = DEFAULT_TIMEOUT; } - let result = await util.downloadAttachment(message.attachments[key].url); + const result = await util.downloadAttachment(message.attachments[key].url); const csvStream = new Readable(); csvStream.push(result); @@ -78,7 +78,7 @@ exports.process = async function bulkCUD(message, configuration) { out.body = { result: rets }; resolve(out); }).on('error', (err) => { - this.logger.error('Job error', err.message); + this.logger.error('Job error!'); reject(new Error(err.message)); throw Error(`Job error: ${err.message}`); }); diff --git a/lib/actions/bulk_q.js b/lib/actions/bulk_q.js index 6dbb3cb..dbabc1b 100644 --- a/lib/actions/bulk_q.js +++ b/lib/actions/bulk_q.js @@ -26,7 +26,7 @@ exports.process = async function bulkQuery(message, configuration) { // Bulk operation ('query') const stream = conn.bulk.query(message.body.query) .on('error', (err) => { - this.logger.debug('error query:', err); + this.logger.warn('Bulk query error'); reject(err); }) .stream(); @@ -34,7 +34,7 @@ exports.process = async function bulkQuery(message, configuration) { // upload csv attachment stream.pipe(request.put(signedUrl.put_url, (err, resp, body) => { if (err) { - this.logger.debug('error upload:', err); + this.logger.warn('Stream.pipe upload error'); reject(err); } else { this.logger.debug('success'); diff --git a/lib/actions/createObject.js b/lib/actions/createObject.js index 869fa10..388ac7d 100644 --- a/lib/actions/createObject.js +++ b/lib/actions/createObject.js @@ -10,12 +10,13 @@ exports.objectTypes = function objectTypes(configuration) { return metaLoader.getCreateableObjectTypes(); }; +// eslint-disable-next-line consistent-return exports.process = async function createObject(message, configuration) { this.logger.info(`Preparing to create a ${configuration.sobject} object...`); const sfConn = sfConnection.createConnection(configuration, this); - this.logger.debug('Creating message body: ', message.body); + this.logger.debug('Creating message body'); const binaryField = await attachment.prepareBinaryData(message, configuration, sfConn, this); @@ -24,8 +25,7 @@ exports.process = async function createObject(message, configuration) { try { const response = await sfConn.sobject(configuration.sobject).create(message.body); - this.logger.debug('SF response: ', response); - this.logger.info(`${configuration.sobject} has been successfully created (ID = ${response.id}).`); + this.logger.info(`${configuration.sobject} has been successfully created.`); // eslint-disable-next-line no-param-reassign message.body.id = response.id; @@ -36,7 +36,7 @@ exports.process = async function createObject(message, configuration) { return messages.newMessageWithBody(message.body); } catch (err) { - return this.emit('error', err); + await this.emit('error', err); } }; diff --git a/lib/actions/deleteObject.js b/lib/actions/deleteObject.js index 2859045..73dab64 100644 --- a/lib/actions/deleteObject.js +++ b/lib/actions/deleteObject.js @@ -14,7 +14,7 @@ module.exports.objectTypes = function objectTypes(configuration) { }; module.exports.getMetaModel = async function getMetaModel(configuration) { - this.logger.debug(`Get MetaModel is called with config ${JSON.stringify(configuration)}`); + this.logger.debug('Get MetaModel is called'); configuration.metaType = 'lookup'; const metaLoader = new MetaLoader(configuration, this); const metaData = await metaLoader.loadMetadata(); @@ -72,11 +72,11 @@ module.exports.process = async function process(message, configuration) { try { response = await sfConn.sobject(configuration.sobject).delete(message.body.id); } catch (err) { - this.logger.error(`Salesforce error. ${err.message}`); + this.logger.error('Salesforce error'); return messages.newEmptyMessage(); } - this.logger.debug(`${configuration.sobject} has been successfully deleted (ID = ${response.id}).`); + this.logger.debug(`${configuration.sobject} has been successfully deleted`); return messages.newMessageWithBody({ response }); } @@ -104,13 +104,12 @@ module.exports.process = async function process(message, configuration) { await helpers.deleteObjById.call(this, sfConn, res[0].Id, configuration.sobject); } else { const err = new Error('More than one object found, can only delete 1'); - this.logger.error(err); - this.logger.trace(`Here are the objects found ${JSON.stringify(res)}`); + this.logger.error('More than one object found, can only delete 1'); await this.emit('error', err); } }) .on('error', async (err) => { - this.logger.error(err); + this.logger.error('Delete object failed'); await this.emit('error', err); }) .run({ autoFetch: true, maxFetch: 2 }); diff --git a/lib/actions/lookup.js b/lib/actions/lookup.js index e4271e1..07b75a5 100644 --- a/lib/actions/lookup.js +++ b/lib/actions/lookup.js @@ -31,7 +31,7 @@ module.exports.getLookupFieldsModel = async function getLookupFieldsModel(config */ module.exports.process = async function processAction(message, configuration) { const batchSize = configuration.batchSize || 0; - this.logger.info('batchSize', batchSize); + this.logger.debug('batchSize', batchSize); const res = []; const conn = new jsforce.Connection({ oauth2: { @@ -45,7 +45,7 @@ module.exports.process = async function processAction(message, configuration) { }); conn.on('refresh', (accessToken, refreshResult) => { - this.logger.trace('Keys were updated, res=%j', refreshResult); + this.logger.trace('Keys were updated'); this.emit('updateKeys', { oauth: refreshResult }); }); @@ -64,18 +64,18 @@ module.exports.process = async function processAction(message, configuration) { if (batchSize > 0) { while (res.length) { const result = res.splice(0, batchSize); - this.logger.debug('emitting batch %j', { result }); + this.logger.debug('emitting batch'); this.emit('data', messages.newMessageWithBody({ result })); } } else { res.forEach((record) => { - this.logger.debug('emitting record %j', record); + this.logger.debug('emitting record'); this.emit('data', messages.newMessageWithBody(record)); }); } }) .on('error', (err) => { - this.logger.error(err); + this.logger.error('Lookup failed'); this.emit('error', err); }) .execute({ autoFetch: true, maxFetch }); diff --git a/lib/actions/lookupObject.js b/lib/actions/lookupObject.js index b0b79e0..7abcaf3 100644 --- a/lib/actions/lookupObject.js +++ b/lib/actions/lookupObject.js @@ -62,7 +62,7 @@ module.exports.process = async function processAction(message, configuration) { return; } const err = new Error('No unique criteria provided'); - this.logger.error(err); + this.logger.error('No unique criteria provided'); this.emit('error', err); return; } @@ -75,12 +75,11 @@ module.exports.process = async function processAction(message, configuration) { lookupCache.useCache(configuration.enableCacheUsage); const queryKey = lookupCache.generateKeyFromDataArray(configuration.sobject, condition); - this.logger.trace(`Current request key hash: "${queryKey}"`); if (lookupCache.hasKey(queryKey)) { this.logger.info('Cached response found!'); const response = lookupCache.getResponse(queryKey); // eslint-disable-next-line consistent-return - return this.emit('data', messages.newMessageWithBody(response)); + return messages.newMessageWithBody(response); } // the query for the object and all its linked parent objects @@ -106,7 +105,7 @@ module.exports.process = async function processAction(message, configuration) { query = query.where(condition) .on('error', (err) => { - this.logger.error(err); + this.logger.error('Salesforce lookup error'); if (err.message === 'Binary fields cannot be selected in join queries') { // eslint-disable-next-line no-param-reassign err.message = 'Binary fields cannot be selected in join queries. ' @@ -127,7 +126,7 @@ module.exports.process = async function processAction(message, configuration) { this.emit('data', messages.newMessageWithBody({})); } else { const err = new Error('No objects found'); - this.logger.error(err); + this.logger.error('Lookup cache failed'); this.emit('error', err); } } else if (res.length === 1) { @@ -142,15 +141,15 @@ module.exports.process = async function processAction(message, configuration) { } lookupCache.addRequestResponsePair(queryKey, res[0]); - this.logger.debug('emitting record %j', outputMessage); + this.logger.debug('emitting record'); this.emit('data', outputMessage); } catch (err) { - this.logger.error(err); + this.logger.error('Emitting response failed'); this.emit('error', err); } } else { const err = new Error('More than one object found'); - this.logger.error(err); + this.logger.error('More than one object found'); this.emit('error', err); } }); diff --git a/lib/actions/lookupObjects.js b/lib/actions/lookupObjects.js index aa1fb7a..e132524 100644 --- a/lib/actions/lookupObjects.js +++ b/lib/actions/lookupObjects.js @@ -195,7 +195,6 @@ module.exports.process = async function processAction(message, configuration) { this.logger.info('Building a query...'); const wherePart = await getWherePart(message, configuration, sfConn); - this.logger.debug('Where part: ', wherePart); let limit; let offset; @@ -223,23 +222,24 @@ module.exports.process = async function processAction(message, configuration) { lookupCache.useCache(configuration.enableCacheUsage); const queryKey = lookupCache.generateKeyFromDataArray(configuration.sobject, wherePart, offset, limit, configuration.includeDeleted); - this.logger.trace(`Current request key hash: "${queryKey}"`); + this.logger.trace('Request key cache found.'); if (lookupCache.hasKey(queryKey)) { this.logger.info('Cached response found!'); const responseArray = lookupCache.getResponse(queryKey); if (configuration.outputMethod === 'emitIndividually') { if (responseArray.length === 0) { - return this.emit('data', messages.newMessageWithBody({ results: [] })); + return messages.newMessageWithBody({ results: [] }); } for (let i = 0; i < responseArray.length; i += 1) { // eslint-disable-next-line no-await-in-loop await this.emit('data', messages.newMessageWithBody({ results: [responseArray[i]] })); } - return true; + // eslint-disable-next-line consistent-return + return; } - return this.emit('data', messages.newMessageWithBody({ results: responseArray })); + return messages.newMessageWithBody({ results: responseArray }); } const records = []; diff --git a/lib/actions/query.js b/lib/actions/query.js index 3451238..9207e70 100644 --- a/lib/actions/query.js +++ b/lib/actions/query.js @@ -15,7 +15,7 @@ function getConnection(configuration) { version: common.globalConsts.SALESFORCE_API_VERSION, }); conn.on('refresh', (accessToken, res) => { - this.logger.info('Keys were updated, res=%j', res); + this.logger.info('Keys were updated'); this.emit('updateKeys', { oauth: res }); }); return conn; @@ -35,7 +35,7 @@ async function emitBatch(message, configuration) { .on('record', (record) => { batch.push(record); if (batch.length >= configuration.batchSize) { - logger.info('Ready batch: %j', batch); + logger.info('Ready batch'); promises.push(self.emit('data', messages.newMessageWithBody({ result: batch }))); batch = []; } @@ -45,15 +45,15 @@ async function emitBatch(message, configuration) { promises.push(self.emit('data', messages.newMessageWithBody({}))); } if (batch.length > 0) { - logger.info('Last batch: %j', batch); + logger.info('Emitting batch'); promises.push(self.emit('data', messages.newMessageWithBody({ result: batch }))); } - logger.info('Total in database=%s', response.totalSize); - logger.info('Total fetched=%s', response.totalFetched); + logger.debug('Total in database=%s', response.totalSize); + logger.debug('Total fetched=%s', response.totalFetched); resolve(); }) .on('error', (err) => { - logger.error(err); + logger.error('Emit data failed'); promises.push(self.emit('error', err)); reject(err); }) @@ -72,19 +72,19 @@ async function emitIndividually(message, configuration) { const response = connection.query(message.body.query) .scanAll(configuration.includeDeleted) .on('record', (record) => { - logger.info('Emitting record: %j', record); + logger.info('Emitting record'); promises.push(self.emit('data', messages.newMessageWithBody(record))); }) .on('end', () => { if (response.totalFetched === 0) { promises.push(self.emit('data', messages.newMessageWithBody({}))); } - logger.info('Total in database=%s', response.totalSize); - logger.info('Total fetched=%s', response.totalFetched); + logger.debug('Total in database=%s', response.totalSize); + logger.debug('Total fetched=%s', response.totalFetched); resolve(); }) .on('error', (err) => { - logger.error(err); + logger.error('Emit data failed'); promises.push(self.emit('error', err)); reject(err); }) @@ -105,9 +105,8 @@ async function emitAll(message, configuration) { result.push(record); }) .on('end', () => { - logger.info('Result: %j', result); - logger.info('Total in database=%s', response.totalSize); - logger.info('Total fetched=%s', response.totalFetched); + logger.debug('Total in database=%s', response.totalSize); + logger.debug('Total fetched=%s', response.totalFetched); if (response.totalFetched === 0) { resolve(self.emit('data', messages.newMessageWithBody({}))); } @@ -116,7 +115,7 @@ async function emitAll(message, configuration) { } }) .on('error', (err) => { - logger.error(err); + logger.error('Emit data failed'); reject(self.emit('error', err)); }); }); @@ -124,14 +123,12 @@ async function emitAll(message, configuration) { exports.process = async function processAction(message, configuration) { const { logger } = this; - logger.trace('Input configuration: %j', configuration); - logger.trace('Input message: %j', message); const batchSize = configuration.batchSize || 0; // eslint-disable-next-line no-restricted-globals if (isNaN(batchSize)) { throw new Error('batchSize must be a number'); } - logger.info('Starting SOQL Select batchSize=%s query=%s', batchSize, message.body.query); + logger.info('Starting SOQL Select Query with batchSize=%s', batchSize); if (configuration.allowResultAsSet) { logger.info('Selected EmitAllHandler'); await emitAll.call(this, message, configuration); diff --git a/lib/actions/upsert.js b/lib/actions/upsert.js index 5c77578..e966dba 100644 --- a/lib/actions/upsert.js +++ b/lib/actions/upsert.js @@ -43,8 +43,7 @@ module.exports.process = async function upsertObject(message, configuration) { await attachment.prepareBinaryData(message, configuration, conn, this); if (message.body.Id) { - this.logger.info('Upserting sobject=%s by internalId', configuration.sobject, message.body.Id); - this.logger.debug('Upserting %s by internalId data: %j', configuration.sobject, message.body.Id, message); + this.logger.info('Upserting sobject=%s by internalId', configuration.sobject); return conn.sobject(configuration.sobject).update(message.body) .then(() => { // eslint-disable-next-line no-param-reassign @@ -54,8 +53,7 @@ module.exports.process = async function upsertObject(message, configuration) { }); } - this.logger.info('Upserting sobject: %s by externalId: %s', configuration.sobject, configuration.extIdField); - this.logger.debug('Upserting sobject: %s by externalId:%s data: %j', configuration.sobject, configuration.extIdField, message); + this.logger.info('Upserting sobject: %s by externalId', configuration.sobject); if (!configuration.extIdField) { throw Error('Can not find internalId/externalId ids'); diff --git a/lib/entry.js b/lib/entry.js index 733aa8d..23af141 100644 --- a/lib/entry.js +++ b/lib/entry.js @@ -49,7 +49,7 @@ function SalesforceEntity(callScope) { // eslint-disable-next-line consistent-return self.refreshToken(cfg, (err, newCfg) => { if (err) { - callScope.logger.error('Error refreshing token', err); + callScope.logger.error('Error refreshing token'); return cb(err); } describe.getObjectDescription(callScope.logger, newCfg, @@ -83,13 +83,9 @@ function SalesforceEntity(callScope) { snapshot = { previousLastModified: cfg.startTime || '1970-01-01T00:00:00.000Z', }; - callScope.logger.info('Created snapshot: %j', snapshot); } else if (typeof snapshot === 'string') { // for backward compatibility snapshot = { previousLastModified: snapshot }; - callScope.logger.info('Snapshot has been converted to: %j', snapshot); - } else { - callScope.logger.info('Got snapshot: %j', snapshot); } const conn = new jsforce.Connection({ @@ -103,14 +99,14 @@ function SalesforceEntity(callScope) { version: common.globalConsts.SALESFORCE_API_VERSION, }); conn.on('refresh', (accessToken, res) => { - callScope.logger.trace('Keys were updated, res=%j', res); + callScope.logger.debug('Keys were updated'); emitKeys({ oauth: res }); }); - let maxFetch = cfg.maxFetch ? cfg.parseInt(cfg.maxFetch, 10) : 1000; + let maxFetch = cfg.maxFetch ? parseInt(cfg.maxFetch, 10) : 1000; if (cfg.sizeOfPollingPage) { - callScope.logger.info('Current sizeOfPollingPage=%s, maxFetch=%s', cfg.sizeOfPollingPage, maxFetch); + callScope.logger.debug('Current sizeOfPollingPage=%s, maxFetch=%s', cfg.sizeOfPollingPage, maxFetch); const sizeOfPollingPage = parseInt(cfg.sizeOfPollingPage, 10); if (sizeOfPollingPage && sizeOfPollingPage > 0 && sizeOfPollingPage <= 10000) { maxFetch = sizeOfPollingPage; @@ -166,7 +162,7 @@ function SalesforceEntity(callScope) { if (snapshot.previousLastModified !== lastSeenTime) { snapshot.previousLastModified = lastSeenTime; - callScope.logger.info('emitting new snapshot: %j', snapshot); + callScope.logger.debug('emitting new snapshot'); emitSnapshot(snapshot); } emitEnd(); @@ -188,7 +184,6 @@ function SalesforceEntity(callScope) { }; newMsg.body = record; callScope.logger.info('emitting record %d', i); - callScope.logger.debug('emitting record: %j', newMsg); emitData(newMsg); }); } else { @@ -299,7 +294,7 @@ function SalesforceEntity(callScope) { const url = util.format('%s/services/data/%s/sobjects/%s', baseUrl, `v${common.globalConsts.SALESFORCE_API_VERSION}`, objectType); - callScope.logger.debug('getJSON', msg.body); + callScope.logger.debug('getJSON'); httpUtils.getJSON(callScope.logger, { url, @@ -331,7 +326,7 @@ function SalesforceEntity(callScope) { }; function emitError(err) { - callScope.logger.error('emitting SalesforceEntity error', err, err.stack); + callScope.logger.error('emitting SalesforceEntity error'); callScope.emit('error', err); } diff --git a/lib/helpers/deleteObjectHelpers.js b/lib/helpers/deleteObjectHelpers.js index 2d2f004..0efbeec 100644 --- a/lib/helpers/deleteObjectHelpers.js +++ b/lib/helpers/deleteObjectHelpers.js @@ -16,16 +16,15 @@ const deleteObjectData = require('../../spec-integration/actions/deleteObject.js */ module.exports.deleteObjById = async function deleteObjById(sfConn, id, objType) { try { - this.logger.trace(`Here's the ID of what we're deleting ${id}`); this.logger.trace(`Note if the object has a master-detail relationship with another object it will also be deleted `); const response = await sfConn.sobject(objType).delete(id); - this.logger.trace(`Sucessfully deleted object ${id}`); + this.logger.trace('Successfully deleted object'); const outputMessage = messages.newMessageWithBody({ response }); await this.emit('data', outputMessage); } catch (err) { - this.logger.error(err.message); + this.logger.error('Delete object failed'); await this.emit('error', err.message); } }; diff --git a/lib/helpers/http-utils.js b/lib/helpers/http-utils.js index b7bdf24..6abc0e6 100644 --- a/lib/helpers/http-utils.js +++ b/lib/helpers/http-utils.js @@ -43,8 +43,6 @@ exports.getJSON = function getJSON(logger, params, cb) { headers.Authorization = params.auth; } - logger.trace('Sending %s request to %s', method, url); - request[method.toLowerCase()]({ url, agent: false, @@ -54,7 +52,7 @@ exports.getJSON = function getJSON(logger, params, cb) { // eslint-disable-next-line consistent-return }, (err, resp, body) => { if (err) { - logger.error(`Failed to fetch JSON from ${url} with error: ${err}`); + logger.error('Failed to fetch JSON'); return cb(err); } if (resp.statusCode === expectedStatus) { @@ -64,15 +62,14 @@ exports.getJSON = function getJSON(logger, params, cb) { result = JSON.parse(body); } } catch (parseError) { - logger.error('Failed to parse JSON', body); + logger.error('Failed to parse JSON'); cb(parseError); } if (result) { try { - logger.trace('Have got %d response from %s to %s', expectedStatus, method, url); cb(null, result); } catch (e) { - logger.error('Exception happened when passing data down the chain', e); + logger.error('Exception happened when passing data down the chain'); } } else { logger.info('Have got empty response'); @@ -85,7 +82,7 @@ exports.getJSON = function getJSON(logger, params, cb) { expectedStatus, body, ); - logger.error(msg); + logger.error('Unexpected return code'); const errorResponse = new Error(msg); errorResponse.responseBody = body; diff --git a/lib/helpers/metaLoader.js b/lib/helpers/metaLoader.js index 0c21524..4ae5539 100644 --- a/lib/helpers/metaLoader.js +++ b/lib/helpers/metaLoader.js @@ -135,7 +135,7 @@ module.exports = class MetaLoader { async loadMetadata() { return this.connection.describe(this.configuration.sobject) .then(async meta => this.processMeta(meta)).then((metaData) => { - this.emitter.logger.debug('emitting Metadata %j', metaData); + this.emitter.logger.debug('emitting Metadata'); return metaData; }); } @@ -244,7 +244,7 @@ module.exports = class MetaLoader { } getSObjectList(what, filter) { - this.emitter.logger.info(`Fetching ${what} list...`); + this.emitter.logger.info('Fetching list...'); return this.connection.describeGlobal().then((response) => { const result = {}; response.sobjects.forEach((object) => { @@ -253,7 +253,6 @@ module.exports = class MetaLoader { } }); this.emitter.logger.info('Found %s sobjects', Object.keys(result).length); - this.emitter.logger.debug('Found sobjects: %j', result); return result; }); } diff --git a/lib/helpers/oauth-utils.js b/lib/helpers/oauth-utils.js index e0db255..b49a59b 100644 --- a/lib/helpers/oauth-utils.js +++ b/lib/helpers/oauth-utils.js @@ -65,10 +65,10 @@ function refreshToken(logger, serviceUri, clientIdKey, clientSecretKey, conf, ne // eslint-disable-next-line consistent-return }, (err, refreshResponse) => { if (err) { - logger.error('Failed to refresh token from %s', serviceUri); + logger.error('Failed to refresh token'); return next(err); } - logger.info('Refreshed token from %s', serviceUri); + logger.info('Token refreshed'); // update access token in configuration newConf.oauth.access_token = refreshResponse.access_token; // if new refresh_token returned, update that also diff --git a/lib/helpers/objectFetcherQuery.js b/lib/helpers/objectFetcherQuery.js index 45ccc6f..ccd6db2 100644 --- a/lib/helpers/objectFetcherQuery.js +++ b/lib/helpers/objectFetcherQuery.js @@ -24,7 +24,7 @@ function fetchObjects(logger, params) { }, }); - logger.info('executing query:', params.query); + logger.info('executing query'); const authValue = util.format('Bearer %s', cfg.oauth.access_token); diff --git a/lib/helpers/sfConnection.js b/lib/helpers/sfConnection.js index 3864308..9bf748f 100644 --- a/lib/helpers/sfConnection.js +++ b/lib/helpers/sfConnection.js @@ -15,7 +15,7 @@ exports.createConnection = function createConnection(configuration, emitter) { }); connection.on('refresh', (accessToken, res) => { - emitter.logger.debug('Keys were updated, res=%j', res); + emitter.logger.debug('Keys were updated'); emitter.emit('updateKeys', { oauth: res }); }); diff --git a/lib/triggers/streamPlatformEvents.js b/lib/triggers/streamPlatformEvents.js index 5d1c0f0..e5c45b6 100644 --- a/lib/triggers/streamPlatformEvents.js +++ b/lib/triggers/streamPlatformEvents.js @@ -15,7 +15,7 @@ let conn; */ function processTrigger(msg, cfg) { const emitError = (e) => { - this.logger.error(e); + this.logger.error('Process Trigger emit error'); this.emit('error', e); }; @@ -42,7 +42,7 @@ function processTrigger(msg, cfg) { version: common.globalConsts.SALESFORCE_API_VERSION, }); conn.on('refresh', (accessToken, res) => { - this.logger.debug('Keys were updated, res=%j', res); + this.logger.debug('Keys were updated'); emitKeys(res); }); @@ -57,7 +57,7 @@ function processTrigger(msg, cfg) { ]); fayeClient.subscribe(topic, (message) => { - this.logger.debug('Message: %j', message); + this.logger.debug('Emitting message...'); this.emit('data', messages.newMessageWithBody(message)); }) .then(() => this.logger.info(`Subscribed to PushTopic: ${topic}`), diff --git a/lib/util.js b/lib/util.js index 01d2bfe..08259d9 100644 --- a/lib/util.js +++ b/lib/util.js @@ -15,13 +15,13 @@ function addRetryCountInterceptorToAxios(ax) { return Promise.reject(err); } config.currentRetryCount += 1; - return new Promise((resolve) => setTimeout(() => resolve(ax(config)), config.delay)); + return new Promise(resolve => setTimeout(() => resolve(ax(config)), config.delay)); }); } -module.exports.base64Encode = (value) => Buffer.from(value).toString('base64'); -module.exports.base64Decode = (value) => Buffer.from(value, 'base64').toString('utf-8'); +module.exports.base64Encode = value => Buffer.from(value).toString('base64'); +module.exports.base64Decode = value => Buffer.from(value, 'base64').toString('utf-8'); module.exports.createSignedUrl = async () => client.resources.storage.createSignedUrl(); module.exports.uploadAttachment = async (url, payload) => { const ax = axios.create(); diff --git a/package-lock.json b/package-lock.json index 71b6868..6ce1a0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "salesforce-component", - "version": "1.3.6", + "version": "1.3.7", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -24,6 +24,27 @@ "js-tokens": "^4.0.0" } }, + "@elastic.io/bunyan-logger": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@elastic.io/bunyan-logger/-/bunyan-logger-1.0.5.tgz", + "integrity": "sha512-FcoaG7nTA2H/VuE+0TC1ZKxwEMv3eTVJ42HwrzOY3x3UIpJ9RorG+Sk7G6SBoNuEiBRslGA6Iy9ddE4J3lR2og==", + "requires": { + "bunyan": "1.8.12" + }, + "dependencies": { + "bunyan": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", + "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", + "requires": { + "dtrace-provider": "~0.8", + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" + } + } + } + }, "@elastic.io/component-logger": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/@elastic.io/component-logger/-/component-logger-0.0.1.tgz", @@ -49,6 +70,34 @@ } } }, + "@elastic.io/object-storage-client": { + "version": "0.0.2-dev", + "resolved": "https://registry.npmjs.org/@elastic.io/object-storage-client/-/object-storage-client-0.0.2-dev.tgz", + "integrity": "sha512-jVra0BMYg5jktFtOFPaYmnW3LUTBUjoIAHlI3igPwEEOMeYtyAGKo2Mz7c9kNdoRsPLsYmGiyR7mH0nl6dlYvA==", + "requires": { + "@elastic.io/bunyan-logger": "1.0.5", + "axios": "0.19.0", + "get-stream": "5.1.0", + "jsonwebtoken": "8.5.1", + "uuid": "3.3.2" + }, + "dependencies": { + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } + } + }, "@sinonjs/commons": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.4.0.tgz", @@ -298,6 +347,11 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, "buffer-more-ints": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz", @@ -632,6 +686,14 @@ "safer-buffer": "^2.1.0" } }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "elasticio-node": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/elasticio-node/-/elasticio-node-0.0.9.tgz", @@ -677,22 +739,22 @@ } }, "elasticio-sailor-nodejs": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/elasticio-sailor-nodejs/-/elasticio-sailor-nodejs-2.6.2.tgz", - "integrity": "sha512-JZOqB83hnj76+p00ft+5PR8I+jGXNgIhXPLGBfl1sIR5eb/7vTx73YBunvTmSqxzMsiyjFCGog91EhZfNvgg3g==", + "version": "2.6.18", + "resolved": "https://registry.npmjs.org/elasticio-sailor-nodejs/-/elasticio-sailor-nodejs-2.6.18.tgz", + "integrity": "sha512-ZtGI3p/jzmpRz4A9GWhj6yocXRJq4ixz2j4a898XKVUynJxL68tAeqWdcui3UxD6O9gvTDOdxkrVg289UxjZkw==", "requires": { + "@elastic.io/object-storage-client": "0.0.2-dev", "amqplib": "0.5.1", "bunyan": "1.8.10", "co": "4.6.0", "debug": "3.1.0", - "elasticio-rest-node": "1.2.3", + "elasticio-rest-node": "1.2.5", "event-to-promise": "0.8.0", - "lodash": "4.17.4", + "lodash": "4.17.15", "p-throttle": "2.1.0", "q": "1.4.1", "request-promise-native": "1.0.5", "requestretry": "3.1.0", - "self-addressed": "0.3.0", "uuid": "3.0.1" }, "dependencies": { @@ -704,15 +766,91 @@ "ms": "2.0.0" } }, + "elasticio-rest-node": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/elasticio-rest-node/-/elasticio-rest-node-1.2.5.tgz", + "integrity": "sha512-aLrUBMMgjEzsz0pzxxDYAx3mjtL2gC8Hybsn91lKh2fOQrXe/3+uw88jumZR/QZnsJS/pjAIxrom9Ks26Dms+A==", + "requires": { + "lodash": "4.17.15", + "q": "1.5.1", + "request": "2.88.2", + "requestretry": "4.1.0" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "requestretry": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-4.1.0.tgz", + "integrity": "sha512-q3IT2vz5vkcMT6xgwB/BWzsmnu7N/27l9fW86U48gt9Mwrce5rSEyFvpAW7Il1/B78/NBUlYBvcCY1RzWUWy7w==", + "requires": { + "extend": "^3.0.2", + "lodash": "^4.17.10", + "when": "^3.7.7" + } + } + } + }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "q": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" } } }, @@ -722,6 +860,14 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -756,11 +902,6 @@ "is-symbol": "^1.0.2" } }, - "es6-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.0.1.tgz", - "integrity": "sha1-zMSWPmefDKn7GHx3e55YPTx1c8I=" - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1211,6 +1352,14 @@ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -1423,8 +1572,7 @@ "is-buffer": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", - "dev": true + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" }, "is-callable": { "version": "1.1.4", @@ -1587,6 +1735,30 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -1604,6 +1776,25 @@ "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==", "dev": true }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "keypress": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", @@ -1651,6 +1842,41 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", @@ -2312,6 +2538,15 @@ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -2578,19 +2813,10 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, - "self-addressed": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/self-addressed/-/self-addressed-0.3.0.tgz", - "integrity": "sha1-AitQYD5zh9poVmG8OW8pp/hxXgs=", - "requires": { - "es6-promise": "2.0.1" - } - }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, "sequence": { "version": "2.2.1", @@ -2955,11 +3181,6 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", diff --git a/package.json b/package.json index c093b34..1b90228 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salesforce-component", - "version": "1.3.6", + "version": "1.3.7", "description": "elastic.io component that connects to Salesforce API (node.js)", "main": "index.js", "scripts": { @@ -31,7 +31,7 @@ "dotenv": "8.0.0", "elasticio-node": "0.0.9", "elasticio-rest-node": "1.2.3", - "elasticio-sailor-nodejs": "2.6.2", + "elasticio-sailor-nodejs": "2.6.18", "hbs": "3.1.1", "jsforce": "1.9.1", "lodash": "4.17.13", diff --git a/verifyCredentials.js b/verifyCredentials.js index d37692d..970805e 100644 --- a/verifyCredentials.js +++ b/verifyCredentials.js @@ -15,11 +15,11 @@ module.exports = function verify(credentials, cb) { // eslint-disable-next-line no-use-before-define checkOauth2EnvarsPresence(); - function checkResponse(err, response, body) { + function checkResponse(err, response) { if (err) { return cb(err); } - self.logger.info('Salesforce response was: %s %j', response.statusCode, body); + self.logger.info('Salesforce response status: %s', response.statusCode); if (response.statusCode === 401) { return cb(null, { verified: false }); } @@ -31,14 +31,13 @@ module.exports = function verify(credentials, cb) { } return cb(null, { verified: true }); } - self.logger.debug(credentials); if (!credentials.oauth || credentials.oauth.error) { return cb(null, { verified: false }); } const token = credentials.oauth.access_token; const url = `${credentials.oauth.instance_url}/services/data/${VERSION}/sobjects`; - self.logger.info('To verify credentials send request to %s', url); + self.logger.info('Sending verify credentials request...'); const options = { url,