Skip to content

Commit

Permalink
Correctly inject a dependency #3234
Browse files Browse the repository at this point in the history
  • Loading branch information
erkannt committed May 13, 2024
1 parent 7a79acc commit 083e7ea
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 10 deletions.
2 changes: 1 addition & 1 deletion src/ingest/discover-published-evaluations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as TE from 'fp-ts/TaskEither';
import { FetchData } from './fetch-data';
import { DiscoveredPublishedEvaluations } from './types/discovered-published-evaluations';

type Dependencies = { fetchData: FetchData };
export type Dependencies = { fetchData: FetchData };

export type DiscoverPublishedEvaluations = (
ingestDays: number
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ import * as RA from 'fp-ts/ReadonlyArray';
import * as TE from 'fp-ts/TaskEither';
import { pipe } from 'fp-ts/function';
import { ingestionWindowStartDate } from './ingestion-window-start-date';
import { DiscoverPublishedEvaluations } from '../discover-published-evaluations';
import { fetchData } from '../fetch-data';
import { Dependencies, DiscoverPublishedEvaluations } from '../discover-published-evaluations';
import * as CR from '../third-parties/crossref';
import { constructPublishedEvaluation } from '../types/published-evaluation';

Expand Down Expand Up @@ -45,24 +44,33 @@ const toEvaluation = (review: CrossrefReview) => {
});
};

const fetchPaginatedData = (baseUrl: string, offset: number): TE.TaskEither<string, ReadonlyArray<BiorxivItem>> => pipe(
fetchData<BiorxivResponse>(`${baseUrl}/${offset}`),
const fetchPaginatedData = (
dependencies: Dependencies,
baseUrl: string,
offset: number,
): TE.TaskEither<string, ReadonlyArray<BiorxivItem>> => pipe(
dependencies.fetchData<BiorxivResponse>(`${baseUrl}/${offset}`),
TE.map((response) => response.collection),
TE.chain(RA.match(
() => TE.right([]),
(items) => pipe(
fetchPaginatedData(baseUrl, offset + items.length),
fetchPaginatedData(dependencies, baseUrl, offset + items.length),
TE.map((next) => [...items, ...next]),
),
)),
);

const identifyCandidates = (doiPrefix: string, reviewDoiPrefix: string, ingestDays: number) => {
const identifyCandidates = (
dependencies: Dependencies,
doiPrefix: string,
reviewDoiPrefix: string,
ingestDays: number,
) => {
const startDate = ingestionWindowStartDate(ingestDays).toISOString().split('T')[0];
const today = new Date().toISOString().split('T')[0];
const baseUrl = `https://api.biorxiv.org/publisher/${doiPrefix}/${startDate}/${today}`;
return pipe(
fetchPaginatedData(baseUrl, 0),
fetchPaginatedData(dependencies, baseUrl, 0),
TE.chain(TE.traverseSeqArray(getReviews(reviewDoiPrefix))),
TE.map(RA.flatten),
);
Expand All @@ -71,8 +79,8 @@ const identifyCandidates = (doiPrefix: string, reviewDoiPrefix: string, ingestDa
export const discoverEvaluationsFromCrossrefViaBiorxiv = (
doiPrefix: string,
reviewDoiPrefix: string,
): DiscoverPublishedEvaluations => (ingestDays) => () => pipe(
identifyCandidates(doiPrefix, reviewDoiPrefix, ingestDays),
): DiscoverPublishedEvaluations => (ingestDays) => (dependencies) => pipe(
identifyCandidates(dependencies, doiPrefix, reviewDoiPrefix, ingestDays),
TE.map(RA.map(toEvaluation)),
TE.map((evaluations) => ({
understood: evaluations,
Expand Down

0 comments on commit 083e7ea

Please sign in to comment.