]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/controllers/api/actor.ts
Add server API actors route
[github/Chocobozzz/PeerTube.git] / server / controllers / api / actor.ts
1 import * as express from 'express'
2 import { JobQueue } from '../../lib/job-queue'
3 import { asyncMiddleware } from '../../middlewares'
4 import { actorNameWithHostGetValidator } from '../../middlewares/validators'
5
6 const actorRouter = express.Router()
7
8 actorRouter.get('/:actorName',
9 asyncMiddleware(actorNameWithHostGetValidator),
10 getActor
11 )
12
13 // ---------------------------------------------------------------------------
14
15 export {
16 actorRouter
17 }
18
19 // ---------------------------------------------------------------------------
20
21 function getActor (req: express.Request, res: express.Response) {
22 let accountOrVideoChannel
23
24 if (res.locals.account) {
25 accountOrVideoChannel = res.locals.account
26 }
27
28 if (res.locals.videoChannel) {
29 accountOrVideoChannel = res.locals.videoChannel
30 }
31
32 if (accountOrVideoChannel.isOutdated()) {
33 JobQueue.Instance.createJob({ type: 'activitypub-refresher', payload: { type: 'actor', url: accountOrVideoChannel.Actor.url } })
34 }
35
36 return res.json(accountOrVideoChannel.toFormattedJSON())
37 }