From dd2c009721399660e9d124aea0d68aeef54179a5 Mon Sep 17 00:00:00 2001 From: Bogdan Cochior <bogdan.cochior@thinslices.com> Date: Fri, 21 Sep 2018 15:26:17 +0300 Subject: [PATCH] refactor(mts): add feature flag and .env var --- .../src/routes/fragments/post.js | 34 ++++++++++++------- .../routes/fragmentsRecommendations/post.js | 34 ++++++++++++------- packages/xpub-faraday/config/default.js | 3 ++ 3 files changed, 45 insertions(+), 26 deletions(-) diff --git a/packages/component-manuscript-manager/src/routes/fragments/post.js b/packages/component-manuscript-manager/src/routes/fragments/post.js index 2ec4ab94a..7b5410258 100644 --- a/packages/component-manuscript-manager/src/routes/fragments/post.js +++ b/packages/component-manuscript-manager/src/routes/fragments/post.js @@ -8,9 +8,25 @@ const { const notifications = require('./notifications/notifications') -const s3Config = get(config, 'pubsweet-component-aws-s3', {}) -const mtsConfig = get(config, 'mts-service', {}) -const MTSService = require('pubsweet-component-mts-package') +const { features = {} } = config + +const sendMTSPackage = async (collection, fragment) => { + const s3Config = get(config, 'pubsweet-component-aws-s3', {}) + const mtsConfig = get(config, 'mts-service', {}) + const MTSService = require('pubsweet-component-mts-package') + + const { journal, xmlParser, ftp } = mtsConfig + const MTS = new MTSService(journal, xmlParser, s3Config, ftp) + const packageFragment = { + ...fragment, + metadata: { + ...fragment.metadata, + customId: collection.customId, + }, + } + + await MTS.sendPackage({ fragment: packageFragment }) +} module.exports = models => async (req, res) => { const { collectionId, fragmentId } = req.params @@ -42,18 +58,10 @@ module.exports = models => async (req, res) => { set(collection, 'technicalChecks.token', v4()) await collection.save() - const { journal, xmlParser, ftp } = mtsConfig - const MTS = new MTSService(journal, xmlParser, s3Config, ftp) - const packageFragment = { - ...fragment, - metadata: { - ...fragment.metadata, - customId: collection.customId, - }, + if (features.mts) { + await sendMTSPackage(collection, fragment) } - await MTS.sendPackage({ fragment: packageFragment }) - notifications.sendNotifications({ fragment, collection, diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js index 6b2ccae9c..ee36ebb09 100644 --- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js +++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js @@ -9,9 +9,25 @@ const { Collection, } = require('pubsweet-component-helper-service') -const s3Config = get(config, 'pubsweet-component-aws-s3', {}) -const mtsConfig = get(config, 'mts-service', {}) -const MTSService = require('pubsweet-component-mts-package') +const { features = {} } = config + +const sendMTSPackage = async (collection, fragment) => { + const s3Config = get(config, 'pubsweet-component-aws-s3', {}) + const mtsConfig = get(config, 'mts-service', {}) + const MTSService = require('pubsweet-component-mts-package') + + const { journal, xmlParser, ftp } = mtsConfig + const MTS = new MTSService(journal, xmlParser, s3Config, ftp) + const packageFragment = { + ...fragment, + metadata: { + ...fragment.metadata, + customId: collection.customId, + }, + } + + await MTS.sendPackage({ fragment: packageFragment }) +} const notifications = require('./notifications/notifications') @@ -80,18 +96,10 @@ module.exports = models => async (req, res) => { const hasEQA = has(technicalChecks, 'eqa') // the manuscript has not yet passed through the EQA process so we need to upload it to the FTP server if (isEditorInChief && recommendation === 'publish' && !hasEQA) { - const { journal, xmlParser, ftp } = mtsConfig - const MTS = new MTSService(journal, xmlParser, s3Config, ftp) - const packageFragment = { - ...fragment, - metadata: { - ...fragment.metadata, - customId: collection.customId, - }, + if (features.mts) { + await sendMTSPackage(collection, fragment) } - await MTS.sendPackage({ fragment: packageFragment, isEQA: true }) - collection.status = 'inQA' set(collection, 'technicalChecks.token', v4()) set(collection, 'technicalChecks.eqa', false) diff --git a/packages/xpub-faraday/config/default.js b/packages/xpub-faraday/config/default.js index 4fc862bd5..b00ae42ca 100644 --- a/packages/xpub-faraday/config/default.js +++ b/packages/xpub-faraday/config/default.js @@ -124,4 +124,7 @@ module.exports = { name: get(journalConfig, 'metadata.nameText'), staffEmail: get(journalConfig, 'metadata.email'), }, + features: { + mts: JSON.parse(get(process, 'env.FEATURE_MTS', true)), + }, } -- GitLab