diff --git a/src/app/api/machines/session/route.ts b/src/app/api/machines/session/route.ts index 5655b5a..d2cb7c0 100644 --- a/src/app/api/machines/session/route.ts +++ b/src/app/api/machines/session/route.ts @@ -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,