summaryrefslogtreecommitdiff
path: root/src/services/blocking/delete.ts
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2018-10-29 20:32:42 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2018-10-29 20:32:42 +0900
commitd64dc458999afdc0bfd5f662a583bd1a0f6eebb3 (patch)
tree7bafd2682c100ef3badb7dd0d992dbf35930678a /src/services/blocking/delete.ts
parentMerge branch 'develop' of https://github.com/syuilo/misskey into develop (diff)
downloadsharkey-d64dc458999afdc0bfd5f662a583bd1a0f6eebb3.tar.gz
sharkey-d64dc458999afdc0bfd5f662a583bd1a0f6eebb3.tar.bz2
sharkey-d64dc458999afdc0bfd5f662a583bd1a0f6eebb3.zip
User blocking (Following part) (#3035)
* block wip * UndoBlock * UnBlock * wip * follow * UI * fix
Diffstat (limited to 'src/services/blocking/delete.ts')
-rw-r--r--src/services/blocking/delete.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/services/blocking/delete.ts b/src/services/blocking/delete.ts
new file mode 100644
index 0000000000..bc331d491a
--- /dev/null
+++ b/src/services/blocking/delete.ts
@@ -0,0 +1,28 @@
+import { isLocalUser, isRemoteUser, IUser } from '../../models/user';
+import Blocking from '../../models/blocking';
+import pack from '../../remote/activitypub/renderer';
+import renderBlock from '../../remote/activitypub/renderer/block';
+import renderUndo from '../../remote/activitypub/renderer/undo';
+import { deliver } from '../../queue';
+
+export default async function(blocker: IUser, blockee: IUser) {
+ const blocking = await Blocking.findOne({
+ blockerId: blocker._id,
+ blockeeId: blockee._id
+ });
+
+ if (blocking == null) {
+ console.warn('ブロック解除がリクエストされましたがブロックしていませんでした');
+ return;
+ }
+
+ Blocking.remove({
+ _id: blocking._id
+ });
+
+ // deliver if remote bloking
+ if (isLocalUser(blocker) && isRemoteUser(blockee)) {
+ const content = pack(renderUndo(renderBlock(blocker, blockee), blocker));
+ deliver(blocker, content, blockee.inbox);
+ }
+}