summaryrefslogtreecommitdiff
path: root/src/server/activitypub/user.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2018-04-01 20:08:22 +0900
committerGitHub <noreply@github.com>2018-04-01 20:08:22 +0900
commit7d7320c2819e21174d60e67ae059aabe025b91ec (patch)
treefa459a2c0b4399dbb288902c02afc93c6a88b518 /src/server/activitypub/user.ts
parentMerge pull request #1343 from syuilo/greenkeeper/@types/js-yaml-3.11.1 (diff)
parentImplement account public key endpoint (diff)
downloadmisskey-7d7320c2819e21174d60e67ae059aabe025b91ec.tar.gz
misskey-7d7320c2819e21174d60e67ae059aabe025b91ec.tar.bz2
misskey-7d7320c2819e21174d60e67ae059aabe025b91ec.zip
Merge pull request #1355 from akihikodaki/publickey
Implement account public key endpoint
Diffstat (limited to 'src/server/activitypub/user.ts')
-rw-r--r--src/server/activitypub/user.ts39
1 files changed, 13 insertions, 26 deletions
diff --git a/src/server/activitypub/user.ts b/src/server/activitypub/user.ts
index d43a9793d4..8e8deca4ae 100644
--- a/src/server/activitypub/user.ts
+++ b/src/server/activitypub/user.ts
@@ -2,39 +2,26 @@ import * as express from 'express';
import config from '../../conf';
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 from '../../models/user';
+import withUser from './with-user';
+
+const respond = withUser(username => `${config.url}/@${username}`, (user, req, res) => {
+ const rendered = render(user);
+ rendered['@context'] = context;
+
+ res.json(rendered);
+});
const app = express();
app.disable('x-powered-by');
-app.get('/@:user', async (req, res, next) => {
+app.get('/@:user', (req, res, next) => {
const accepted = req.accepts(['html', 'application/activity+json', 'application/ld+json']);
- if (!(['application/activity+json', 'application/ld+json'] as Array<any>).includes(accepted)) {
- return next();
- }
-
- const { username, host } = parseAcct(req.params.user);
- if (host !== null) {
- return res.sendStatus(422);
- }
-
- const user = await User.findOne({
- usernameLower: username.toLowerCase(),
- host: null
- });
- if (user === null) {
- return res.sendStatus(404);
- }
- if (username !== user.username) {
- return res.redirect(`${config.url}/@${user.username}`);
+ if ((['application/activity+json', 'application/ld+json'] as Array<any>).includes(accepted)) {
+ respond(req, res, next);
+ } else {
+ next();
}
-
- const rendered = render(user);
- rendered['@context'] = context;
-
- res.json(rendered);
});
export default app;