diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2018-06-02 16:28:08 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-06-02 16:28:08 +0900 |
| commit | e25e1d88d60c4d427635e51609a6ecbfe7b6049b (patch) | |
| tree | b3b9890e83527d0d257c819a2c61981516945e21 /src/server/api/endpoints/following | |
| parent | Merge pull request #1672 from Angristan/patch-1 (diff) | |
| parent | wip (diff) | |
| download | misskey-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.ts | 4 | ||||
| -rw-r--r-- | src/server/api/endpoints/following/delete.ts | 4 | ||||
| -rw-r--r-- | src/server/api/endpoints/following/requests/accept.ts | 26 | ||||
| -rw-r--r-- | src/server/api/endpoints/following/requests/cancel.ts | 26 | ||||
| -rw-r--r-- | src/server/api/endpoints/following/requests/list.ts | 14 | ||||
| -rw-r--r-- | src/server/api/endpoints/following/requests/reject.ts | 26 |
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(); +}); |