mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
Implement removal of "thumbs up" reaction
This commit is contained in:
parent
b173cc624d
commit
21247b31ea
2 changed files with 39 additions and 0 deletions
|
|
@ -34,6 +34,7 @@ import {
|
|||
muteController,
|
||||
relationshipsController,
|
||||
unblockController,
|
||||
unfavouriteController,
|
||||
unfollowController,
|
||||
unmuteController,
|
||||
updateCredentialsController,
|
||||
|
|
@ -357,6 +358,7 @@ app.get('/api/v1/statuses/:id{[0-9a-f]{64}}/reblogged_by', rebloggedByController
|
|||
app.get('/api/v1/statuses/:id{[0-9a-f]{64}}/context', contextController);
|
||||
app.get('/api/v1/statuses/:id{[0-9a-f]{64}}', statusController);
|
||||
app.post('/api/v1/statuses/:id{[0-9a-f]{64}}/favourite', userMiddleware(), favouriteController);
|
||||
app.post('/api/v1/statuses/:id{[0-9a-f]{64}}/unfavourite', userMiddleware(), unfavouriteController);
|
||||
app.post('/api/v1/statuses/:id{[0-9a-f]{64}}/bookmark', userMiddleware(), bookmarkController);
|
||||
app.post('/api/v1/statuses/:id{[0-9a-f]{64}}/unbookmark', userMiddleware(), unbookmarkController);
|
||||
app.post('/api/v1/statuses/:id{[0-9a-f]{64}}/pin', userMiddleware(), pinController);
|
||||
|
|
|
|||
|
|
@ -509,6 +509,42 @@ const favouritesController: AppController = async (c) => {
|
|||
return paginated(c, events1, statuses);
|
||||
};
|
||||
|
||||
const unfavouriteController: AppController = async (c) => {
|
||||
const { relay, user, signal } = c.var
|
||||
const id = c.req.param('id');
|
||||
const pubkey = await user!.signer.getPublicKey();
|
||||
|
||||
const [event] = await relay.query([{ ids: [id], kinds: [1] }], { signal });
|
||||
if (!event) {
|
||||
return c.json({ error: 'Record not found.' }, 404);
|
||||
}
|
||||
|
||||
const favouriteEvents = await relay.query([
|
||||
{ kinds: [7], authors: [pubkey], '#e': [id] },
|
||||
]);
|
||||
if (!favouriteEvents.length) {
|
||||
return c.json({ error: 'Record not found.' }, 404);
|
||||
}
|
||||
|
||||
for (const e of favouriteEvents) {
|
||||
if (e.content === '+') {
|
||||
await createEvent({
|
||||
kind: 5,
|
||||
tags: [
|
||||
['e', e.id],
|
||||
],
|
||||
content: 'unfavourite',
|
||||
}, c);
|
||||
}
|
||||
}
|
||||
|
||||
await hydrateEvents({ ...c.var, events: [event], relay, signal })
|
||||
|
||||
const status = await renderStatus(relay, event, { viewerPubkey: pubkey });
|
||||
|
||||
return c.json(status);
|
||||
};
|
||||
|
||||
const familiarFollowersController: AppController = async (c) => {
|
||||
const { relay, user, signal } = c.var;
|
||||
|
||||
|
|
@ -560,6 +596,7 @@ export {
|
|||
muteController,
|
||||
relationshipsController,
|
||||
unblockController,
|
||||
unfavouriteController,
|
||||
unfollowController,
|
||||
unmuteController,
|
||||
updateCredentialsController,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue