summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/kernel/undo
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
commit0e4a111f81cceed275d9bec2695f6e401fb654d8 (patch)
tree40874799472fa07416f17b50a398ac33b7771905 /src/remote/activitypub/kernel/undo
parentupdate deps (diff)
downloadsharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.gz
sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.bz2
sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.zip
refactoring
Resolve #7779
Diffstat (limited to 'src/remote/activitypub/kernel/undo')
-rw-r--r--src/remote/activitypub/kernel/undo/announce.ts17
-rw-r--r--src/remote/activitypub/kernel/undo/block.ts20
-rw-r--r--src/remote/activitypub/kernel/undo/follow.ts41
-rw-r--r--src/remote/activitypub/kernel/undo/index.ts34
-rw-r--r--src/remote/activitypub/kernel/undo/like.ts21
5 files changed, 0 insertions, 133 deletions
diff --git a/src/remote/activitypub/kernel/undo/announce.ts b/src/remote/activitypub/kernel/undo/announce.ts
deleted file mode 100644
index 7bb9d7fcad..0000000000
--- a/src/remote/activitypub/kernel/undo/announce.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Notes } from '@/models/index';
-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<string> => {
- const uri = getApId(activity);
-
- const note = await Notes.findOne({
- uri
- });
-
- if (!note) return 'skip: no such Announce';
-
- await deleteNote(actor, note);
- return 'ok: deleted';
-};
diff --git a/src/remote/activitypub/kernel/undo/block.ts b/src/remote/activitypub/kernel/undo/block.ts
deleted file mode 100644
index 61940486be..0000000000
--- a/src/remote/activitypub/kernel/undo/block.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { IBlock } from '../../type';
-import unblock from '@/services/blocking/delete';
-import { IRemoteUser } from '@/models/entities/user';
-import DbResolver from '../../db-resolver';
-
-export default async (actor: IRemoteUser, activity: IBlock): Promise<string> => {
- const dbResolver = new DbResolver();
- const blockee = await dbResolver.getUserFromApId(activity.object);
-
- if (blockee == null) {
- return `skip: blockee not found`;
- }
-
- if (blockee.host != null) {
- return `skip: ブロック解除しようとしているユーザーはローカルユーザーではありません`;
- }
-
- await unblock(actor, blockee);
- return `ok`;
-};
diff --git a/src/remote/activitypub/kernel/undo/follow.ts b/src/remote/activitypub/kernel/undo/follow.ts
deleted file mode 100644
index d85c7e4a71..0000000000
--- a/src/remote/activitypub/kernel/undo/follow.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import unfollow from '@/services/following/delete';
-import cancelRequest from '@/services/following/requests/cancel';
-import { IFollow } from '../../type';
-import { IRemoteUser } from '@/models/entities/user';
-import { FollowRequests, Followings } from '@/models/index';
-import DbResolver from '../../db-resolver';
-
-export default async (actor: IRemoteUser, activity: IFollow): Promise<string> => {
- const dbResolver = new DbResolver();
-
- const followee = await dbResolver.getUserFromApId(activity.object);
- if (followee == null) {
- return `skip: followee not found`;
- }
-
- if (followee.host != null) {
- return `skip: フォロー解除しようとしているユーザーはローカルユーザーではありません`;
- }
-
- const req = await FollowRequests.findOne({
- followerId: actor.id,
- followeeId: followee.id
- });
-
- const following = await Followings.findOne({
- followerId: actor.id,
- followeeId: followee.id
- });
-
- if (req) {
- await cancelRequest(followee, actor);
- return `ok: follow request canceled`;
- }
-
- if (following) {
- await unfollow(actor, followee);
- return `ok: unfollowed`;
- }
-
- return `skip: リクエストもフォローもされていない`;
-};
diff --git a/src/remote/activitypub/kernel/undo/index.ts b/src/remote/activitypub/kernel/undo/index.ts
deleted file mode 100644
index 14b1add152..0000000000
--- a/src/remote/activitypub/kernel/undo/index.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { IRemoteUser } from '@/models/entities/user';
-import { IUndo, isFollow, isBlock, isLike, isAnnounce, getApType } 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';
-
-const logger = apLogger;
-
-export default async (actor: IRemoteUser, activity: IUndo): Promise<string> => {
- if ('actor' in activity && actor.uri !== activity.actor) {
- throw new Error('invalid actor');
- }
-
- const uri = activity.id || activity;
-
- logger.info(`Undo: ${uri}`);
-
- const resolver = new Resolver();
-
- const object = await resolver.resolve(activity.object).catch(e => {
- logger.error(`Resolution failed: ${e}`);
- throw e;
- });
-
- if (isFollow(object)) return await unfollow(actor, object);
- if (isBlock(object)) return await unblock(actor, object);
- if (isLike(object)) return await undoLike(actor, object);
- if (isAnnounce(object)) return await undoAnnounce(actor, object);
-
- return `skip: unknown object type ${getApType(object)}`;
-};
diff --git a/src/remote/activitypub/kernel/undo/like.ts b/src/remote/activitypub/kernel/undo/like.ts
deleted file mode 100644
index 107d3053e3..0000000000
--- a/src/remote/activitypub/kernel/undo/like.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { IRemoteUser } from '@/models/entities/user';
-import { ILike, getApId } from '../../type';
-import deleteReaction from '@/services/note/reaction/delete';
-import { fetchNote } from '../../models/note';
-
-/**
- * Process Undo.Like activity
- */
-export default async (actor: IRemoteUser, activity: ILike) => {
- const targetUri = getApId(activity.object);
-
- const note = await fetchNote(targetUri);
- if (!note) return `skip: target note not found ${targetUri}`;
-
- await deleteReaction(actor, note).catch(e => {
- if (e.id === '60527ec9-b4cb-4a88-a6bd-32d3ad26817d') return;
- throw e;
- });
-
- return `ok`;
-};