summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-03-31 14:29:48 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-03-31 14:29:48 -0400
commit000b1f4fe246a0090b15dfbeb6ebe982c41d2869 (patch)
tree11148212b50823a7191a6e5c6e4434f437dd4c36 /packages/backend/src/server/api
parentsynchronize eslint versions to fix build error (diff)
downloadsharkey-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.ts53
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,
+ })),
+ };
});
}
}