@@ -15,27 +15,30 @@ export async function hasMaxedReferrals(userId: string): Promise<
1515 referralLink : string
1616 }
1717> {
18- const referral = await db
18+ const limitReached = await db
1919 . select ( {
20- referralCode : schema . user . referral_code ,
2120 limitReached : sql < boolean > `count(*) >= ${ MAX_REFERRALS } ` ,
2221 } )
2322 . from ( schema . referral )
24- . leftJoin ( schema . user , eq ( schema . referral . referrer_id , schema . user . id ) )
2523 . where ( eq ( schema . referral . referrer_id , userId ) )
26- . groupBy ( schema . user . referral_code )
27- . then ( ( result ) => ( result . length > 0 ? result [ 0 ] : undefined ) )
28-
29- if ( ! referral || ! referral . referralCode ) {
30- return { reason : "Your user isn't in our system" }
24+ . then ( ( result ) => ( result . length > 0 ? result [ 0 ] . limitReached : false ) )
25+ if ( limitReached ) {
26+ return { reason : 'You have reached your usage limit' }
3127 }
3228
33- if ( referral . limitReached ) {
34- return { reason : 'You have reached your usage limit' }
29+ const user = await db . query . user . findFirst ( {
30+ where : eq ( schema . user . id , userId ) ,
31+ columns : {
32+ referral_code : true ,
33+ } ,
34+ } )
35+
36+ if ( ! user || ! user . referral_code ) {
37+ return { reason : "Your user isn't in our system" }
3538 }
3639
3740 return {
3841 reason : undefined ,
39- referralLink : getReferralLink ( referral . referralCode ) ,
42+ referralLink : getReferralLink ( user . referral_code ) ,
4043 }
4144}
0 commit comments