summaryrefslogtreecommitdiff
path: root/src/server/activitypub/user.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/activitypub/user.ts')
-rw-r--r--src/server/activitypub/user.ts36
1 files changed, 8 insertions, 28 deletions
diff --git a/src/server/activitypub/user.ts b/src/server/activitypub/user.ts
index ef365c2078..d43a9793d4 100644
--- a/src/server/activitypub/user.ts
+++ b/src/server/activitypub/user.ts
@@ -1,9 +1,9 @@
import * as express from 'express';
import config from '../../conf';
-import { extractPublic } from '../../crypto_key';
-import context from '../../common/remote/activitypub/context';
+import context from '../../common/remote/activitypub/renderer/context';
+import render from '../../common/remote/activitypub/renderer/person';
import parseAcct from '../../common/user/parse-acct';
-import User, { ILocalAccount } from '../../models/user';
+import User from '../../models/user';
const app = express();
app.disable('x-powered-by');
@@ -27,34 +27,14 @@ app.get('/@:user', async (req, res, next) => {
return res.sendStatus(404);
}
- const id = `${config.url}/@${user.username}`;
-
if (username !== user.username) {
- return res.redirect(id);
+ return res.redirect(`${config.url}/@${user.username}`);
}
- res.json({
- '@context': context,
- type: 'Person',
- id,
- inbox: `${id}/inbox`,
- preferredUsername: user.username,
- name: user.name,
- summary: user.description,
- icon: user.avatarId && {
- type: 'Image',
- url: `${config.drive_url}/${user.avatarId}`
- },
- image: user.bannerId && {
- type: 'Image',
- url: `${config.drive_url}/${user.bannerId}`
- },
- publicKey: {
- type: 'Key',
- owner: id,
- publicKeyPem: extractPublic((user.account as ILocalAccount).keypair)
- }
- });
+ const rendered = render(user);
+ rendered['@context'] = context;
+
+ res.json(rendered);
});
export default app;