summaryrefslogtreecommitdiff
path: root/src/server/activitypub.ts
diff options
context:
space:
mode:
authormei23 <m@m544.net>2018-08-14 20:13:32 +0900
committermei23 <m@m544.net>2018-08-14 20:13:32 +0900
commit0986301788a40663ced0aa9d6d8a97b099b622b1 (patch)
treee68319f2e89dcd852ee7cf700dc0c6e033c97897 /src/server/activitypub.ts
parent5.23.2 (diff)
downloadmisskey-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.ts71
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 => {