summaryrefslogtreecommitdiff
path: root/packages/backend/src/services/blocking/create.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-04-02 15:28:49 +0900
committerGitHub <noreply@github.com>2022-04-02 15:28:49 +0900
commit8e5f2690f29b7e6bee95e54a8bb647ff1ff4b94a (patch)
tree78740472dc48e4fec6986056f548e4ee7743cc29 /packages/backend/src/services/blocking/create.ts
parentUpdate CHANGELOG.md (diff)
downloadsharkey-8e5f2690f29b7e6bee95e54a8bb647ff1ff4b94a.tar.gz
sharkey-8e5f2690f29b7e6bee95e54a8bb647ff1ff4b94a.tar.bz2
sharkey-8e5f2690f29b7e6bee95e54a8bb647ff1ff4b94a.zip
feat: Webhook (#8457)
* feat: introduce webhook * wip * wip * wip * Update CHANGELOG.md
Diffstat (limited to 'packages/backend/src/services/blocking/create.ts')
-rw-r--r--packages/backend/src/services/blocking/create.ts22
1 files changed, 20 insertions, 2 deletions
diff --git a/packages/backend/src/services/blocking/create.ts b/packages/backend/src/services/blocking/create.ts
index 86c7d7967b..5c67190079 100644
--- a/packages/backend/src/services/blocking/create.ts
+++ b/packages/backend/src/services/blocking/create.ts
@@ -10,6 +10,8 @@ import { Blockings, Users, FollowRequests, Followings, UserListJoinings, UserLis
import { perUserFollowingChart } from '@/services/chart/index.js';
import { genId } from '@/misc/gen-id.js';
import { IdentifiableError } from '@/misc/identifiable-error.js';
+import { getActiveWebhooks } from '@/misc/webhook-cache.js';
+import { webhookDeliver } from '@/queue/index.js';
export default async function(blocker: User, blockee: User) {
await Promise.all([
@@ -57,9 +59,17 @@ async function cancelRequest(follower: User, followee: User) {
if (Users.isLocalUser(follower)) {
Users.pack(followee, follower, {
detail: true,
- }).then(packed => {
+ }).then(async packed => {
publishUserEvent(follower.id, 'unfollow', packed);
publishMainStream(follower.id, 'unfollow', packed);
+
+ const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow'));
+ for (const webhook of webhooks) {
+ webhookDeliver(webhook, {
+ type: 'unfollow',
+ user: packed,
+ });
+ }
});
}
@@ -102,9 +112,17 @@ async function unFollow(follower: User, followee: User) {
if (Users.isLocalUser(follower)) {
Users.pack(followee, follower, {
detail: true,
- }).then(packed => {
+ }).then(async packed => {
publishUserEvent(follower.id, 'unfollow', packed);
publishMainStream(follower.id, 'unfollow', packed);
+
+ const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow'));
+ for (const webhook of webhooks) {
+ webhookDeliver(webhook, {
+ type: 'unfollow',
+ user: packed,
+ });
+ }
});
}