Garante vínculo do colaborador mesmo sem persona inicial

This commit is contained in:
Esdras Renan 2025-10-13 20:36:58 -03:00
parent 549d9bcbd0
commit 92ec006c09

View file

@ -93,13 +93,16 @@ export async function GET(request: NextRequest) {
let ensuredAssignedUserName = context.assignedUserName let ensuredAssignedUserName = context.assignedUserName
let ensuredAssignedUserRole = context.assignedUserRole let ensuredAssignedUserRole = context.assignedUserRole
if (!ensuredAssignedUserId && context.persona && context.assignedUserEmail) { if (!ensuredAssignedUserId && context.assignedUserEmail) {
try { try {
const personaRole = (context.persona ?? context.assignedUserRole ?? "collaborator").toString().toLowerCase()
const normalizedPersona = personaRole && typeof personaRole === "string" ? personaRole : "collaborator"
const ensuredUser = (await client.mutation(api.users.ensureUser, { const ensuredUser = (await client.mutation(api.users.ensureUser, {
tenantId: context.tenantId ?? DEFAULT_TENANT_ID, tenantId: context.tenantId ?? DEFAULT_TENANT_ID,
email: context.assignedUserEmail, email: context.assignedUserEmail,
name: context.assignedUserName ?? context.assignedUserEmail, name: context.assignedUserName ?? context.assignedUserEmail,
role: (context.assignedUserRole ?? context.persona ?? "collaborator").toUpperCase(), role: normalizedPersona.toUpperCase(),
companyId: context.companyId ? (context.companyId as Id<"companies">) : undefined, companyId: context.companyId ? (context.companyId as Id<"companies">) : undefined,
})) as { })) as {
_id?: Id<"users"> _id?: Id<"users">
@ -114,7 +117,7 @@ export async function GET(request: NextRequest) {
await client.mutation(api.machines.updatePersona, { await client.mutation(api.machines.updatePersona, {
machineId: machineId as Id<"machines">, machineId: machineId as Id<"machines">,
persona: context.persona ?? undefined, persona: normalizedPersona,
assignedUserId: ensuredUser._id as Id<"users">, assignedUserId: ensuredUser._id as Id<"users">,
assignedUserEmail: context.assignedUserEmail, assignedUserEmail: context.assignedUserEmail,
assignedUserName: ensuredAssignedUserName ?? undefined, assignedUserName: ensuredAssignedUserName ?? undefined,
@ -136,7 +139,7 @@ export async function GET(request: NextRequest) {
const responsePayload = { const responsePayload = {
machineId: context.id, machineId: context.id,
persona: context.persona, persona: context.persona ?? (ensuredAssignedUserRole ? ensuredAssignedUserRole.toLowerCase() : null),
assignedUserId: ensuredAssignedUserId, assignedUserId: ensuredAssignedUserId,
assignedUserEmail: context.assignedUserEmail, assignedUserEmail: context.assignedUserEmail,
assignedUserName: ensuredAssignedUserName, assignedUserName: ensuredAssignedUserName,