2019-07-29 01:27:47 +02:00
|
|
|
const express = require('express')
|
|
|
|
const router = express.Router()
|
|
|
|
const { user: User } = require('../api/models')
|
|
|
|
const config = require('config')
|
|
|
|
|
|
|
|
router.get('/', async (req, res) => {
|
2019-07-29 22:40:27 +02:00
|
|
|
console.error('ma sono dentro webfinger ?!?!')
|
2019-07-29 01:27:47 +02:00
|
|
|
const resource = req.query.resource
|
|
|
|
if (!resource || !resource.includes('acct:')) {
|
|
|
|
return res.status(400).send('Bad request. Please make sure "acct:USER@DOMAIN" is what you are sending as the "resource" query parameter.')
|
|
|
|
}
|
2019-07-29 23:35:47 +02:00
|
|
|
const name = resource.match(/acct:(.*)@/)[1]
|
|
|
|
const domain = new URL(config.baseurl).host
|
2019-07-29 01:27:47 +02:00
|
|
|
const user = await User.findOne({where: { username: name } })
|
|
|
|
if (!user) return res.status(404).send(`No record found for ${name}`)
|
|
|
|
const ret = {
|
2019-07-30 00:57:45 +02:00
|
|
|
subject: `acct:${name}@${domain}`,
|
2019-07-29 01:27:47 +02:00
|
|
|
links: [
|
|
|
|
{
|
|
|
|
rel: 'self',
|
|
|
|
type: 'application/activity+json',
|
|
|
|
href: `${config.baseurl}/federation/u/${name}`
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
res.json(ret)
|
|
|
|
})
|
|
|
|
module.exports = router
|