summaryrefslogtreecommitdiff
path: root/packages/backend/src/server
diff options
context:
space:
mode:
authorMarie <github@yuugi.dev>2024-10-02 18:27:11 +0200
committerMarie <github@yuugi.dev>2024-10-02 18:27:11 +0200
commitdcd6eee627b20c1dfa2dc38a9fbd9e38d4d878d5 (patch)
treec20f063243b3195d518631a500fe86bf93a3742e /packages/backend/src/server
parentupd: add sponsors to instance information (diff)
downloadsharkey-dcd6eee627b20c1dfa2dc38a9fbd9e38d4d878d5.tar.gz
sharkey-dcd6eee627b20c1dfa2dc38a9fbd9e38d4d878d5.tar.bz2
sharkey-dcd6eee627b20c1dfa2dc38a9fbd9e38d4d878d5.zip
upd: cache instance sponsors
Diffstat (limited to 'packages/backend/src/server')
-rw-r--r--packages/backend/src/server/api/endpoints/sponsors.ts7
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 = [];
}