Revert "fix slow queries"
This commit is contained in:
@@ -59,7 +59,30 @@ export namespace Referral {
|
|||||||
const accountID = Actor.account()
|
const accountID = Actor.account()
|
||||||
const code = await ensureCode(workspaceID)
|
const code = await ensureCode(workspaceID)
|
||||||
const rows = await Database.use(async (tx) => {
|
const rows = await Database.use(async (tx) => {
|
||||||
const [invites, inviteeReferral] = await Promise.all([
|
const [rewards, invites, inviteeReferral, inviteeRewards] = await Promise.all([
|
||||||
|
tx
|
||||||
|
.select({
|
||||||
|
referralID: ReferralRewardTable.referralID,
|
||||||
|
workspaceID: ReferralRewardTable.workspaceID,
|
||||||
|
referralWorkspaceID: ReferralTable.workspaceID,
|
||||||
|
inviteeEmail: AuthTable.subject,
|
||||||
|
amount: ReferralRewardTable.amount,
|
||||||
|
timeCreated: ReferralRewardTable.timeCreated,
|
||||||
|
timeApplied: ReferralRewardTable.timeApplied,
|
||||||
|
})
|
||||||
|
.from(ReferralRewardTable)
|
||||||
|
.innerJoin(ReferralTable, eq(ReferralTable.id, ReferralRewardTable.referralID))
|
||||||
|
.innerJoin(
|
||||||
|
AuthTable,
|
||||||
|
and(eq(AuthTable.accountID, ReferralTable.inviteeAccountID), eq(AuthTable.provider, "email")),
|
||||||
|
)
|
||||||
|
.where(
|
||||||
|
and(
|
||||||
|
eq(ReferralRewardTable.workspaceID, workspaceID),
|
||||||
|
isNull(ReferralRewardTable.timeDeleted),
|
||||||
|
isNull(ReferralTable.timeDeleted),
|
||||||
|
),
|
||||||
|
),
|
||||||
tx
|
tx
|
||||||
.select({ id: ReferralTable.id, inviteeEmail: AuthTable.subject, timeCreated: ReferralTable.timeCreated })
|
.select({ id: ReferralTable.id, inviteeEmail: AuthTable.subject, timeCreated: ReferralTable.timeCreated })
|
||||||
.from(ReferralTable)
|
.from(ReferralTable)
|
||||||
@@ -83,20 +106,19 @@ export namespace Referral {
|
|||||||
.where(and(eq(ReferralTable.inviteeAccountID, accountID), isNull(ReferralTable.timeDeleted)))
|
.where(and(eq(ReferralTable.inviteeAccountID, accountID), isNull(ReferralTable.timeDeleted)))
|
||||||
.orderBy(asc(UserTable.timeCreated))
|
.orderBy(asc(UserTable.timeCreated))
|
||||||
.then((rows) => rows.find((row) => row.inviterEmail) ?? rows[0]),
|
.then((rows) => rows.find((row) => row.inviterEmail) ?? rows[0]),
|
||||||
|
tx
|
||||||
|
.select({ referralID: ReferralRewardTable.referralID })
|
||||||
|
.from(ReferralRewardTable)
|
||||||
|
.innerJoin(ReferralTable, eq(ReferralTable.id, ReferralRewardTable.referralID))
|
||||||
|
.where(
|
||||||
|
and(
|
||||||
|
eq(ReferralTable.inviteeAccountID, accountID),
|
||||||
|
isNull(ReferralRewardTable.timeDeleted),
|
||||||
|
isNull(ReferralTable.timeDeleted),
|
||||||
|
),
|
||||||
|
),
|
||||||
])
|
])
|
||||||
|
|
||||||
// Hide reward history until the referral_id index can be deployed and this lookup restored.
|
|
||||||
const rewards: {
|
|
||||||
referralID: string
|
|
||||||
workspaceID: string
|
|
||||||
referralWorkspaceID: string
|
|
||||||
inviteeEmail: string
|
|
||||||
amount: number
|
|
||||||
timeCreated: Date
|
|
||||||
timeApplied: Date | null
|
|
||||||
}[] = []
|
|
||||||
// Hide pending invitee rewards until the referral_id index can be deployed and this lookup restored.
|
|
||||||
const inviteeRewards = inviteeReferral ? [{ referralID: inviteeReferral.id }] : []
|
|
||||||
return { inviteeReferral, inviteeRewards, invites, rewards }
|
return { inviteeReferral, inviteeRewards, invites, rewards }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user