diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2025-03-31 14:29:48 -0400 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2025-03-31 14:29:48 -0400 |
| commit | 000b1f4fe246a0090b15dfbeb6ebe982c41d2869 (patch) | |
| tree | 11148212b50823a7191a6e5c6e4434f437dd4c36 /packages/backend/src/server/api | |
| parent | synchronize eslint versions to fix build error (diff) | |
| download | sharkey-000b1f4fe246a0090b15dfbeb6ebe982c41d2869.tar.gz sharkey-000b1f4fe246a0090b15dfbeb6ebe982c41d2869.tar.bz2 sharkey-000b1f4fe246a0090b15dfbeb6ebe982c41d2869.zip | |
fix type errors from SponsorsService
Diffstat (limited to 'packages/backend/src/server/api')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/sponsors.ts | 53 |
1 files changed, 47 insertions, 6 deletions
diff --git a/packages/backend/src/server/api/endpoints/sponsors.ts b/packages/backend/src/server/api/endpoints/sponsors.ts index 401d9292bc..8e1ac749d5 100644 --- a/packages/backend/src/server/api/endpoints/sponsors.ts +++ b/packages/backend/src/server/api/endpoints/sponsors.ts @@ -14,6 +14,39 @@ export const meta = { requireCredential: false, requireCredentialPrivateMode: false, + res: { + type: 'object', + nullable: false, optional: false, + properties: { + sponsor_data: { + type: 'array', + nullable: false, optional: false, + items: { + type: 'object', + nullable: false, optional: false, + properties: { + name: { + type: 'string', + nullable: false, optional: false, + }, + image: { + type: 'string', + nullable: true, optional: false, + }, + website: { + type: 'string', + nullable: true, optional: false, + }, + profile: { + type: 'string', + nullable: false, optional: false, + }, + }, + }, + }, + }, + }, + // 2 calls per second limit: { duration: 1000, @@ -24,6 +57,7 @@ export const meta = { export const paramDef = { type: 'object', properties: { + // TODO remove this or make staff-only to prevent DoS forceUpdate: { type: 'boolean', default: false }, instance: { type: 'boolean', default: false }, }, @@ -35,12 +69,19 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- constructor( private sponsorsService: SponsorsService, ) { - super(meta, paramDef, async (ps, me) => { - if (ps.instance) { - return { sponsor_data: await this.sponsorsService.instanceSponsors(ps.forceUpdate) }; - } else { - return { sponsor_data: await this.sponsorsService.sharkeySponsors(ps.forceUpdate) }; - } + super(meta, paramDef, async (ps) => { + const sponsors = ps.instance + ? await this.sponsorsService.instanceSponsors(ps.forceUpdate) + : await this.sponsorsService.sharkeySponsors(ps.forceUpdate); + + return { + sponsor_data: sponsors.map(s => ({ + name: s.name, + image: s.image, + website: s.website, + profile: s.profile, + })), + }; }); } } |