Skip to content
Snippets Groups Projects
Commit eed35286 authored by Iosif Boanca's avatar Iosif Boanca
Browse files

fix(publons): refactor and fix WIP

parent f98d9eba
No related branches found
No related tags found
2 merge requests!110Sprint 21 Features,!91Hin 904 fixes after merge
import React, { Fragment } from 'react' import React, { Fragment } from 'react'
import { get, last } from 'lodash'
import styled from 'styled-components' import styled from 'styled-components'
import { th } from '@pubsweet/ui-toolkit' import { th } from '@pubsweet/ui-toolkit'
import { Button, Spinner } from '@pubsweet/ui' import { Button, Spinner } from '@pubsweet/ui'
import { get } from 'lodash'
import { compose, withHandlers, withProps } from 'recompose' import { compose, withHandlers, withProps } from 'recompose'
import { Label, OpenModal, Text, withFetching } from '../' import { Label, OpenModal, Text, withFetching } from '../'
...@@ -83,11 +83,12 @@ export default compose( ...@@ -83,11 +83,12 @@ export default compose(
})), })),
withHandlers({ withHandlers({
onInviteReviewer: ({ onInvite }) => (reviewer, modalProps) => { onInviteReviewer: ({ onInvite }) => (reviewer, modalProps) => {
const names = reviewer.name.split(' ')
const newReviewer = { const newReviewer = {
email: reviewer.email, email: reviewer.email,
role: 'reviewer', role: 'reviewer',
firstName: reviewer.name, firstName: names[0],
lastName: '', lastName: last(names),
} }
onInvite(newReviewer, modalProps) onInvite(newReviewer, modalProps)
}, },
......
...@@ -124,7 +124,7 @@ module.exports = models => async (req, res) => { ...@@ -124,7 +124,7 @@ module.exports = models => async (req, res) => {
const userHelper = new User({ UserModel }) const userHelper = new User({ UserModel })
const userData = req.body const userData = req.body
const { firstName, lastName, isPublons } = userData const { firstName = '', lastName = '', isPublons } = userData
if (!services.checkForUndefinedParams(firstName, lastName)) { if (!services.checkForUndefinedParams(firstName, lastName)) {
return res return res
.status(400) .status(400)
...@@ -133,7 +133,10 @@ module.exports = models => async (req, res) => { ...@@ -133,7 +133,10 @@ module.exports = models => async (req, res) => {
if (isPublons && process.env.PUBLONS_MOCK_EMAIL) { if (isPublons && process.env.PUBLONS_MOCK_EMAIL) {
const mockEmail = process.env.PUBLONS_MOCK_EMAIL const mockEmail = process.env.PUBLONS_MOCK_EMAIL
userData.email = mockEmail.replace('__NAME__', `${firstName}.${lastName}`) userData.email = mockEmail.replace(
'__NAME__',
`${firstName.trim()}.${lastName.trim()}`,
)
} }
const newUser = await userHelper.createUser({ const newUser = await userHelper.createUser({
......
...@@ -209,6 +209,22 @@ export default compose( ...@@ -209,6 +209,22 @@ export default compose(
getFragment(collection, fragment) getFragment(collection, fragment)
getUsers() getUsers()
}, },
getPublonsReviewers: ({ clearError, setFetching, setPublonsReviewers }) => (
fragmentId,
errorFn,
) => {
clearError()
setFetching(true)
getPublonsReviewers(fragmentId)
.then(res => {
setFetching(false)
setPublonsReviewers(res)
})
.catch(e => {
setFetching(false)
handleError(errorFn)(e)
})
},
}), }),
withHandlers({ withHandlers({
updateManuscript: ({ updateVersion, collection, fragment }) => data => updateManuscript: ({ updateVersion, collection, fragment }) => data =>
...@@ -418,27 +434,26 @@ export default compose( ...@@ -418,27 +434,26 @@ export default compose(
}), }),
withHandlers({ withHandlers({
onInvitePublonReviewer: ({ onInvitePublonReviewer: ({
collection, setError,
fragment, fragment,
collection,
clearError,
getPublonsReviewers,
fetchUpdatedCollection, fetchUpdatedCollection,
setFetching: setListFetching, setFetching: setListFetching,
setError, }) => (reviewerData, { hideModal, setModalError, setFetching }) => {
clearError,
}) => (values, { hideModal, setModalError, setFetching }) => {
setFetching(true) setFetching(true)
inviteReviewer({ inviteReviewer({
reviewerData: values, reviewerData,
isPublons: true,
fragmentId: fragment.id, fragmentId: fragment.id,
collectionId: collection.id, collectionId: collection.id,
isPublon: true,
}) })
.then(() => { .then(() => {
setFetching(false) setFetching(false)
hideModal() hideModal()
fetchUpdatedCollection() fetchUpdatedCollection()
getPublonsReviewers('plm') // fragment.id) getPublonsReviewers('plm', setModalError) // fragment.id)
.then(r => console.log('dupa publons', r))
.catch(handleError(setError))
}) })
.catch(err => { .catch(err => {
setFetching(false) setFetching(false)
...@@ -477,12 +492,13 @@ export default compose( ...@@ -477,12 +492,13 @@ export default compose(
const { const {
match, match,
history, history,
setError,
location, location,
shouldReview, shouldReview,
reviewerReports, reviewerReports,
setEditorInChief, setEditorInChief,
clearCustomError, clearCustomError,
setPublonsReviewers, getPublonsReviewers,
hasManuscriptFailure, hasManuscriptFailure,
fetchUpdatedCollection, fetchUpdatedCollection,
currentUser: { currentUser: {
...@@ -491,9 +507,6 @@ export default compose( ...@@ -491,9 +507,6 @@ export default compose(
isHEToManuscript, isHEToManuscript,
permissions: { canInviteReviewers }, permissions: { canInviteReviewers },
}, },
setFetching,
setError,
clearError,
} = this.props } = this.props
if (hasManuscriptFailure) { if (hasManuscriptFailure) {
...@@ -516,26 +529,7 @@ export default compose( ...@@ -516,26 +529,7 @@ export default compose(
) )
if (canInviteReviewers) { if (canInviteReviewers) {
clearError() getPublonsReviewers(fragmentId, setError)
setFetching(true)
getPublonsReviewers(fragmentId)
.then(res => {
setFetching(false)
setPublonsReviewers(
res.map(r => {
const names = r.name.split(' ')
return {
...r,
firstName: names[0],
lastName: last(names),
}
}),
)
})
.catch(e => {
setFetching(false)
handleError(setError)(e)
})
} }
if (isInvitedHE) { if (isInvitedHE) {
......
...@@ -60,9 +60,9 @@ export const getCollectionReviewers = (collectionId, fragmentId) => dispatch => ...@@ -60,9 +60,9 @@ export const getCollectionReviewers = (collectionId, fragmentId) => dispatch =>
// #endregion // #endregion
export const inviteReviewer = ({ export const inviteReviewer = ({
fragmentId,
reviewerData, reviewerData,
collectionId, collectionId,
fragmentId,
isPublons = false, isPublons = false,
}) => }) =>
create(`/collections/${collectionId}/fragments/${fragmentId}/invitations`, { create(`/collections/${collectionId}/fragments/${fragmentId}/invitations`, {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment