]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/api/oauth-clients.ts
Fix player error modal size
[github/Chocobozzz/PeerTube.git] / server / controllers / api / oauth-clients.ts
index f7dac598c3d62770049ca656bc27f8d35c9973a0..eb7942fd68247ce9f093ecac92de189fcce54c2c 100644 (file)
@@ -1,16 +1,20 @@
-import * as express from 'express'
-
-import { CONFIG } from '../../initializers'
-import { logger } from '../../helpers'
-import { database as db } from '../../initializers/database'
-import { OAuthClientLocal } from '../../../shared'
+import express from 'express'
+import { isTestOrDevInstance } from '@server/helpers/core-utils'
+import { OAuthClientModel } from '@server/models/oauth/oauth-client'
+import { HttpStatusCode, OAuthClientLocal } from '@shared/models'
+import { logger } from '../../helpers/logger'
+import { CONFIG } from '../../initializers/config'
+import { asyncMiddleware, openapiOperationDoc } from '../../middlewares'
 
 const oauthClientsRouter = express.Router()
 
-oauthClientsRouter.get('/local', getLocalClient)
+oauthClientsRouter.get('/local',
+  openapiOperationDoc({ operationId: 'getOAuthClient' }),
+  asyncMiddleware(getLocalClient)
+)
 
 // Get the client credentials for the PeerTube front end
-function getLocalClient (req: express.Request, res: express.Response, next: express.NextFunction) {
+async function getLocalClient (req: express.Request, res: express.Response, next: express.NextFunction) {
   const serverHostname = CONFIG.WEBSERVER.HOSTNAME
   const serverPort = CONFIG.WEBSERVER.PORT
   let headerHostShouldBe = serverHostname
@@ -19,22 +23,22 @@ function getLocalClient (req: express.Request, res: express.Response, next: expr
   }
 
   // Don't make this check if this is a test instance
-  if (process.env.NODE_ENV !== 'test' && req.get('host') !== headerHostShouldBe) {
+  if (!isTestOrDevInstance() && req.get('host') !== headerHostShouldBe) {
     logger.info('Getting client tokens for host %s is forbidden (expected %s).', req.get('host'), headerHostShouldBe)
-    return res.type('json').status(403).end()
+    return res.fail({
+      status: HttpStatusCode.FORBIDDEN_403,
+      message: `Getting client tokens for host ${req.get('host')} is forbidden`
+    })
   }
 
-  db.OAuthClient.loadFirstClient()
-    .then(client => {
-      if (!client) throw new Error('No client available.')
+  const client = await OAuthClientModel.loadFirstClient()
+  if (!client) throw new Error('No client available.')
 
-      const json: OAuthClientLocal = {
-        client_id: client.clientId,
-        client_secret: client.clientSecret
-      }
-      res.json(json)
-    })
-    .catch(err => next(err))
+  const json: OAuthClientLocal = {
+    client_id: client.clientId,
+    client_secret: client.clientSecret
+  }
+  return res.json(json)
 }
 
 // ---------------------------------------------------------------------------