forked from FoundKeyGang/FoundKey
Johann150
1516ddfc9b
The CacheableUser, CacheableLocalUser and CacheableRemoteUser are identical types to User, ILocalUser and IRemoteUser so it seems nonsensical to have different types for them.
22 lines
654 B
TypeScript
22 lines
654 B
TypeScript
import { IRemoteUser } from '@/models/entities/user.js';
|
|
import { deleteReaction } from '@/services/note/reaction/delete.js';
|
|
import { ILike, getApId } from '@/remote/activitypub/type.js';
|
|
import { fetchNote } from '@/remote/activitypub/models/note.js';
|
|
|
|
/**
|
|
* Process Undo.Like activity
|
|
*/
|
|
export default async (actor: IRemoteUser, activity: ILike) => {
|
|
const targetUri = getApId(activity.object);
|
|
|
|
const note = await fetchNote(targetUri);
|
|
if (!note) return `skip: target note not found ${targetUri}`;
|
|
|
|
await deleteReaction(actor, note).catch(e => {
|
|
if (e.id === '60527ec9-b4cb-4a88-a6bd-32d3ad26817d') return;
|
|
throw e;
|
|
});
|
|
|
|
return 'ok';
|
|
};
|