Skip to content

Commit

Permalink
Don't fail when there are other peer review groups
Browse files Browse the repository at this point in the history
  • Loading branch information
thewilkybarkid committed Feb 14, 2024
1 parent b4b92c6 commit 9bb1f46
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 19 deletions.
48 changes: 30 additions & 18 deletions src/Orcid.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,38 +78,50 @@ export const deletePeerReview = ({
yield* _(HttpClient.request.del(`${orcid}/peer-review/${id}`), client)
})

const PeerReviewsSchema = Schema.struct({
group: Schema.array(
const PrereviewGroupSchema = Schema.struct({
'external-ids': Schema.struct({
'external-id': Schema.tuple(
Schema.struct({
'external-id-type': Schema.literal('peer-review'),
'external-id-value': Schema.literal('orcid-generated:prereview'),
}),
),
}),
'peer-review-group': Schema.array(
Schema.struct({
'external-ids': Schema.struct({
'external-id': Schema.tuple(
Schema.struct({
'external-id-type': Schema.literal('peer-review'),
'external-id-value': Schema.string,
'external-id-type': Schema.literal('doi'),
'external-id-value': DoiSchema,
}),
),
}),
'peer-review-group': Schema.array(
'peer-review-summary': Schema.tuple(
Schema.struct({
'external-ids': Schema.struct({
'external-id': Schema.tuple(
Schema.struct({
'external-id-type': Schema.literal('doi'),
'external-id-value': DoiSchema,
}),
),
}),
'peer-review-summary': Schema.tuple(
Schema.struct({
'put-code': Schema.number,
}),
),
'put-code': Schema.number,
}),
),
}),
),
})

export type PrereviewGroupSchema = Schema.Schema.To<typeof PrereviewGroupSchema>

const OtherPeerReviewGroupSchema = Schema.struct({
'external-ids': Schema.struct({
'external-id': Schema.tuple(
Schema.struct({
'external-id-value': Schema.string,
}),
),
}),
})

const PeerReviewsSchema = Schema.struct({
group: Schema.array(Schema.union(PrereviewGroupSchema, OtherPeerReviewGroupSchema)),
})

const NewPeerReviewSchema = Schema.struct({
'reviewer-role': Schema.literal('reviewer'),
'review-identifiers': Schema.struct({
Expand Down
3 changes: 2 additions & 1 deletion src/Program.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ const getPeerReviewsForOrcidId = flow(
(user: Users.User) => Orcid.getPeerReviewsForOrcidId(user.orcidId),
Effect.flatMap(
ReadonlyArray.findFirst(
group => group['external-ids']['external-id'][0]['external-id-value'] === 'orcid-generated:prereview',
(group): group is Orcid.PrereviewGroupSchema =>
group['external-ids']['external-id'][0]['external-id-value'] === 'orcid-generated:prereview',
),
),
Effect.map(group =>
Expand Down

0 comments on commit 9bb1f46

Please sign in to comment.