From b2e57ab64ba0f5f4ff0c776ecc19c911c3710d46 Mon Sep 17 00:00:00 2001 From: AvilaAndre Date: Wed, 12 Feb 2025 00:07:36 +0000 Subject: [PATCH] feat: avoid duplicated referral --- website/app/models/user.ts | 4 ++++ website/app/services/referral_service.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/website/app/models/user.ts b/website/app/models/user.ts index 726ff9b..b28f668 100644 --- a/website/app/models/user.ts +++ b/website/app/models/user.ts @@ -72,6 +72,10 @@ export default class User extends compose(BaseModel, HasReferralLink) { return this.emailVerifiedAt !== null } + hasBeenReferred() { + return this.referredByUserId !== null; + } + public getPromoterCode: () => number = () => { return this.id; } diff --git a/website/app/services/referral_service.ts b/website/app/services/referral_service.ts index 618a0ba..b6946f5 100644 --- a/website/app/services/referral_service.ts +++ b/website/app/services/referral_service.ts @@ -21,6 +21,10 @@ export default class ReferralService { if (referredUser.isPromoter()) return + // cannot use a referral more than once + if (referredUser.hasBeenReferred()) + return + const referralUserId = ReferralService.decode(referralCode) if (!referralUserId) return