summaryrefslogtreecommitdiff
path: root/src/server/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api')
-rw-r--r--src/server/api/endpoints/admin/suspend-user.ts24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/server/api/endpoints/admin/suspend-user.ts b/src/server/api/endpoints/admin/suspend-user.ts
index 83b39fb0b9..0a2d309530 100644
--- a/src/server/api/endpoints/admin/suspend-user.ts
+++ b/src/server/api/endpoints/admin/suspend-user.ts
@@ -1,7 +1,9 @@
import $ from 'cafy';
import ID, { transform } from '../../../../misc/cafy-id';
import define from '../../define';
-import User from '../../../../models/user';
+import User, { IUser } from '../../../../models/user';
+import Following from '../../../../models/following';
+import deleteFollowing from '../../../../services/following/delete';
export const meta = {
desc: {
@@ -51,5 +53,25 @@ export default define(meta, async (ps) => {
}
});
+ unFollowAll(user);
+
return;
});
+
+async function unFollowAll(follower: IUser) {
+ const followings = await Following.find({
+ followerId: follower._id
+ });
+
+ for (const following of followings) {
+ const followee = await User.findOne({
+ _id: following.followeeId
+ });
+
+ if (followee == null) {
+ throw `Cant find followee ${following.followeeId}`;
+ }
+
+ await deleteFollowing(follower, followee, true);
+ }
+}