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 ensuredAssignedUserRole = context.assignedUserRole
if (!ensuredAssignedUserId && context.persona && context.assignedUserEmail) {
if (!ensuredAssignedUserId && context.assignedUserEmail) {
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, {
tenantId: context.tenantId ?? DEFAULT_TENANT_ID,
email: 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,
})) as {
_id?: Id<"users">
@ -114,7 +117,7 @@ export async function GET(request: NextRequest) {
await client.mutation(api.machines.updatePersona, {
machineId: machineId as Id<"machines">,
persona: context.persona ?? undefined,
persona: normalizedPersona,
assignedUserId: ensuredUser._id as Id<"users">,
assignedUserEmail: context.assignedUserEmail,
assignedUserName: ensuredAssignedUserName ?? undefined,
@ -136,7 +139,7 @@ export async function GET(request: NextRequest) {
const responsePayload = {
machineId: context.id,
persona: context.persona,
persona: context.persona ?? (ensuredAssignedUserRole ? ensuredAssignedUserRole.toLowerCase() : null),
assignedUserId: ensuredAssignedUserId,
assignedUserEmail: context.assignedUserEmail,
assignedUserName: ensuredAssignedUserName,