diff options
| author | mei23 <m@m544.net> | 2018-08-14 20:13:32 +0900 |
|---|---|---|
| committer | mei23 <m@m544.net> | 2018-08-14 20:13:32 +0900 |
| commit | 0986301788a40663ced0aa9d6d8a97b099b622b1 (patch) | |
| tree | e68319f2e89dcd852ee7cf700dc0c6e033c97897 /src/server/activitypub.ts | |
| parent | 5.23.2 (diff) | |
| download | misskey-0986301788a40663ced0aa9d6d8a97b099b622b1.tar.gz misskey-0986301788a40663ced0aa9d6d8a97b099b622b1.tar.bz2 misskey-0986301788a40663ced0aa9d6d8a97b099b622b1.zip | |
Implement ActivityPub Followers/Following/Outbox
Diffstat (limited to 'src/server/activitypub.ts')
| -rw-r--r-- | src/server/activitypub.ts | 71 |
1 files changed, 7 insertions, 64 deletions
diff --git a/src/server/activitypub.ts b/src/server/activitypub.ts index 7d6fe09269..c2dec2b997 100644 --- a/src/server/activitypub.ts +++ b/src/server/activitypub.ts @@ -10,8 +10,9 @@ import User, { isLocalUser, ILocalUser, IUser } from '../models/user'; import renderNote from '../remote/activitypub/renderer/note'; import renderKey from '../remote/activitypub/renderer/key'; import renderPerson from '../remote/activitypub/renderer/person'; -import renderOrderedCollection from '../remote/activitypub/renderer/ordered-collection'; -import config from '../config'; +import Outbox from './activitypub/outbox'; +import Followers from './activitypub/followers'; +import Following from './activitypub/following'; // Init router const router = new Router(); @@ -64,72 +65,14 @@ router.get('/notes/:note', async (ctx, next) => { ctx.body = pack(await renderNote(note)); }); -// outbot -router.get('/users/:user/outbox', async ctx => { - const userId = new mongo.ObjectID(ctx.params.user); - - const user = await User.findOne({ - _id: userId, - host: null - }); - - if (user === null) { - ctx.status = 404; - return; - } - - const notes = await Note.find({ userId: user._id }, { - limit: 10, - sort: { _id: -1 } - }); - - const renderedNotes = await Promise.all(notes.map(note => renderNote(note))); - const rendered = renderOrderedCollection(`${config.url}/users/${userId}/inbox`, user.notesCount, renderedNotes); - - ctx.body = pack(rendered); -}); +// outbox +router.get('/users/:user/outbox', Outbox); // followers -router.get('/users/:user/followers', async ctx => { - const userId = new mongo.ObjectID(ctx.params.user); - - const user = await User.findOne({ - _id: userId, - host: null - }); - - if (user === null) { - ctx.status = 404; - return; - } - - // TODO: Implement fetch and render - - const rendered = renderOrderedCollection(`${config.url}/users/${userId}/followers`, 0, []); - - ctx.body = pack(rendered); -}); +router.get('/users/:user/followers', Followers); // following -router.get('/users/:user/following', async ctx => { - const userId = new mongo.ObjectID(ctx.params.user); - - const user = await User.findOne({ - _id: userId, - host: null - }); - - if (user === null) { - ctx.status = 404; - return; - } - - // TODO: Implement fetch and render - - const rendered = renderOrderedCollection(`${config.url}/users/${userId}/following`, 0, []); - - ctx.body = pack(rendered); -}); +router.get('/users/:user/following', Following); // publickey router.get('/users/:user/publickey', async ctx => { |