Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 1x 1x 3x 2x 1x | // src/services/providedDocumentsApi.ts
//
// Investor-facing view of documents an admin has provided to them (FSC-57).
// The admin write surface lives in adminDocumentsApi.ts.
import {api} from './api';
// ============================================================================
// Types
// ============================================================================
/** A document an admin attached for the investor to download. */
export interface ProvidedDocument {
providedDocumentId: number;
investorId: number;
title: string;
description: string | null;
originalFilename: string;
mimeType: string;
sizeBytes: number;
/** Username of the admin who provided it — null if that user was removed. */
uploadedByName: string | null;
createdAt: string;
}
export interface ProvidedDocumentsResponse {
documents: ProvidedDocument[];
}
// ============================================================================
// Endpoints
// ============================================================================
export const providedDocumentsApi = api.injectEndpoints({
endpoints: (builder) => ({
/** Documents an admin has provided to the authenticated investor. */
listMyProvidedDocuments: builder.query<ProvidedDocumentsResponse, void>({
query: () => '/investor/provided-documents',
transformResponse: (response: {data: ProvidedDocumentsResponse}) => response.data,
providesTags: ['ProvidedDocument']
}),
/** Download a provided document as a blob. */
downloadMyProvidedDocument: builder.mutation<Blob, number>({
query: (providedDocumentId) => ({
url: `/investor/provided-documents/${String(providedDocumentId)}/file`,
method: 'GET',
responseHandler: (response) => response.blob(),
cache: 'no-store'
})
})
})
});
export const {
useListMyProvidedDocumentsQuery,
useDownloadMyProvidedDocumentMutation
} = providedDocumentsApi;
|