@vzeta/camunda-api-zod-schemas
Version:
Zod schemas and TypeScript types for Camunda 8 unified API
97 lines (96 loc) • 3.3 kB
JavaScript
import { z } from "zod";
import { getQueryRequestBodySchema, getQueryResponseBodySchema, API_VERSION } from "../common.js";
const batchOperationTypeSchema = z.enum([
"CANCEL_PROCESS_INSTANCE",
"RESOLVE_INCIDENT",
"MIGRATE_PROCESS_INSTANCE",
"MODIFY_PROCESS_INSTANCE"
]);
const batchOperationStateSchema = z.enum([
"CREATED",
"ACTIVE",
"SUSPENDED",
"COMPLETED",
"COMPLETED_WITH_ERRORS",
"CANCELED",
"INCOMPLETED"
]);
const batchOperationItemStateSchema = z.enum(["ACTIVE", "COMPLETED", "CANCELED", "FAILED"]);
const batchOperationSchema = z.object({
batchOperationKey: z.string(),
state: batchOperationStateSchema,
batchOperationType: batchOperationTypeSchema,
startDate: z.string(),
endDate: z.string().optional(),
operationsTotalCount: z.number().int(),
operationsFailedCount: z.number().int(),
operationsCompletedCount: z.number().int()
});
const batchOperationItemSchema = z.object({
batchOperationKey: z.string(),
itemKey: z.string(),
processInstanceKey: z.string(),
state: batchOperationItemStateSchema,
processedDate: z.string().optional(),
errorMessage: z.string().optional()
});
const queryBatchOperationsRequestBodySchema = getQueryRequestBodySchema({
sortFields: ["batchOperationKey", "operationType", "state", "startDate", "endDate"],
filter: z.object({
batchOperationKey: z.string(),
operationType: batchOperationTypeSchema,
state: batchOperationStateSchema
}).partial()
});
const queryBatchOperationsResponseBodySchema = getQueryResponseBodySchema(batchOperationSchema);
const queryBatchOperationItemsRequestBodySchema = getQueryRequestBodySchema({
sortFields: ["batchOperationKey", "itemKey", "processInstanceKey", "state"],
filter: z.object({
batchOperationKey: z.string(),
itemKey: z.string(),
processInstanceKey: z.string(),
state: batchOperationItemStateSchema
}).partial()
});
const queryBatchOperationItemsResponseBodySchema = getQueryResponseBodySchema(batchOperationItemSchema);
const getBatchOperation = {
method: "GET",
getUrl: ({ batchOperationKey }) => `/${API_VERSION}/batch-operations/${batchOperationKey}`
};
const queryBatchOperations = {
method: "POST",
getUrl: () => `/${API_VERSION}/batch-operations/search`
};
const cancelBatchOperation = {
method: "PUT",
getUrl: ({ batchOperationKey }) => `/${API_VERSION}/batch-operations/${batchOperationKey}/cancellation`
};
const suspendBatchOperation = {
method: "PUT",
getUrl: ({ batchOperationKey }) => `/${API_VERSION}/batch-operations/${batchOperationKey}/suspension`
};
const resumeBatchOperation = {
method: "PUT",
getUrl: ({ batchOperationKey }) => `/${API_VERSION}/batch-operations/${batchOperationKey}/resumption`
};
const queryBatchOperationItems = {
method: "POST",
getUrl: () => `/${API_VERSION}/batch-operation-items/search`
};
export {
batchOperationItemSchema,
batchOperationItemStateSchema,
batchOperationSchema,
batchOperationStateSchema,
batchOperationTypeSchema,
cancelBatchOperation,
getBatchOperation,
queryBatchOperationItems,
queryBatchOperationItemsRequestBodySchema,
queryBatchOperationItemsResponseBodySchema,
queryBatchOperations,
queryBatchOperationsRequestBodySchema,
queryBatchOperationsResponseBodySchema,
resumeBatchOperation,
suspendBatchOperation
};