From 4e9ae8e8d5c862ac7a72f56d7bc0b7dab9c81044 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 6 Apr 2018 19:35:23 +0900 Subject: Split code --- src/remote/activitypub/act/delete/index.ts | 18 ++++++++++++++++++ src/remote/activitypub/act/delete/note.ts | 11 +++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/remote/activitypub/act/delete/index.ts create mode 100644 src/remote/activitypub/act/delete/note.ts (limited to 'src/remote/activitypub/act/delete') diff --git a/src/remote/activitypub/act/delete/index.ts b/src/remote/activitypub/act/delete/index.ts new file mode 100644 index 0000000000..764814bac1 --- /dev/null +++ b/src/remote/activitypub/act/delete/index.ts @@ -0,0 +1,18 @@ +import Resolver from '../../resolver'; +import deleteNote from './note'; + +export default async (actor, activity): Promise => { + if ('actor' in activity && actor.account.uri !== activity.actor) { + throw new Error(); + } + + const resolver = new Resolver(); + + const object = await resolver.resolve(activity); + + switch (object.type) { + case 'Note': + deleteNote(object); + break; + } +}; diff --git a/src/remote/activitypub/act/delete/note.ts b/src/remote/activitypub/act/delete/note.ts new file mode 100644 index 0000000000..3b821f87c0 --- /dev/null +++ b/src/remote/activitypub/act/delete/note.ts @@ -0,0 +1,11 @@ +import Post from '../../../../models/post'; +import { createDb } from '../../../../queue'; + +export default async function(note) { + const post = await Post.findOneAndDelete({ uri: note.id }); + + createDb({ + type: 'deletePostDependents', + id: post._id + }).delay(65536).save(); +} -- cgit v1.2.3-freya