diff --git a/src/imports/facebookVerifier.js b/src/imports/facebookVerifier.js index cb7dbde7..e89acbb7 100644 --- a/src/imports/facebookVerifier.js +++ b/src/imports/facebookVerifier.js @@ -6,8 +6,14 @@ import { isPlainObject, get } from 'lodash' import Config from '../server/server.config' import logger from '../imports/logger' +const defaultLogger = logger.child({ from: 'FacebookVerifier' }) + class FacebookVerifier { - static factory(log = logger.child({ from: 'TorusVerifier' })) {} + static factory(logger = null) { + const log = logger || defaultLogger + + return new FacebookVerifier(Config, Axios.create, log) + } constructor(Config, httpFactory, logger) { const { facebookGraphApiUrl } = Config @@ -69,4 +75,4 @@ class FacebookVerifier { } } -export default new FacebookVerifier(Config, Axios.create, logger.child({ from: 'FacebookVerifier' })) +export default FacebookVerifier diff --git a/src/server/storage/verifier.js b/src/server/storage/verifier.js index d1492f59..a44e4ee1 100644 --- a/src/server/storage/verifier.js +++ b/src/server/storage/verifier.js @@ -71,8 +71,13 @@ class DefaultVerificationStrategy { } class FacebookVerificationStrategy { + constructor(verifier) { + assign(this, { verifier }) + } + async verify(requestPayload, userRecord, logger) { let emailVerified = false + const { verifier } = this const { email, torusAccessToken } = requestPayload if (userRecord.isEmailConfirmed) { @@ -86,7 +91,7 @@ class FacebookVerificationStrategy { } try { - emailVerified = await FacebookVerifier.verifyEmail(email, torusAccessToken, logger) + emailVerified = await verifier.verifyEmail(email, torusAccessToken, logger) } catch (exception) { const { message: msg } = exception @@ -112,7 +117,7 @@ class UserVerifier { // attaching strategies on first call if (!hasStrategiesAttached) { addStrategy('default', new DefaultVerificationStrategy(Config)) - addStrategy('facebook', new FacebookVerificationStrategy()) + addStrategy('facebook', new FacebookVerificationStrategy(FacebookVerifier.factory())) } return new UserVerifier(userRecord, requestPayload, logger)