From 484d17f53f26ff3e8961d86f03ef94f62f8f62ed Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 2 Jun 2018 00:15:17 +0900 Subject: wip --- src/server/activitypub.ts | 19 +++++++++++----- src/server/api/endpoints.ts | 4 ++-- .../api/endpoints/following/request/accept.ts | 26 ---------------------- .../api/endpoints/following/request/reject.ts | 26 ---------------------- .../api/endpoints/following/requests/accept.ts | 26 ++++++++++++++++++++++ .../api/endpoints/following/requests/reject.ts | 26 ++++++++++++++++++++++ src/server/api/endpoints/i/update.ts | 2 +- 7 files changed, 69 insertions(+), 60 deletions(-) delete mode 100644 src/server/api/endpoints/following/request/accept.ts delete mode 100644 src/server/api/endpoints/following/request/reject.ts create mode 100644 src/server/api/endpoints/following/requests/accept.ts create mode 100644 src/server/api/endpoints/following/requests/reject.ts (limited to 'src/server') diff --git a/src/server/activitypub.ts b/src/server/activitypub.ts index 3c07a3e2f2..c846e28c07 100644 --- a/src/server/activitypub.ts +++ b/src/server/activitypub.ts @@ -7,7 +7,7 @@ const httpSignature = require('http-signature'); import { createHttp } from '../queue'; import pack from '../remote/activitypub/renderer'; import Note from '../models/note'; -import User, { isLocalUser } from '../models/user'; +import User, { isLocalUser, ILocalUser } from '../models/user'; import renderNote from '../remote/activitypub/renderer/note'; import renderKey from '../remote/activitypub/renderer/key'; import renderPerson from '../remote/activitypub/renderer/person'; @@ -69,7 +69,10 @@ router.get('/notes/:note', async (ctx, next) => { router.get('/users/:user/outbox', async ctx => { const userId = new mongo.ObjectID(ctx.params.user); - const user = await User.findOne({ _id: userId }); + const user = await User.findOne({ + _id: userId, + host: null + }); if (user === null) { ctx.status = 404; @@ -91,7 +94,10 @@ router.get('/users/:user/outbox', async ctx => { router.get('/users/:user/publickey', async ctx => { const userId = new mongo.ObjectID(ctx.params.user); - const user = await User.findOne({ _id: userId }); + const user = await User.findOne({ + _id: userId, + host: null + }); if (user === null) { ctx.status = 404; @@ -109,14 +115,17 @@ router.get('/users/:user/publickey', async ctx => { router.get('/users/:user', async ctx => { const userId = new mongo.ObjectID(ctx.params.user); - const user = await User.findOne({ _id: userId }); + const user = await User.findOne({ + _id: userId, + host: null + }); if (user === null) { ctx.status = 404; return; } - ctx.body = pack(renderPerson(user)); + ctx.body = pack(renderPerson(user as ILocalUser)); }); // follow form diff --git a/src/server/api/endpoints.ts b/src/server/api/endpoints.ts index bd8f30b38f..ad51a249bf 100644 --- a/src/server/api/endpoints.ts +++ b/src/server/api/endpoints.ts @@ -449,12 +449,12 @@ const endpoints: Endpoint[] = [ kind: 'following-write' }, { - name: 'following/request/accept', + name: 'following/requests/accept', withCredential: true, kind: 'following-write' }, { - name: 'following/request/reject', + name: 'following/requests/reject', withCredential: true, kind: 'following-write' }, diff --git a/src/server/api/endpoints/following/request/accept.ts b/src/server/api/endpoints/following/request/accept.ts deleted file mode 100644 index bf0aff4b77..0000000000 --- a/src/server/api/endpoints/following/request/accept.ts +++ /dev/null @@ -1,26 +0,0 @@ -import $ from 'cafy'; import ID from '../../../../../cafy-id'; -import acceptFollowRequest from '../../../../../services/user/accept-follow-request'; -import User from '../../../../../models/user'; - -/** - * Accept a follow request - */ -module.exports = (params, user) => new Promise(async (res, rej) => { - // Get 'followerId' parameter - const [followerId, followerIdErr] = $.type(ID).get(params.followerId); - if (followerIdErr) return rej('invalid followerId 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/request/reject.ts b/src/server/api/endpoints/following/request/reject.ts deleted file mode 100644 index 5a995e1962..0000000000 --- a/src/server/api/endpoints/following/request/reject.ts +++ /dev/null @@ -1,26 +0,0 @@ -import $ from 'cafy'; import ID from '../../../../../cafy-id'; -import rejectFollowRequest from '../../../../../services/user/reject-follow-request'; -import User from '../../../../../models/user'; - -/** - * Reject a follow request - */ -module.exports = (params, user) => new Promise(async (res, rej) => { - // Get 'followerId' parameter - const [followerId, followerIdErr] = $.type(ID).get(params.followerId); - if (followerIdErr) return rej('invalid followerId 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(); -}); 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..f8df3b7850 --- /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 'followerId' parameter + const [followerId, followerIdErr] = $.type(ID).get(params.followerId); + if (followerIdErr) return rej('invalid followerId 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/reject.ts b/src/server/api/endpoints/following/requests/reject.ts new file mode 100644 index 0000000000..4900127a57 --- /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 'followerId' parameter + const [followerId, followerIdErr] = $.type(ID).get(params.followerId); + if (followerIdErr) return rej('invalid followerId 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(); +}); diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts index 103cd3ac36..8ee3c84861 100644 --- a/src/server/api/endpoints/i/update.ts +++ b/src/server/api/endpoints/i/update.ts @@ -5,7 +5,7 @@ import $ from 'cafy'; import ID from '../../../../cafy-id'; import User, { isValidName, isValidDescription, isValidLocation, isValidBirthday, pack } from '../../../../models/user'; import event from '../../../../publishers/stream'; import DriveFile from '../../../../models/drive-file'; -import acceptAllFollowRequests from '../../../../services/user/accept-all-follow-requests'; +import acceptAllFollowRequests from '../../../../services/following/requests/accept-all'; /** * Update myself -- cgit v1.2.3-freya