From f29d513436580f2a59c2b671433ae7eb27c712c6 Mon Sep 17 00:00:00 2001 From: Lucas Yang Date: Sun, 15 Jun 2025 08:13:13 +0800 Subject: [PATCH] fix: incorrect shows the tier for the user with a gifted membership for patreon (#112) (cherry picked from commit 3c3d93c377ae0675695cd7f8917a31dc75fb10fb) --- src/providers/patreon.ts | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/providers/patreon.ts b/src/providers/patreon.ts index 9f7329d..9966fbb 100644 --- a/src/providers/patreon.ts +++ b/src/providers/patreon.ts @@ -27,7 +27,7 @@ export async function fetchPatreonSponsors(token: string): Promise ({ membership, patron: sponsorshipData.included.find( - (v: any) => v.id === membership.relationships.user.data.id, + (v: any) => v.type === 'user' && v.id === membership.relationships.user.data.id, + ), + tier: sponsorshipData.included.find( + (v: any) => v.type === 'tier' && v.id === membership.relationships.currently_entitled_tiers.data[0]?.id, ), })), ) sponsorshipApi = sponsorshipData.links?.next } while (sponsorshipApi) - const processed = sponsors.map( - (raw: any): Sponsorship => ({ + const processed = sponsors.map((raw: any): Sponsorship => { + const sponsor: Sponsorship = { sponsor: { avatarUrl: raw.patron.attributes.image_url, login: raw.patron.attributes.first_name, @@ -62,13 +65,21 @@ export async function fetchPatreonSponsors(token: string): Promise 0) + sponsor.monthlyDollars = Math.floor(raw.tier.attributes.amount_cents / 100) + + return sponsor + }) return processed }