move userstats record creation inside tx

This commit is contained in:
Waleed Latif
2026-02-11 20:22:27 -08:00
parent 720137414f
commit ad109712c0
2 changed files with 26 additions and 26 deletions

View File

@@ -142,19 +142,6 @@ export async function POST() {
return NextResponse.json({ attributed: false, reason: 'account_predates_cookie' })
}
const [existingStats] = await db
.select({ id: userStats.id })
.from(userStats)
.where(eq(userStats.userId, session.user.id))
.limit(1)
if (!existingStats) {
await db.insert(userStats).values({
id: nanoid(),
userId: session.user.id,
})
}
const matchedCampaign = await findMatchingCampaign(utmData)
if (!matchedCampaign) {
cookieStore.delete(COOKIE_NAME)
@@ -165,6 +152,19 @@ export async function POST() {
let attributed = false
await db.transaction(async (tx) => {
const [existingStats] = await tx
.select({ id: userStats.id })
.from(userStats)
.where(eq(userStats.userId, session.user.id))
.limit(1)
if (!existingStats) {
await tx.insert(userStats).values({
id: nanoid(),
userId: session.user.id,
})
}
const result = await tx
.insert(referralAttribution)
.values({

View File

@@ -97,23 +97,23 @@ export async function POST(request: Request) {
}
}
const [existingStats] = await db
.select({ id: userStats.id })
.from(userStats)
.where(eq(userStats.userId, session.user.id))
.limit(1)
if (!existingStats) {
await db.insert(userStats).values({
id: nanoid(),
userId: session.user.id,
})
}
const bonusAmount = Number(campaign.bonusCreditAmount)
let redeemed = false
await db.transaction(async (tx) => {
const [existingStats] = await tx
.select({ id: userStats.id })
.from(userStats)
.where(eq(userStats.userId, session.user.id))
.limit(1)
if (!existingStats) {
await tx.insert(userStats).values({
id: nanoid(),
userId: session.user.id,
})
}
const result = await tx
.insert(referralAttribution)
.values({