Skip to content
Snippets Groups Projects
Commit 7c60da86 authored by Tania Fecheta's avatar Tania Fecheta
Browse files

refactor(authsome-helpers): change function filterReviewersRecommendation into 2 smaller functions

parent 7c140f05
No related branches found
No related tags found
3 merge requests!176Sprint 24,!171Sprint 24,!166Hin 1051 reviewers see all reports
......@@ -72,20 +72,20 @@ const filterAuthorRecommendations = (recommendations, status, isLast) => {
return []
}
const filterReviewerRecommendations = (recommendations, user, isLast) => {
const filterRecommendationsFromLastVersion = (recommendations, user) =>
recommendations
.filter(
r =>
r.userId === user.id || r.recommendationType === 'editorRecommendation',
)
.map(r => ({
...r,
comments: r.comments.filter(c => c.public === true),
}))
const filterRecommendationsFromOlderVersions = (recommendations, user) => {
const ownRecommendation = recommendations.find(r => r.userId === user.id)
if (isLast) {
return recommendations
.filter(
r =>
r.userId === user.id ||
r.recommendationType === 'editorRecommendation',
)
.map(r => ({
...r,
comments: r.comments.filter(c => c.public === true),
}))
} else if (ownRecommendation) {
if (ownRecommendation) {
return recommendations
.filter(
r => r.submittedOn || r.recommendationType === 'editorRecommendation',
......@@ -124,7 +124,8 @@ const stripeFragmentByRole = ({
user = {},
isLast = false,
}) => {
const { recommendations, files, authors } = fragment
const { files, authors, recommendations } = fragment
let recommendationsFromFragment
switch (role) {
case 'author':
return {
......@@ -134,13 +135,22 @@ const stripeFragmentByRole = ({
: [],
}
case 'reviewer':
if (isLast && recommendations) {
recommendationsFromFragment = filterRecommendationsFromLastVersion(
recommendations,
user,
)
} else if (recommendations) {
recommendationsFromFragment = filterRecommendationsFromOlderVersions(
recommendations,
user,
)
} else recommendationsFromFragment = []
return {
...fragment,
files: omit(files, ['coverLetter']),
authors: authors.map(a => omit(a, ['email'])),
recommendations: recommendations
? filterReviewerRecommendations(recommendations, user, isLast)
: [],
recommendations: recommendationsFromFragment,
}
case 'handlingEditor':
return {
......
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