From ec8b49ea42b444f388e0cf5629867a152c7a371b Mon Sep 17 00:00:00 2001 From: Naz Date: Fri, 23 Jul 2021 16:58:35 +0400 Subject: [PATCH] Moved member importer declaration for readability refs https://github.com/TryGhost/Team/issues/912 - Exposing a single method out of the service makes the API surface smaller - more readable. - Additionlally having a wrapping method in service will be helpful for other triggers that are going to be executed in later iterations --- core/server/api/canary/members.js | 2 +- core/server/api/v3/members.js | 2 +- core/server/services/members/service.js | 26 +++++++++++++++---------- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/core/server/api/canary/members.js b/core/server/api/canary/members.js index da309d5fab..3118c4e0e5 100644 --- a/core/server/api/canary/members.js +++ b/core/server/api/canary/members.js @@ -479,7 +479,7 @@ module.exports = { const pathToCSV = frame.file.path; const headerMapping = frame.data.mapping; - return membersService.importer.process({ + return membersService.processImport({ pathToCSV, headerMapping, globalLabels, diff --git a/core/server/api/v3/members.js b/core/server/api/v3/members.js index 9c8bd5c7ff..6f275196d8 100644 --- a/core/server/api/v3/members.js +++ b/core/server/api/v3/members.js @@ -351,7 +351,7 @@ module.exports = { const pathToCSV = frame.file.path; const headerMapping = frame.data.mapping; - return membersService.importer.process({ + return membersService.processImport({ pathToCSV, headerMapping, globalLabels, diff --git a/core/server/services/members/service.js b/core/server/services/members/service.js index 5e76d6ae2d..0905dc4929 100644 --- a/core/server/services/members/service.js +++ b/core/server/services/members/service.js @@ -48,6 +48,21 @@ function reconfigureMembersAPI() { logging.error(err); }); } +const membersImporter = new MembersCSVImporter({ + storagePath: config.getContentPath('data'), + getTimezone: () => settingsCache.get('timezone'), + getMembersApi: () => membersApi, + sendEmail: ghostMailer.send.bind(ghostMailer), + isSet: labsService.isSet.bind(labsService), + addJob: jobsService.addJob.bind(jobsService), + knex: db.knex, + urlFor: urlUtils.urlFor.bind(urlUtils), + importThreshold: config.get('hostSettings.emailVerification.importThreshold') +}); + +const processImport = async (options) => { + return membersImporter.process(options); +}; const debouncedReconfigureMembersAPI = _.debounce(reconfigureMembersAPI, 600); @@ -127,16 +142,7 @@ const membersService = { stripeConnect: require('./stripe-connect'), - importer: new MembersCSVImporter({ - storagePath: config.getContentPath('data'), - getTimezone: () => settingsCache.get('timezone'), - getMembersApi: () => membersApi, - sendEmail: ghostMailer.send.bind(ghostMailer), - isSet: labsService.isSet.bind(labsService), - addJob: jobsService.addJob.bind(jobsService), - knex: db.knex, - urlFor: urlUtils.urlFor.bind(urlUtils) - }), + processImport: processImport, stats: new MembersStats({ db: db,