fix: referral edge case
This commit is contained in:
@@ -377,23 +377,30 @@ export namespace Referral {
|
|||||||
.then((rows) => rows[0])
|
.then((rows) => rows[0])
|
||||||
if (!referral) return
|
if (!referral) return
|
||||||
|
|
||||||
const result = await tx
|
await tx.insert(ReferralRewardTable).ignore().values({
|
||||||
.insert(ReferralRewardTable)
|
workspaceID: referral.workspaceID,
|
||||||
.ignore()
|
referralID: referral.id,
|
||||||
.values([
|
amount: REWARD_AMOUNT,
|
||||||
{
|
})
|
||||||
workspaceID: referral.workspaceID,
|
|
||||||
referralID: referral.id,
|
|
||||||
amount: REWARD_AMOUNT,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
workspaceID: input.workspaceID,
|
|
||||||
referralID: referral.id,
|
|
||||||
amount: REWARD_AMOUNT,
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
if (result.rowsAffected === 0) return
|
const existingInviteeReward = await tx
|
||||||
|
.select({ workspaceID: ReferralRewardTable.workspaceID })
|
||||||
|
.from(ReferralRewardTable)
|
||||||
|
.where(
|
||||||
|
and(
|
||||||
|
eq(ReferralRewardTable.referralID, referral.id),
|
||||||
|
sql`${ReferralRewardTable.workspaceID} <> ${referral.workspaceID}`,
|
||||||
|
isNull(ReferralRewardTable.timeDeleted),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.then((rows) => rows[0])
|
||||||
|
if (existingInviteeReward) return
|
||||||
|
|
||||||
|
await tx.insert(ReferralRewardTable).ignore().values({
|
||||||
|
workspaceID: input.workspaceID,
|
||||||
|
referralID: referral.id,
|
||||||
|
amount: REWARD_AMOUNT,
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user