summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/mastodon/MastodonApiServerService.ts
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-03-21 23:26:12 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-03-27 19:51:43 -0400
commit3d8930f07006fac3e8e5caff2118d057dbbc987c (patch)
tree47bb8ef0ace1fe3798e0cbc6f20b8d09d82c6e82 /packages/backend/src/server/api/mastodon/MastodonApiServerService.ts
parentimplement /api/v1/bookmarks (diff)
downloadsharkey-3d8930f07006fac3e8e5caff2118d057dbbc987c.tar.gz
sharkey-3d8930f07006fac3e8e5caff2118d057dbbc987c.tar.bz2
sharkey-3d8930f07006fac3e8e5caff2118d057dbbc987c.zip
implement /api/v1/favourites
Diffstat (limited to 'packages/backend/src/server/api/mastodon/MastodonApiServerService.ts')
-rw-r--r--packages/backend/src/server/api/mastodon/MastodonApiServerService.ts18
1 files changed, 16 insertions, 2 deletions
diff --git a/packages/backend/src/server/api/mastodon/MastodonApiServerService.ts b/packages/backend/src/server/api/mastodon/MastodonApiServerService.ts
index 94345027ed..517beb4f44 100644
--- a/packages/backend/src/server/api/mastodon/MastodonApiServerService.ts
+++ b/packages/backend/src/server/api/mastodon/MastodonApiServerService.ts
@@ -19,6 +19,7 @@ import { ApiStatusMastodon } from '@/server/api/mastodon/endpoints/status.js';
import { ApiNotificationsMastodon } from '@/server/api/mastodon/endpoints/notifications.js';
import { ApiTimelineMastodon } from '@/server/api/mastodon/endpoints/timeline.js';
import { ApiSearchMastodon } from '@/server/api/mastodon/endpoints/search.js';
+import { ApiError } from '@/server/api/error.js';
import { parseTimelineArgs, TimelineArgs, toBoolean } from './argsUtils.js';
import { convertAnnouncement, convertAttachment, MastoConverters, convertRelationship } from './converters.js';
import type { Entity } from 'megalodon';
@@ -231,8 +232,21 @@ export class MastodonApiServerService {
fastify.get<{ Querystring: TimelineArgs }>('/v1/favourites', async (_request, reply) => {
const { client, me } = await this.clientService.getAuthClient(_request);
- const data = await client.getFavourites(parseTimelineArgs(_request.query));
- const response = Promise.all(data.data.map((status) => this.mastoConverters.convertStatus(status, me)));
+ if (!me) {
+ throw new ApiError({
+ message: 'Credential required.',
+ code: 'CREDENTIAL_REQUIRED',
+ id: '1384574d-a912-4b81-8601-c7b1c4085df1',
+ httpStatusCode: 401,
+ });
+ }
+
+ const args = {
+ ...parseTimelineArgs(_request.query),
+ userId: me.id,
+ };
+ const data = await client.getFavourites(args);
+ const response = await Promise.all(data.data.map((status) => this.mastoConverters.convertStatus(status, me)));
reply.send(response);
});