UNPKG

@vzeta/camunda-api-zod-schemas

Version:

Zod schemas and TypeScript types for Camunda 8 unified API

111 lines (110 loc) 3.18 kB
import { z } from "zod"; import { API_VERSION } from "../common.js"; const documentMetadataSchema = z.object({ contentType: z.string(), fileName: z.string(), expiresAt: z.string(), size: z.number(), processDefinitionId: z.string(), processInstanceKey: z.string(), customProperties: z.record(z.string(), z.unknown()) }); const documentReferenceSchema = z.object({ "camunda.document.type": z.literal("camunda"), storeId: z.string(), documentId: z.string(), contentHash: z.string(), metadata: documentMetadataSchema }); const documentCreationFailureDetailSchema = z.object({ fileName: z.string(), detail: z.string() }); const createDocumentsResponseBodySchema = z.object({ createdDocuments: z.array(documentReferenceSchema), failedDocuments: z.array(documentCreationFailureDetailSchema) }); const documentLinkRequestBodySchema = z.object({ timeToLive: z.number().optional().default(36e5) }); const documentLinkSchema = z.object({ url: z.string(), expiresAt: z.string() }); const createDocument = { method: "POST", getUrl({ storeId, documentId }) { const searchParams = new URLSearchParams(); if (storeId) { searchParams.set("storeId", storeId); } if (documentId) { searchParams.set("documentId", documentId); } const query = searchParams.toString(); return `/${API_VERSION}/documents${query ? `?${query}` : ""}`; } }; const createDocuments = { method: "POST", getUrl({ storeId } = {}) { const searchParams = new URLSearchParams(); if (storeId) { searchParams.set("storeId", storeId); } const query = searchParams.toString(); return `/${API_VERSION}/documents/batch${query ? `?${query}` : ""}`; } }; const getDocument = { method: "GET", getUrl({ documentId, storeId, contentHash }) { const searchParams = new URLSearchParams(); if (storeId) { searchParams.set("storeId", storeId); } if (contentHash) { searchParams.set("contentHash", contentHash); } const query = searchParams.toString(); return `/${API_VERSION}/documents/${documentId}${query ? `?${query}` : ""}`; } }; const deleteDocument = { method: "DELETE", getUrl({ documentId, storeId }) { const searchParams = new URLSearchParams(); if (storeId) { searchParams.set("storeId", storeId); } const query = searchParams.toString(); return `/${API_VERSION}/documents/${documentId}${query ? `?${query}` : ""}`; } }; const createDocumentLink = { method: "POST", getUrl({ documentId, storeId, contentHash }) { const searchParams = new URLSearchParams(); if (storeId) { searchParams.set("storeId", storeId); } if (contentHash) { searchParams.set("contentHash", contentHash); } const query = searchParams.toString(); return `/${API_VERSION}/documents/${documentId}/links${query ? `?${query}` : ""}`; } }; export { createDocument, createDocumentLink, createDocuments, createDocumentsResponseBodySchema, deleteDocument, documentCreationFailureDetailSchema, documentLinkRequestBodySchema, documentLinkSchema, documentMetadataSchema, documentReferenceSchema, getDocument };