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,
|
muteController,
|
||||||
relationshipsController,
|
relationshipsController,
|
||||||
unblockController,
|
unblockController,
|
||||||
|
unfavouriteController,
|
||||||
unfollowController,
|
unfollowController,
|
||||||
unmuteController,
|
unmuteController,
|
||||||
updateCredentialsController,
|
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}}/context', contextController);
|
||||||
app.get('/api/v1/statuses/:id{[0-9a-f]{64}}', statusController);
|
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}}/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}}/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}}/unbookmark', userMiddleware(), unbookmarkController);
|
||||||
app.post('/api/v1/statuses/:id{[0-9a-f]{64}}/pin', userMiddleware(), pinController);
|
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);
|
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 familiarFollowersController: AppController = async (c) => {
|
||||||
const { relay, user, signal } = c.var;
|
const { relay, user, signal } = c.var;
|
||||||
|
|
||||||
|
|
@ -560,6 +596,7 @@ export {
|
||||||
muteController,
|
muteController,
|
||||||
relationshipsController,
|
relationshipsController,
|
||||||
unblockController,
|
unblockController,
|
||||||
|
unfavouriteController,
|
||||||
unfollowController,
|
unfollowController,
|
||||||
unmuteController,
|
unmuteController,
|
||||||
updateCredentialsController,
|
updateCredentialsController,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue