summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/following
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2018-06-02 16:28:08 +0900
committerGitHub <noreply@github.com>2018-06-02 16:28:08 +0900
commite25e1d88d60c4d427635e51609a6ecbfe7b6049b (patch)
treeb3b9890e83527d0d257c819a2c61981516945e21 /src/server/api/endpoints/following
parentMerge pull request #1672 from Angristan/patch-1 (diff)
parentwip (diff)
downloadmisskey-e25e1d88d60c4d427635e51609a6ecbfe7b6049b.tar.gz
misskey-e25e1d88d60c4d427635e51609a6ecbfe7b6049b.tar.bz2
misskey-e25e1d88d60c4d427635e51609a6ecbfe7b6049b.zip
Merge pull request #1671 from syuilo/locked-account
Locked account
Diffstat (limited to 'src/server/api/endpoints/following')
-rw-r--r--src/server/api/endpoints/following/create.ts4
-rw-r--r--src/server/api/endpoints/following/delete.ts4
-rw-r--r--src/server/api/endpoints/following/requests/accept.ts26
-rw-r--r--src/server/api/endpoints/following/requests/cancel.ts26
-rw-r--r--src/server/api/endpoints/following/requests/list.ts14
-rw-r--r--src/server/api/endpoints/following/requests/reject.ts26
6 files changed, 96 insertions, 4 deletions
diff --git a/src/server/api/endpoints/following/create.ts b/src/server/api/endpoints/following/create.ts
index 766a8c03d0..48205232e6 100644
--- a/src/server/api/endpoints/following/create.ts
+++ b/src/server/api/endpoints/following/create.ts
@@ -2,7 +2,7 @@
* Module dependencies
*/
import $ from 'cafy'; import ID from '../../../../cafy-id';
-import User from '../../../../models/user';
+import User, { pack } from '../../../../models/user';
import Following from '../../../../models/following';
import create from '../../../../services/following/create';
@@ -49,5 +49,5 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
create(follower, followee);
// Send response
- res();
+ res(await pack(followee, user));
});
diff --git a/src/server/api/endpoints/following/delete.ts b/src/server/api/endpoints/following/delete.ts
index 396b19a6f6..f4030c247a 100644
--- a/src/server/api/endpoints/following/delete.ts
+++ b/src/server/api/endpoints/following/delete.ts
@@ -2,7 +2,7 @@
* Module dependencies
*/
import $ from 'cafy'; import ID from '../../../../cafy-id';
-import User from '../../../../models/user';
+import User, { pack } from '../../../../models/user';
import Following from '../../../../models/following';
import deleteFollowing from '../../../../services/following/delete';
@@ -49,5 +49,5 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
deleteFollowing(follower, followee);
// Send response
- res();
+ res(await pack(followee, user));
});
diff --git a/src/server/api/endpoints/following/requests/accept.ts b/src/server/api/endpoints/following/requests/accept.ts
new file mode 100644
index 0000000000..705d3b161a
--- /dev/null
+++ b/src/server/api/endpoints/following/requests/accept.ts
@@ -0,0 +1,26 @@
+import $ from 'cafy'; import ID from '../../../../../cafy-id';
+import acceptFollowRequest from '../../../../../services/following/requests/accept';
+import User from '../../../../../models/user';
+
+/**
+ * Accept a follow request
+ */
+module.exports = (params, user) => new Promise(async (res, rej) => {
+ // Get 'userId' parameter
+ const [followerId, followerIdErr] = $.type(ID).get(params.userId);
+ if (followerIdErr) return rej('invalid userId param');
+
+ // Fetch follower
+ const follower = await User.findOne({
+ _id: followerId
+ });
+
+ if (follower === null) {
+ return rej('follower not found');
+ }
+
+ await acceptFollowRequest(user, follower);
+
+ // Send response
+ res();
+});
diff --git a/src/server/api/endpoints/following/requests/cancel.ts b/src/server/api/endpoints/following/requests/cancel.ts
new file mode 100644
index 0000000000..388a54890b
--- /dev/null
+++ b/src/server/api/endpoints/following/requests/cancel.ts
@@ -0,0 +1,26 @@
+import $ from 'cafy'; import ID from '../../../../../cafy-id';
+import cancelFollowRequest from '../../../../../services/following/requests/cancel';
+import User, { pack } from '../../../../../models/user';
+
+/**
+ * Cancel a follow request
+ */
+module.exports = (params, user) => new Promise(async (res, rej) => {
+ // Get 'userId' parameter
+ const [followeeId, followeeIdErr] = $.type(ID).get(params.userId);
+ if (followeeIdErr) return rej('invalid userId param');
+
+ // Fetch followee
+ const followee = await User.findOne({
+ _id: followeeId
+ });
+
+ if (followee === null) {
+ return rej('followee not found');
+ }
+
+ await cancelFollowRequest(followee, user);
+
+ // Send response
+ res(await pack(followee._id, user));
+});
diff --git a/src/server/api/endpoints/following/requests/list.ts b/src/server/api/endpoints/following/requests/list.ts
new file mode 100644
index 0000000000..e8364335d1
--- /dev/null
+++ b/src/server/api/endpoints/following/requests/list.ts
@@ -0,0 +1,14 @@
+//import $ from 'cafy'; import ID from '../../../../../cafy-id';
+import FollowRequest, { pack } from '../../../../../models/follow-request';
+
+/**
+ * Get all pending received follow requests
+ */
+module.exports = (params, user) => new Promise(async (res, rej) => {
+ const reqs = await FollowRequest.find({
+ followeeId: user._id
+ });
+
+ // Send response
+ res(await Promise.all(reqs.map(req => pack(req))));
+});
diff --git a/src/server/api/endpoints/following/requests/reject.ts b/src/server/api/endpoints/following/requests/reject.ts
new file mode 100644
index 0000000000..1cfb562b55
--- /dev/null
+++ b/src/server/api/endpoints/following/requests/reject.ts
@@ -0,0 +1,26 @@
+import $ from 'cafy'; import ID from '../../../../../cafy-id';
+import rejectFollowRequest from '../../../../../services/following/requests/reject';
+import User from '../../../../../models/user';
+
+/**
+ * Reject a follow request
+ */
+module.exports = (params, user) => new Promise(async (res, rej) => {
+ // Get 'userId' parameter
+ const [followerId, followerIdErr] = $.type(ID).get(params.userId);
+ if (followerIdErr) return rej('invalid userId param');
+
+ // Fetch follower
+ const follower = await User.findOne({
+ _id: followerId
+ });
+
+ if (follower === null) {
+ return rej('follower not found');
+ }
+
+ await rejectFollowRequest(user, follower);
+
+ // Send response
+ res();
+});