Ajusta portal e desktop para máquina vinculada

This commit is contained in:
Esdras Renan 2025-10-13 19:20:16 -03:00
parent 0cac7aa23a
commit ba0dcddefb
4 changed files with 62 additions and 9 deletions

View file

@ -6,6 +6,7 @@ import { api } from "@/convex/_generated/api"
import type { Id } from "@/convex/_generated/dataModel"
import { env } from "@/lib/env"
import { assertAuthenticatedSession } from "@/lib/auth-server"
import { DEFAULT_TENANT_ID } from "@/lib/constants"
const MACHINE_CTX_COOKIE = "machine_ctx"
@ -88,17 +89,56 @@ export async function GET(request: NextRequest) {
authEmail: string | null
}
let ensuredAssignedUserId = context.assignedUserId
let ensuredAssignedUserName = context.assignedUserName
let ensuredAssignedUserRole = context.assignedUserRole
if (!ensuredAssignedUserId && context.persona && context.assignedUserEmail) {
try {
const ensuredUser = (await client.mutation(api.users.ensureUser, {
tenantId: context.tenantId ?? DEFAULT_TENANT_ID,
email: context.assignedUserEmail,
name: context.assignedUserName ?? context.assignedUserEmail,
avatarUrl: undefined,
role: (context.assignedUserRole ?? context.persona ?? "collaborator").toUpperCase(),
companyId: context.companyId ?? undefined,
})) as { _id?: Id<"users">; name?: string | null; role?: string | null } | null
if (ensuredUser?._id) {
ensuredAssignedUserId = ensuredUser._id as string
ensuredAssignedUserName = ensuredUser.name ?? context.assignedUserName
ensuredAssignedUserRole = ensuredUser.role ?? context.assignedUserRole
await client.mutation(api.machines.updatePersona, {
machineId: machineId as Id<"machines">,
persona: context.persona ?? undefined,
assignedUserId: ensuredUser._id as Id<"users">,
assignedUserEmail: context.assignedUserEmail,
assignedUserName: ensuredAssignedUserName ?? undefined,
assignedUserRole: (ensuredAssignedUserRole ?? context.persona ?? "collaborator").toUpperCase(),
})
}
} catch (error) {
console.error("[machines.session] Falha ao garantir usuário vinculado", error)
}
}
const responsePayload = {
machineId: context.id,
persona: context.persona,
assignedUserId: context.assignedUserId,
assignedUserId: ensuredAssignedUserId,
assignedUserEmail: context.assignedUserEmail,
assignedUserName: context.assignedUserName,
assignedUserRole: context.assignedUserRole,
assignedUserName: ensuredAssignedUserName,
assignedUserRole: ensuredAssignedUserRole,
}
const response = NextResponse.json({
machine: context,
machine: {
...context,
assignedUserId: ensuredAssignedUserId ?? null,
assignedUserName: ensuredAssignedUserName ?? null,
assignedUserRole: ensuredAssignedUserRole ?? null,
},
cookie: responsePayload,
})