@vzeta/camunda-api-zod-schemas
Version:
Zod schemas and TypeScript types for Camunda 8 unified API
203 lines (202 loc) • 5.47 kB
JavaScript
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
};