summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-11-09 18:24:41 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-11-09 18:24:41 +0900
commitb34b728fbb1dc2693230e6d3b3d6b468ac48396f (patch)
tree091a230025a423b4ac37b99025ad2a41d9c66021 /src
parent管理画面のジョブキュー一覧の修正 (#5586) (diff)
downloadmisskey-b34b728fbb1dc2693230e6d3b3d6b468ac48396f.tar.gz
misskey-b34b728fbb1dc2693230e6d3b3d6b468ac48396f.tar.bz2
misskey-b34b728fbb1dc2693230e6d3b3d6b468ac48396f.zip
Resolve #5587 (#5588)
* Resolve #5587 * stat
Diffstat (limited to 'src')
-rw-r--r--src/services/following/delete.ts28
-rw-r--r--src/services/following/requests/reject.ts19
2 files changed, 33 insertions, 14 deletions
diff --git a/src/services/following/delete.ts b/src/services/following/delete.ts
index e3b5f8c414..8821611515 100644
--- a/src/services/following/delete.ts
+++ b/src/services/following/delete.ts
@@ -24,6 +24,22 @@ export default async function(follower: User, followee: User, silent = false) {
await Followings.delete(following.id);
+ decrementFollowing(follower, followee);
+
+ // Publish unfollow event
+ if (!silent && Users.isLocalUser(follower)) {
+ Users.pack(followee, follower, {
+ detail: true
+ }).then(packed => publishMainStream(follower.id, 'unfollow', packed));
+ }
+
+ if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) {
+ const content = renderActivity(renderUndo(renderFollow(follower, followee), follower));
+ deliver(follower, content, followee.inbox);
+ }
+}
+
+export async function decrementFollowing(follower: User, followee: User) {
//#region Decrement following count
Users.decrement({ id: follower.id }, 'followingCount', 1);
//#endregion
@@ -47,16 +63,4 @@ export default async function(follower: User, followee: User, silent = false) {
//#endregion
perUserFollowingChart.update(follower, followee, false);
-
- // Publish unfollow event
- if (!silent && Users.isLocalUser(follower)) {
- Users.pack(followee, follower, {
- detail: true
- }).then(packed => publishMainStream(follower.id, 'unfollow', packed));
- }
-
- if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) {
- const content = renderActivity(renderUndo(renderFollow(follower, followee), follower));
- deliver(follower, content, followee.inbox);
- }
}
diff --git a/src/services/following/requests/reject.ts b/src/services/following/requests/reject.ts
index d5b5e48c41..9a8b14bbfd 100644
--- a/src/services/following/requests/reject.ts
+++ b/src/services/following/requests/reject.ts
@@ -4,7 +4,8 @@ import renderReject from '../../../remote/activitypub/renderer/reject';
import { deliver } from '../../../queue';
import { publishMainStream } from '../../stream';
import { User, ILocalUser } from '../../../models/entities/user';
-import { Users, FollowRequests } from '../../../models';
+import { Users, FollowRequests, Followings } from '../../../models';
+import { decrementFollowing } from '../delete';
export default async function(followee: User, follower: User) {
if (Users.isRemoteUser(follower)) {
@@ -17,11 +18,25 @@ export default async function(followee: User, follower: User) {
deliver(followee as ILocalUser, content, follower.inbox);
}
- await FollowRequests.delete({
+ const request = await FollowRequests.findOne({
followeeId: followee.id,
followerId: follower.id
});
+ if (request) {
+ await FollowRequests.delete(request.id);
+ } else {
+ const following = await Followings.findOne({
+ followeeId: followee.id,
+ followerId: follower.id
+ });
+
+ if (following) {
+ await Followings.delete(following.id);
+ decrementFollowing(follower, followee);
+ }
+ }
+
Users.pack(followee, follower, {
detail: true
}).then(packed => publishMainStream(follower.id, 'unfollow', packed));