57 lines
2.4 KiB
TypeScript
57 lines
2.4 KiB
TypeScript
import { apiDelete, apiGet, apiPost } from "./axios";
|
|
import type { ApiListResponse } from "../types/api";
|
|
import type {
|
|
Acknowledgement,
|
|
Distribution,
|
|
DocumentDetail,
|
|
DocumentSummary,
|
|
DocumentVersion,
|
|
WorkflowTemplate,
|
|
} from "../types/documents";
|
|
|
|
export const fetchDocuments = (params: Record<string, any>) =>
|
|
apiGet<ApiListResponse<DocumentSummary>>("/api/v1/documents", { params });
|
|
|
|
export const createDocument = (payload: Record<string, any>) =>
|
|
apiPost<DocumentSummary>("/api/v1/documents", payload);
|
|
|
|
export const deleteDocument = (documentId: string) =>
|
|
apiDelete<DocumentSummary>(`/api/v1/documents/${documentId}`);
|
|
|
|
export const fetchDocumentDetail = (documentId: string) =>
|
|
apiGet<DocumentDetail>(`/api/v1/documents/${documentId}`);
|
|
|
|
export const uploadDocumentVersion = (documentId: string, payload: FormData) =>
|
|
apiPost<DocumentVersion>(`/api/v1/documents/${documentId}/versions`, payload, {
|
|
headers: { "Content-Type": "multipart/form-data" },
|
|
});
|
|
|
|
export const submitVersion = (versionId: string, payload: { template_id: string; comment?: string }) =>
|
|
apiPost<DocumentVersion>(`/api/v1/versions/${versionId}/submit`, payload);
|
|
|
|
export const approveVersion = (versionId: string, payload: { comment?: string }) =>
|
|
apiPost<DocumentVersion>(`/api/v1/versions/${versionId}/approve`, payload);
|
|
|
|
export const rejectVersion = (versionId: string, payload: { comment?: string }) =>
|
|
apiPost<DocumentVersion>(`/api/v1/versions/${versionId}/reject`, payload);
|
|
|
|
export const makeVersionEffective = (versionId: string) =>
|
|
apiPost<DocumentVersion>(`/api/v1/versions/${versionId}/make-effective`);
|
|
|
|
export const downloadDocumentVersion = (versionId: string) =>
|
|
apiGet<Blob>(`/api/v1/versions/${versionId}/download`, {
|
|
responseType: "blob",
|
|
});
|
|
|
|
export const listWorkflowTemplates = (params?: { trial_id?: string }) =>
|
|
apiGet<WorkflowTemplate[]>(`/api/v1/workflow-templates`, { params });
|
|
|
|
export const listDistributions = (versionId: string) =>
|
|
apiGet<Distribution[]>(`/api/v1/versions/${versionId}/distributions`);
|
|
|
|
export const createDistributions = (versionId: string, payload: Record<string, any>) =>
|
|
apiPost<Distribution[]>(`/api/v1/versions/${versionId}/distributions`, payload);
|
|
|
|
export const createAcknowledgement = (distributionId: string, payload: { ack_type: string; evidence?: string }) =>
|
|
apiPost<Acknowledgement>(`/api/v1/distributions/${distributionId}/acknowledgements`, payload);
|