From abeab643135773496c797865d13f09eff5b8b9a9 Mon Sep 17 00:00:00 2001 From: Sebastian Mihalache <sebi.mihalache@gmail.com> Date: Fri, 9 Nov 2018 12:07:52 +0200 Subject: [PATCH] feat(mts-package): handled case for multiple versions --- .../src/services/Fragment.js | 7 ++-- .../routes/fragmentsRecommendations/post.js | 26 +++++++++------ packages/component-mts-package/src/MTS.js | 10 +----- .../src/PackageManager.js | 2 +- .../component-mts-package/tests/MTS.test.js | 32 ------------------- 5 files changed, 22 insertions(+), 55 deletions(-) delete mode 100644 packages/component-mts-package/tests/MTS.test.js diff --git a/packages/component-helper-service/src/services/Fragment.js b/packages/component-helper-service/src/services/Fragment.js index 17fdd5939..5ed798f66 100644 --- a/packages/component-helper-service/src/services/Fragment.js +++ b/packages/component-helper-service/src/services/Fragment.js @@ -156,7 +156,7 @@ class Fragment { recommendations.map(async rec => { const user = await UserModel.find(rec.userId) - let assignmentDate, submissionDate, isReviewer + let assignmentDate, isReviewer if (rec.recommendationType === confRecommendations.type.editor) { if (user.id === collection.handlingEditor.id) { @@ -174,19 +174,20 @@ class Fragment { inv => inv.userId === user.id, ) assignmentDate = reviewerInvitation.respondedOn - submissionDate = rec.createdOn isReviewer = true } return { isReviewer, - submissionDate, assignmentDate, email: user.email, title: user.title, recommendation: rec, + country: user.country, lastName: user.lastName, firstName: user.firstName, + submissionDate: rec.createdOn, + affiliation: user.affiliation, } }), ) diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js index 80fc1588c..55722ea66 100644 --- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js +++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js @@ -94,16 +94,22 @@ module.exports = models => async (req, res) => { // 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) { if (features.mts) { - const fragmentUsers = await fragmentHelper.getReviewersAndEditorsData({ - collection, - UserModel: models.User, - }) - - await sendMTSPackage({ - collection, - fragment, - isEQA: true, - fragmentUsers, + collection.fragments.forEach(async fragmentId => { + const fragment = await models.Fragment.find(fragmentId) + fragmentHelper.fragment = fragment + const fragmentUsers = await fragmentHelper.getReviewersAndEditorsData( + { + collection, + UserModel: models.User, + }, + ) + + await sendMTSPackage({ + collection, + fragment, + isEQA: true, + fragmentUsers, + }) }) } diff --git a/packages/component-mts-package/src/MTS.js b/packages/component-mts-package/src/MTS.js index 619921805..3f9e503df 100644 --- a/packages/component-mts-package/src/MTS.js +++ b/packages/component-mts-package/src/MTS.js @@ -41,7 +41,7 @@ module.exports = { }).then(() => { const packageName = get(xmlFile, 'name', '').replace('.xml', '') const filename = isEQA - ? `ACCEPTED_${packageName}.zip` + ? `ACCEPTED_${packageName}.${fragment.version}.zip` : `${packageName}.zip` return PackageManager.uploadFiles({ @@ -52,11 +52,3 @@ module.exports = { }) }, } - -// const convertSample = filePath => { -// const fs = require('fs') -// const xml = fs.readFileSync(filePath, 'utf8') -// const result = convert.xml2js(xml, this.options) -// const newFile = filePath.replace('.xml', '.json') -// return fs.writeFile(newFile, JSON.stringify(result)) -// } diff --git a/packages/component-mts-package/src/PackageManager.js b/packages/component-mts-package/src/PackageManager.js index cb9b8ea4c..367567b1c 100644 --- a/packages/component-mts-package/src/PackageManager.js +++ b/packages/component-mts-package/src/PackageManager.js @@ -22,7 +22,7 @@ const createFilesPackage = (s3Config, archiver = nodeArchiver) => { const { files = {} } = fragment let packageName = get(xmlFile, 'name', '').replace('.xml', '') if (isEQA) { - packageName = `ACCEPTED_${packageName}` + packageName = `ACCEPTED_${packageName}.${fragment.version}` } try { const s3FileIDs = Object.values(files) diff --git a/packages/component-mts-package/tests/MTS.test.js b/packages/component-mts-package/tests/MTS.test.js deleted file mode 100644 index a369322a8..000000000 --- a/packages/component-mts-package/tests/MTS.test.js +++ /dev/null @@ -1,32 +0,0 @@ -process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0' -process.env.SUPPRESS_NO_CONFIG_WARNING = true - -// const MTSService = require('../src/MTS') -// const mocks = require('./mocks') - -jest.mock('xml-js', () => ({ - json2xml: jest.fn(), - xml2js: jest.fn(), -})) - -describe('MTS integration', () => { - // let MTS - // beforeEach(() => { - // MTS = new MTSService(mocks.config.defaultConfig) - // }) - // it('should be instantiated', () => { - // const result = MTS - // expect(result).toBeDefined() - // }) - // it('should return basic json for XML parsing', () => { - // const result = MTS.composeJson({}) - // expect(result).toHaveProperty('article') - // }) - // it('should contain configured journal name ', () => { - // const result = MTS.composeJson({ fragment: mocks.fragment }) - // expect(result).toHaveProperty( - // 'article.front.journal-meta.journal-title-group.journal-title._text', - // 'Bioinorganic Chemistry and Applications', - // ) - // }) -}) -- GitLab