harden domain architecture and add lazy Crossref+Unpaywall PDF enrichment with publications workspace refactor

This commit is contained in:
Justin Visser 2026-02-20 22:56:52 +01:00
parent a527e7a535
commit 01454162bb
62 changed files with 2562 additions and 688 deletions

View file

@ -11,6 +11,7 @@ export interface PublicationItem {
citation_count: number;
venue_text: string | null;
pub_url: string | null;
doi: string | null;
pdf_url: string | null;
is_read: boolean;
first_seen_at: string;
@ -83,3 +84,23 @@ export async function markSelectedRead(selections: PublicationSelection[]): Prom
});
return response.data;
}
export interface RetryPublicationPdfResult {
message: string;
resolved_pdf: boolean;
publication: PublicationItem;
}
export async function retryPublicationPdf(
publicationId: number,
scholarProfileId: number,
): Promise<RetryPublicationPdfResult> {
const response = await apiRequest<RetryPublicationPdfResult>(
`/publications/${publicationId}/retry-pdf`,
{
method: "POST",
body: { scholar_profile_id: scholarProfileId },
},
);
return response.data;
}

View file

@ -54,6 +54,7 @@ export interface PublicationExportItem {
author_text: string | null;
venue_text: string | null;
pub_url: string | null;
doi: string | null;
pdf_url: string | null;
is_read: boolean;
}