From c1dc7d29f186ca7dee6ac1a655c7453089a0da55 Mon Sep 17 00:00:00 2001 From: Bogdan Cochior <bogdan.cochior@thinslices.com> Date: Tue, 25 Sep 2018 14:11:02 +0300 Subject: [PATCH] fix(assignHE): show specific error and remove double invitation --- packages/component-faraday-ui/src/helpers/index.js | 2 ++ packages/component-faraday-ui/src/helpers/utils.js | 5 +++++ .../src/routes/collectionsInvitations/post.js | 2 +- .../src/components/ManuscriptPage.js | 10 ++++------ 4 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 packages/component-faraday-ui/src/helpers/utils.js diff --git a/packages/component-faraday-ui/src/helpers/index.js b/packages/component-faraday-ui/src/helpers/index.js index 8c28ee43e..f43ebc451 100644 --- a/packages/component-faraday-ui/src/helpers/index.js +++ b/packages/component-faraday-ui/src/helpers/index.js @@ -1,5 +1,7 @@ import * as validators from './formValidators' +export * from './utils' + export { default as withFilePreview } from './withFilePreview' export * from './withFileDownload' export { default as withNativeFileDrop } from './withNativeFileDrop' diff --git a/packages/component-faraday-ui/src/helpers/utils.js b/packages/component-faraday-ui/src/helpers/utils.js new file mode 100644 index 000000000..f99bf88b7 --- /dev/null +++ b/packages/component-faraday-ui/src/helpers/utils.js @@ -0,0 +1,5 @@ +import { get } from 'lodash' + +export const handleError = fn => e => { + fn(get(JSON.parse(e.response), 'error', 'Oops! Something went wrong!')) +} diff --git a/packages/component-invite/src/routes/collectionsInvitations/post.js b/packages/component-invite/src/routes/collectionsInvitations/post.js index 620e45bd8..6f28624ea 100644 --- a/packages/component-invite/src/routes/collectionsInvitations/post.js +++ b/packages/component-invite/src/routes/collectionsInvitations/post.js @@ -69,7 +69,6 @@ module.exports = models => async (req, res) => { try { const user = await UserModel.findByEmail(email) - await teamHelper.setupTeam({ user, role, objectType: 'collection' }) invitationHelper.userId = user.id let invitation = invitationHelper.getInvitation({ invitations: collection.invitations, @@ -89,6 +88,7 @@ module.exports = models => async (req, res) => { } invitation.invitedOn = Date.now() + await teamHelper.setupTeam({ user, role, objectType: 'collection' }) await collection.save() await collectionHelper.addHandlingEditor({ user, invitation }) diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js index b928e99eb..d75af1720 100644 --- a/packages/component-manuscript/src/components/ManuscriptPage.js +++ b/packages/component-manuscript/src/components/ManuscriptPage.js @@ -46,7 +46,7 @@ import { canOverrideTechnicalChecks, getInvitationsWithReviewersForFragment, } from 'pubsweet-component-faraday-selectors' -import { RemoteOpener } from 'pubsweet-component-faraday-ui' +import { RemoteOpener, handleError } from 'pubsweet-component-faraday-ui' import ManuscriptLayout from './ManuscriptLayout' import { parseEicDecision, parseSearchParams, redirectToError } from './utils' @@ -188,7 +188,7 @@ export default compose( fetchUpdatedCollection() modalProps.hideModal() }) - .catch(() => modalProps.setModalError('Oops! Something went wrong.')), + .catch(handleError(modalProps.setModalError)), revokeHE: ({ getCollection, revokeHandlingEditor, @@ -202,7 +202,7 @@ export default compose( getCollection({ id: collectionId }) modalProps.hideModal() }) - .catch(() => modalProps.setModalError('Oops! Something went wrong.')), + .catch(handleError(modalProps.setModalError)), createRecommendation: ({ fragment, collection, @@ -219,9 +219,7 @@ export default compose( fetchUpdatedCollection() modalProps.hideModal() }) - .catch(() => { - modalProps.setModalError('Oops! Something went wrong.') - }) + .catch(handleError(modalProps.setModalError)) }, onHEResponse: ({ history, -- GitLab