diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2018-10-02 16:27:36 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2018-10-02 16:27:36 +0900 |
| commit | c09a2a37fe3ab130969dd143b0ee65706871951f (patch) | |
| tree | 92b3874cd806d135d920192be469a99a4cd4d6dd /src/remote/activitypub/kernel/remove | |
| parent | :art: (diff) | |
| download | sharkey-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.ts | 22 |
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}`); +}; |