fix: ajustes de provisioning e layout nas empresas
This commit is contained in:
parent
ce6c8fdb3a
commit
70fdd8deb8
1 changed files with 17 additions and 3 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { randomBytes } from "crypto"
|
||||||
import { ConvexHttpClient } from "convex/browser"
|
import { ConvexHttpClient } from "convex/browser"
|
||||||
|
|
||||||
import { Prisma } from "@prisma/client"
|
import { Prisma } from "@prisma/client"
|
||||||
|
|
@ -31,7 +32,7 @@ function extractSecret(request: Request, url: URL): string | null {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
async function ensureConvexCompany(params: { tenantId: string; slug: string; name: string }) {
|
async function ensureConvexCompany(params: { tenantId: string; slug: string; name: string; provisioningCode: string }) {
|
||||||
if (!env.NEXT_PUBLIC_CONVEX_URL) {
|
if (!env.NEXT_PUBLIC_CONVEX_URL) {
|
||||||
throw new Error("Convex não configurado")
|
throw new Error("Convex não configurado")
|
||||||
}
|
}
|
||||||
|
|
@ -147,6 +148,8 @@ export async function POST(request: Request) {
|
||||||
where: { tenantId, slug: normalizedSlug },
|
where: { tenantId, slug: normalizedSlug },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const provisioningCode = existing?.provisioningCode ?? randomBytes(32).toString("hex")
|
||||||
|
|
||||||
const company =
|
const company =
|
||||||
existing ??
|
existing ??
|
||||||
(await prisma.company.create({
|
(await prisma.company.create({
|
||||||
|
|
@ -154,10 +157,16 @@ export async function POST(request: Request) {
|
||||||
tenantId,
|
tenantId,
|
||||||
name,
|
name,
|
||||||
slug: normalizedSlug,
|
slug: normalizedSlug,
|
||||||
|
provisioningCode,
|
||||||
},
|
},
|
||||||
}))
|
}))
|
||||||
|
|
||||||
await ensureConvexCompany({ tenantId, slug: company.slug, name: company.name })
|
await ensureConvexCompany({
|
||||||
|
tenantId,
|
||||||
|
slug: company.slug,
|
||||||
|
name: company.name,
|
||||||
|
provisioningCode: company.provisioningCode,
|
||||||
|
})
|
||||||
|
|
||||||
return jsonWithCors(
|
return jsonWithCors(
|
||||||
{
|
{
|
||||||
|
|
@ -179,7 +188,12 @@ export async function POST(request: Request) {
|
||||||
try {
|
try {
|
||||||
const fallback = await prisma.company.findFirst({ where: { tenantId, slug: normalizedSlug } })
|
const fallback = await prisma.company.findFirst({ where: { tenantId, slug: normalizedSlug } })
|
||||||
if (fallback) {
|
if (fallback) {
|
||||||
await ensureConvexCompany({ tenantId, slug: fallback.slug, name: fallback.name })
|
await ensureConvexCompany({
|
||||||
|
tenantId,
|
||||||
|
slug: fallback.slug,
|
||||||
|
name: fallback.name,
|
||||||
|
provisioningCode: fallback.provisioningCode,
|
||||||
|
})
|
||||||
return jsonWithCors(
|
return jsonWithCors(
|
||||||
{
|
{
|
||||||
company: {
|
company: {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue