diff --git a/common/errorCodes.js b/common/errorCodes.js index 993d2a2e..071f4dd0 100644 --- a/common/errorCodes.js +++ b/common/errorCodes.js @@ -1,4 +1,5 @@ module.exports = { ERR_MISSING_PASSPHRASE: 'ERR_MISSING_PASSPHRASE', ERR_OSSL_BAD_DECRYPT: 'ERR_OSSL_BAD_DECRYPT', + ERR_INVALID_USERNAME: '390144', }; diff --git a/common/getKeyPairConnectionErrorMessageByCode.js b/common/getKeyPairConnectionErrorMessageByCode.js new file mode 100644 index 00000000..86ad8a83 --- /dev/null +++ b/common/getKeyPairConnectionErrorMessageByCode.js @@ -0,0 +1,14 @@ +const errorMessages = require('./errorMessages.js'); +const errorCodes = require('./errorCodes.js'); + +const ERROR_CODE_TO_MESSAGE = { + [errorCodes.ERR_MISSING_PASSPHRASE]: errorMessages.KEY_PAIR_ERROR, + [errorCodes.ERR_OSSL_BAD_DECRYPT]: errorMessages.KEY_PAIR_ERROR, + [errorCodes.ERR_INVALID_USERNAME]: errorMessages.KEY_PAIR_ERROR, +}; + +const getKeyPairConnectionErrorMessageByCode = code => ERROR_CODE_TO_MESSAGE[code]; + +module.exports = { + getKeyPairConnectionErrorMessageByCode, +}; diff --git a/forward_engineering/helpers/handleError.js b/forward_engineering/helpers/handleError.js index e6992289..6aec6489 100644 --- a/forward_engineering/helpers/handleError.js +++ b/forward_engineering/helpers/handleError.js @@ -1,12 +1,12 @@ -const errorMessages = require('../../common/errorMessages.js'); -const errorCodes = require('../../common/errorCodes.js'); +const { getKeyPairConnectionErrorMessageByCode } = require('../../common/getKeyPairConnectionErrorMessageByCode.js'); const handleError = (logger, error, callback) => { logger.log('error', error, 'Error when applying to instance'); - if (error.code === errorCodes.ERR_MISSING_PASSPHRASE || error.code === errorCodes.ERR_OSSL_BAD_DECRYPT) { + const keyPairConnectionErrorMessage = getKeyPairConnectionErrorMessageByCode(error.code); + if (keyPairConnectionErrorMessage) { return callback({ - message: errorMessages.KEY_PAIR_ERROR, + message: keyPairConnectionErrorMessage, type: 'simpleError', }); } diff --git a/reverse_engineering/api.js b/reverse_engineering/api.js index aecacee5..38533e78 100644 --- a/reverse_engineering/api.js +++ b/reverse_engineering/api.js @@ -5,6 +5,7 @@ const snowflakeHelper = require('./helpers/snowflakeHelper'); const ssoHelper = require('./helpers/ssoHelper'); const errorMessages = require('../common/errorMessages.js'); const errorCodes = require('../common/errorCodes.js'); +const { handleError } = require('./helpers/handleError.js'); const connect = async (connectionInfo, logger, cb) => { logger.clear(); @@ -271,21 +272,6 @@ const getSampleDocSize = (count, recordSamplingSettings) => { return Math.min(limit, recordSamplingSettings.maxValue); }; -const handleError = (logger, error, cb) => { - logger.log('error', { error }, 'Reverse Engineering error'); - - if (error.code === errorCodes.ERR_MISSING_PASSPHRASE || error.code === errorCodes.ERR_OSSL_BAD_DECRYPT) { - return cb({ - message: errorMessages.KEY_PAIR_ERROR, - type: 'simpleError', - }); - } - - const message = _.isString(error) ? error : _.get(error, 'message', 'Reverse Engineering error'); - - return cb({ message }); -}; - module.exports = { connect, disconnect, diff --git a/reverse_engineering/helpers/handleError.js b/reverse_engineering/helpers/handleError.js new file mode 100644 index 00000000..7ef119cd --- /dev/null +++ b/reverse_engineering/helpers/handleError.js @@ -0,0 +1,25 @@ +const { getKeyPairConnectionErrorMessageByCode } = require('../../common/getKeyPairConnectionErrorMessageByCode.js'); + +const handleError = (logger, error, cb) => { + logger.log('error', { error }, 'Reverse Engineering error'); + + const keyPairConnectionErrorMessage = getKeyPairConnectionErrorMessageByCode(error.code); + if (keyPairConnectionErrorMessage) { + return cb({ + message: keyPairConnectionErrorMessage, + type: 'simpleError', + }); + } + + if (typeof error === 'string') { + return cb({ message: error }); + } + + const message = error?.message ?? 'Reverse Engineering error'; + + return cb({ message }); +}; + +module.exports = { + handleError, +};