diff options
| author | Marie <github@yuugi.dev> | 2024-10-02 18:27:11 +0200 |
|---|---|---|
| committer | Marie <github@yuugi.dev> | 2024-10-02 18:27:11 +0200 |
| commit | dcd6eee627b20c1dfa2dc38a9fbd9e38d4d878d5 (patch) | |
| tree | c20f063243b3195d518631a500fe86bf93a3742e /packages/backend/src/server/api | |
| parent | upd: add sponsors to instance information (diff) | |
| download | sharkey-dcd6eee627b20c1dfa2dc38a9fbd9e38d4d878d5.tar.gz sharkey-dcd6eee627b20c1dfa2dc38a9fbd9e38d4d878d5.tar.bz2 sharkey-dcd6eee627b20c1dfa2dc38a9fbd9e38d4d878d5.zip | |
upd: cache instance sponsors
Diffstat (limited to 'packages/backend/src/server/api')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/sponsors.ts | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/packages/backend/src/server/api/endpoints/sponsors.ts b/packages/backend/src/server/api/endpoints/sponsors.ts index 3c3cdd7808..34a3ed70dd 100644 --- a/packages/backend/src/server/api/endpoints/sponsors.ts +++ b/packages/backend/src/server/api/endpoints/sponsors.ts @@ -34,10 +34,13 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- ) { super(meta, paramDef, async (ps, me) => { let totalSponsors; - const cachedSponsors = await this.redisClient.get('sponsors'); + const cachedSponsors = await this.redisClient.get('sponsors'); + const cachedInstanceSponsors = await this.redisClient.get('instanceSponsors'); if (!ps.forceUpdate && !ps.instance && cachedSponsors) { totalSponsors = JSON.parse(cachedSponsors); + } else if (ps.instance && !ps.forceUpdate && cachedInstanceSponsors) { + totalSponsors = JSON.parse(cachedInstanceSponsors); } else if (!ps.instance) { try { const backers = await fetch('https://opencollective.com/sharkey/tiers/backer/all.json').then((response) => response.json()); @@ -66,6 +69,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- // Remove possible duplicates totalSponsors = [...new Map(allSponsors.map(v => [v.profile, v])).values()]; + + await this.redisClient.set('instanceSponsors', JSON.stringify(totalSponsors), 'EX', 3600); } else { totalSponsors = []; } |