| import { apiRequest } from "./client"; | |
| /** | |
| * Uploads one or more files to a workspace. | |
| * Response shape (per app/schemas/document.py DocumentUploadResponse): | |
| * { | |
| * uploaded: [{ document_id, version_id, workflow_id, filename, processing_stage, uploaded_at }], | |
| * failed: [{ filename, detail }] | |
| * } | |
| */ | |
| export async function uploadDocuments(workspaceId, files) { | |
| const formData = new FormData(); | |
| for (const file of files) { | |
| formData.append("files", file); | |
| } | |
| return apiRequest( | |
| `/documents/upload?workspace_id=${encodeURIComponent(workspaceId)}`, | |
| "POST", | |
| formData | |
| ); | |
| } | |
| /** | |
| * GET /documents?workspace_id={uuid} | |
| * Returns all documents in the workspace with latest version/workflow info. | |
| */ | |
| export async function listDocuments(workspaceId) { | |
| return apiRequest(`/documents?workspace_id=${encodeURIComponent(workspaceId)}`); | |
| } | |
| /** | |
| * DELETE /documents/{document_id} | |
| * Deletes a document and cancels any active workflows. | |
| */ | |
| export async function deleteDocument(documentId) { | |
| return apiRequest(`/documents/${documentId}`, "DELETE"); | |
| } | |
| /** | |
| * POST /documents/{document_id}/retry | |
| * Retries processing a failed document. | |
| */ | |
| export async function retryDocument(documentId) { | |
| return apiRequest(`/documents/${documentId}/retry`, "POST"); | |
| } | |