summaryrefslogtreecommitdiff
path: root/src/server/webfinger.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-13 00:51:55 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-13 00:51:55 +0900
commita3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9 (patch)
tree1d9ef7220ca46696ee4ada43f41fcd59d386abc8 /src/server/webfinger.ts
parentMerge branch 'master' of https://github.com/syuilo/misskey (diff)
downloadmisskey-a3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9.tar.gz
misskey-a3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9.tar.bz2
misskey-a3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9.zip
wip
Diffstat (limited to 'src/server/webfinger.ts')
-rw-r--r--src/server/webfinger.ts32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/server/webfinger.ts b/src/server/webfinger.ts
index dbf0999f3e..e72592351b 100644
--- a/src/server/webfinger.ts
+++ b/src/server/webfinger.ts
@@ -1,17 +1,19 @@
-import * as express from 'express';
+import * as Router from 'koa-router';
import config from '../config';
import parseAcct from '../acct/parse';
import User from '../models/user';
-const app = express.Router();
+// Init router
+const router = new Router();
-app.get('/.well-known/webfinger', async (req, res) => {
- if (typeof req.query.resource !== 'string') {
- return res.sendStatus(400);
+router.get('/.well-known/webfinger', async ctx => {
+ if (typeof ctx.query.resource !== 'string') {
+ ctx.status = 400;
+ return;
}
- const resourceLower = req.query.resource.toLowerCase();
+ const resourceLower = ctx.query.resource.toLowerCase();
const webPrefix = config.url.toLowerCase() + '/@';
let acctLower;
@@ -25,15 +27,21 @@ app.get('/.well-known/webfinger', async (req, res) => {
const parsedAcctLower = parseAcct(acctLower);
if (![null, config.host.toLowerCase()].includes(parsedAcctLower.host)) {
- return res.sendStatus(422);
+ ctx.status = 422;
+ return;
}
- const user = await User.findOne({ usernameLower: parsedAcctLower.username, host: null });
+ const user = await User.findOne({
+ usernameLower: parsedAcctLower.username,
+ host: null
+ });
+
if (user === null) {
- return res.sendStatus(404);
+ ctx.status = 404;
+ return;
}
- return res.json({
+ ctx.body = {
subject: `acct:${user.username}@${config.host}`,
links: [{
rel: 'self',
@@ -47,7 +55,7 @@ app.get('/.well-known/webfinger', async (req, res) => {
rel: 'http://ostatus.org/schema/1.0/subscribe',
template: `${config.url}/authorize-follow?acct={uri}`
}]
- });
+ };
});
-export default app;
+export default router;