summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/act/delete
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-06 19:35:23 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-06 19:35:23 +0900
commit4e9ae8e8d5c862ac7a72f56d7bc0b7dab9c81044 (patch)
tree895a954636b782b20af97bf65719bb0607f3ef32 /src/remote/activitypub/act/delete
parentFix type annotation (diff)
downloadmisskey-4e9ae8e8d5c862ac7a72f56d7bc0b7dab9c81044.tar.gz
misskey-4e9ae8e8d5c862ac7a72f56d7bc0b7dab9c81044.tar.bz2
misskey-4e9ae8e8d5c862ac7a72f56d7bc0b7dab9c81044.zip
Split code
Diffstat (limited to 'src/remote/activitypub/act/delete')
-rw-r--r--src/remote/activitypub/act/delete/index.ts18
-rw-r--r--src/remote/activitypub/act/delete/note.ts11
2 files changed, 29 insertions, 0 deletions
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<void> => {
+ 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();
+}