fix slow queries
This commit is contained in:
parent
8de7a3c739
commit
53fd02970d
1 changed files with 11 additions and 24 deletions
|
|
@ -59,30 +59,7 @@ 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 [rewards, invites, inviteeReferral] = await Promise.all([
|
const [invites, inviteeReferral] = 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)
|
||||||
|
|
@ -108,6 +85,16 @@ export namespace Referral {
|
||||||
.then((rows) => rows.find((row) => row.inviterEmail) ?? rows[0]),
|
.then((rows) => rows.find((row) => row.inviterEmail) ?? rows[0]),
|
||||||
])
|
])
|
||||||
|
|
||||||
|
// 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.
|
// Hide pending invitee rewards until the referral_id index can be deployed and this lookup restored.
|
||||||
const inviteeRewards = inviteeReferral ? [{ referralID: inviteeReferral.id }] : []
|
const inviteeRewards = inviteeReferral ? [{ referralID: inviteeReferral.id }] : []
|
||||||
return { inviteeReferral, inviteeRewards, invites, rewards }
|
return { inviteeReferral, inviteeRewards, invites, rewards }
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue