2017-11-14 17:31:26 +01:00
|
|
|
import * as express from 'express'
|
2017-12-12 17:53:50 +01:00
|
|
|
import { asyncMiddleware } from '../middlewares'
|
|
|
|
import { webfingerValidator } from '../middlewares/validators'
|
|
|
|
import { AccountModel } from '../models/account/account'
|
2017-11-14 17:31:26 +01:00
|
|
|
|
|
|
|
const webfingerRouter = express.Router()
|
|
|
|
|
2017-11-15 10:10:41 +01:00
|
|
|
webfingerRouter.get('/.well-known/webfinger',
|
2017-11-27 17:30:46 +01:00
|
|
|
asyncMiddleware(webfingerValidator),
|
2017-11-14 17:31:26 +01:00
|
|
|
webfingerController
|
|
|
|
)
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
export {
|
|
|
|
webfingerRouter
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
function webfingerController (req: express.Request, res: express.Response, next: express.NextFunction) {
|
2017-12-12 17:53:50 +01:00
|
|
|
const account = res.locals.account as AccountModel
|
2017-11-14 17:31:26 +01:00
|
|
|
|
|
|
|
const json = {
|
|
|
|
subject: req.query.resource,
|
2017-12-14 11:18:49 +01:00
|
|
|
aliases: [ account.Actor.url ],
|
2017-11-14 17:31:26 +01:00
|
|
|
links: [
|
|
|
|
{
|
|
|
|
rel: 'self',
|
2017-11-29 11:34:44 +01:00
|
|
|
type: 'application/activity+json',
|
2017-12-14 11:18:49 +01:00
|
|
|
href: account.Actor.url
|
2017-11-14 17:31:26 +01:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
return res.json(json).end()
|
|
|
|
}
|