Rename streaming playlists routes/directories
[oweals/peertube.git] / server / controllers / webfinger.ts
1 import * as express from 'express'
2 import { asyncMiddleware } from '../middlewares'
3 import { webfingerValidator } from '../middlewares/validators'
4 import { ActorModel } from '../models/activitypub/actor'
5
6 const webfingerRouter = express.Router()
7
8 webfingerRouter.get('/.well-known/webfinger',
9   asyncMiddleware(webfingerValidator),
10   webfingerController
11 )
12
13 // ---------------------------------------------------------------------------
14
15 export {
16   webfingerRouter
17 }
18
19 // ---------------------------------------------------------------------------
20
21 function webfingerController (req: express.Request, res: express.Response, next: express.NextFunction) {
22   const actor = res.locals.actor as ActorModel
23
24   const json = {
25     subject: req.query.resource,
26     aliases: [ actor.url ],
27     links: [
28       {
29         rel: 'self',
30         type: 'application/activity+json',
31         href: actor.url
32       }
33     ]
34   }
35
36   return res.json(json).end()
37 }