diff options
Diffstat (limited to 'src/remote/activitypub/kernel')
| -rw-r--r-- | src/remote/activitypub/kernel/undo/announce.ts | 16 | ||||
| -rw-r--r-- | src/remote/activitypub/kernel/undo/index.ts | 6 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/remote/activitypub/kernel/undo/announce.ts b/src/remote/activitypub/kernel/undo/announce.ts new file mode 100644 index 0000000000..38ce5b6c59 --- /dev/null +++ b/src/remote/activitypub/kernel/undo/announce.ts @@ -0,0 +1,16 @@ +import { Notes } from '../../../../models'; +import { IRemoteUser } from '../../../../models/entities/user'; +import { IAnnounce, getApId } from '../../type'; +import deleteNote from '../../../../services/note/delete'; + +export const undoAnnounce = async (actor: IRemoteUser, activity: IAnnounce): Promise<void> => { + const uri = getApId(activity); + + const note = await Notes.findOne({ + uri + }); + + if (!note) return; + + await deleteNote(actor, note); +}; diff --git a/src/remote/activitypub/kernel/undo/index.ts b/src/remote/activitypub/kernel/undo/index.ts index 5f2e58c3bf..f49f66cc69 100644 --- a/src/remote/activitypub/kernel/undo/index.ts +++ b/src/remote/activitypub/kernel/undo/index.ts @@ -1,8 +1,9 @@ import { IRemoteUser } from '../../../../models/entities/user'; -import { IUndo, IFollow, IBlock, ILike } from '../../type'; +import { IUndo, IFollow, IBlock, ILike, IAnnounce } from '../../type'; import unfollow from './follow'; import unblock from './block'; import undoLike from './like'; +import { undoAnnounce } from './announce'; import Resolver from '../../resolver'; import { apLogger } from '../../logger'; @@ -38,5 +39,8 @@ export default async (actor: IRemoteUser, activity: IUndo): Promise<void> => { case 'Like': undoLike(actor, object as ILike); break; + case 'Announce': + undoAnnounce(actor, object as IAnnounce); + break; } }; |