summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/kernel/remove
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2018-10-02 16:27:36 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2018-10-02 16:27:36 +0900
commitc09a2a37fe3ab130969dd143b0ee65706871951f (patch)
tree92b3874cd806d135d920192be469a99a4cd4d6dd /src/remote/activitypub/kernel/remove
parent:art: (diff)
downloadsharkey-c09a2a37fe3ab130969dd143b0ee65706871951f.tar.gz
sharkey-c09a2a37fe3ab130969dd143b0ee65706871951f.tar.bz2
sharkey-c09a2a37fe3ab130969dd143b0ee65706871951f.zip
リモートのピン留め投稿取得対応 (#2798)
* Fetch featured * Handle featured change * Fix typo
Diffstat (limited to 'src/remote/activitypub/kernel/remove')
-rw-r--r--src/remote/activitypub/kernel/remove/index.ts22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/remote/activitypub/kernel/remove/index.ts b/src/remote/activitypub/kernel/remove/index.ts
new file mode 100644
index 0000000000..91b207c80d
--- /dev/null
+++ b/src/remote/activitypub/kernel/remove/index.ts
@@ -0,0 +1,22 @@
+import { IRemoteUser } from '../../../../models/user';
+import { IRemove } from '../../type';
+import { resolveNote } from '../../models/note';
+import { removePinned } from '../../../../services/i/pin';
+
+export default async (actor: IRemoteUser, activity: IRemove): Promise<void> => {
+ if ('actor' in activity && actor.uri !== activity.actor) {
+ throw new Error('invalid actor');
+ }
+
+ if (activity.target == null) {
+ throw new Error('target is null');
+ }
+
+ if (activity.target === actor.featured) {
+ const note = await resolveNote(activity.object);
+ await removePinned(actor, note._id);
+ return;
+ }
+
+ throw new Error(`unknown target: ${activity.target}`);
+};