UNPKG

@vzeta/camunda-api-zod-schemas

Version:

Zod schemas and TypeScript types for Camunda 8 unified API

203 lines (202 loc) 5.47 kB
import { z } from "zod"; import { getQueryRequestBodySchema, getQueryResponseBodySchema, API_VERSION } from "../common.js"; import { roleSchema, groupSchema } from "../group-role.js"; import { mappingRuleSchema } from "./mapping-rule.js"; import { userSchema } from "./user.js"; const createRoleRequestBodySchema = roleSchema; const createRoleResponseBodySchema = roleSchema; const updateRoleRequestBodySchema = roleSchema.pick({ name: true, description: true }); const updateRoleResponseBodySchema = roleSchema; const queryRolesRequestBodySchema = getQueryRequestBodySchema({ sortFields: ["name", "roleId"], filter: roleSchema.pick({ roleId: true, name: true }).partial() }); const queryRolesResponseBodySchema = getQueryResponseBodySchema(roleSchema); const queryUsersByRoleRequestBodySchema = getQueryRequestBodySchema({ sortFields: ["username"], filter: z.never() }); const queryUsersByRoleResponseBodySchema = getQueryResponseBodySchema(userSchema.pick({ username: true })); const queryClientsByRoleRequestBodySchema = getQueryRequestBodySchema({ sortFields: ["clientId"], filter: z.never() }); const queryClientsByRoleResponseBodySchema = getQueryResponseBodySchema( z.object({ clientId: z.string() }) ); const queryGroupsByRoleRequestBodySchema = getQueryRequestBodySchema({ sortFields: ["name", "groupId"], filter: groupSchema.pick({ groupId: true, name: true }).partial() }); const queryGroupsByRoleResponseBodySchema = getQueryResponseBodySchema(groupSchema); const queryMappingRulesByRoleRequestBodySchema = getQueryRequestBodySchema({ sortFields: ["claimName", "claimValue", "name"], filter: mappingRuleSchema.pick({ claimName: true, claimValue: true, name: true }).partial() }); const queryMappingRulesByRoleResponseBodySchema = getQueryResponseBodySchema(mappingRuleSchema); const createRole = { method: "POST", getUrl() { return `/${API_VERSION}/roles`; } }; const getRole = { method: "GET", getUrl(params) { const { roleId } = params; return `/${API_VERSION}/roles/${roleId}`; } }; const updateRole = { method: "PUT", getUrl(params) { const { roleId } = params; return `/${API_VERSION}/roles/${roleId}`; } }; const deleteRole = { method: "DELETE", getUrl(params) { const { roleId } = params; return `/${API_VERSION}/roles/${roleId}`; } }; const queryRoles = { method: "POST", getUrl() { return `/${API_VERSION}/roles/search`; } }; const queryUsersByRole = { method: "POST", getUrl(params) { const { roleId } = params; return `/${API_VERSION}/roles/${roleId}/users/search`; } }; const queryClientsByRole = { method: "POST", getUrl(params) { const { roleId } = params; return `/${API_VERSION}/roles/${roleId}/clients/search`; } }; const assignUserToRole = { method: "PUT", getUrl(params) { const { roleId, username } = params; return `/${API_VERSION}/roles/${roleId}/users/${username}`; } }; const unassignUserFromRole = { method: "DELETE", getUrl(params) { const { roleId, username } = params; return `/${API_VERSION}/roles/${roleId}/users/${username}`; } }; const assignClientToRole = { method: "PUT", getUrl(params) { const { roleId, clientId } = params; return `/${API_VERSION}/roles/${roleId}/clients/${clientId}`; } }; const unassignClientFromRole = { method: "DELETE", getUrl(params) { const { roleId, clientId } = params; return `/${API_VERSION}/roles/${roleId}/clients/${clientId}`; } }; const assignGroupToRole = { method: "PUT", getUrl(params) { const { roleId, groupId } = params; return `/${API_VERSION}/roles/${roleId}/groups/${groupId}`; } }; const unassignGroupFromRole = { method: "DELETE", getUrl(params) { const { roleId, groupId } = params; return `/${API_VERSION}/roles/${roleId}/groups/${groupId}`; } }; const queryGroupsByRole = { method: "POST", getUrl(params) { const { roleId } = params; return `/${API_VERSION}/roles/${roleId}/groups/search`; } }; const assignMappingToRole = { method: "PUT", getUrl(params) { const { roleId, mappingId } = params; return `/${API_VERSION}/roles/${roleId}/mappings/${mappingId}`; } }; const unassignMappingFromRole = { method: "DELETE", getUrl(params) { const { roleId, mappingId } = params; return `/${API_VERSION}/roles/${roleId}/mappings/${mappingId}`; } }; const queryMappingRulesByRole = { method: "POST", getUrl(params) { const { roleId } = params; return `/${API_VERSION}/roles/${roleId}/mapping-rules/search`; } }; export { assignClientToRole, assignGroupToRole, assignMappingToRole, assignUserToRole, createRole, createRoleRequestBodySchema, createRoleResponseBodySchema, deleteRole, getRole, queryClientsByRole, queryClientsByRoleRequestBodySchema, queryClientsByRoleResponseBodySchema, queryGroupsByRole, queryGroupsByRoleRequestBodySchema, queryGroupsByRoleResponseBodySchema, queryMappingRulesByRole, queryMappingRulesByRoleRequestBodySchema, queryMappingRulesByRoleResponseBodySchema, queryRoles, queryRolesRequestBodySchema, queryRolesResponseBodySchema, queryUsersByRole, queryUsersByRoleRequestBodySchema, queryUsersByRoleResponseBodySchema, roleSchema, unassignClientFromRole, unassignGroupFromRole, unassignMappingFromRole, unassignUserFromRole, updateRole, updateRoleRequestBodySchema, updateRoleResponseBodySchema };