Implement company provisioning codes and session tweaks
This commit is contained in:
parent
0fb9bf59b2
commit
2cba553efa
28 changed files with 1407 additions and 534 deletions
|
|
@ -1,3 +1,4 @@
|
|||
import { randomBytes } from "@noble/hashes/utils"
|
||||
import { ConvexError, v } from "convex/values"
|
||||
|
||||
import { mutation, query } from "./_generated/server"
|
||||
|
|
@ -13,6 +14,10 @@ function normalizeEmail(value: string) {
|
|||
return value.trim().toLowerCase()
|
||||
}
|
||||
|
||||
function generateProvisioningCode() {
|
||||
return Array.from(randomBytes(32), (b) => b.toString(16).padStart(2, "0")).join("")
|
||||
}
|
||||
|
||||
type ImportedUser = {
|
||||
email: string
|
||||
name: string
|
||||
|
|
@ -30,6 +35,7 @@ type ImportedQueue = {
|
|||
type ImportedCompany = {
|
||||
slug: string
|
||||
name: string
|
||||
provisioningCode?: string | null
|
||||
isAvulso?: boolean | null
|
||||
cnpj?: string | null
|
||||
domain?: string | null
|
||||
|
|
@ -185,6 +191,7 @@ async function ensureCompany(
|
|||
tenantId,
|
||||
name: data.name,
|
||||
slug,
|
||||
provisioningCode: data.provisioningCode ?? existing?.provisioningCode ?? generateProvisioningCode(),
|
||||
isAvulso: data.isAvulso ?? undefined,
|
||||
cnpj: data.cnpj ?? undefined,
|
||||
domain: data.domain ?? undefined,
|
||||
|
|
@ -204,7 +211,8 @@ async function ensureCompany(
|
|||
existing.domain !== (payload.domain ?? undefined) ||
|
||||
existing.phone !== (payload.phone ?? undefined) ||
|
||||
existing.description !== (payload.description ?? undefined) ||
|
||||
existing.address !== (payload.address ?? undefined)
|
||||
existing.address !== (payload.address ?? undefined) ||
|
||||
existing.provisioningCode !== payload.provisioningCode
|
||||
if (needsPatch) {
|
||||
await ctx.db.patch(existing._id, {
|
||||
name: payload.name,
|
||||
|
|
@ -214,6 +222,7 @@ async function ensureCompany(
|
|||
phone: payload.phone,
|
||||
description: payload.description,
|
||||
address: payload.address,
|
||||
provisioningCode: payload.provisioningCode,
|
||||
updatedAt: Date.now(),
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue