X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Foauth-clients.ts;h=eb7942fd68247ce9f093ecac92de189fcce54c2c;hb=bd09dfaf8dcb0ca4cd5dac9f13e3117486f3bcce;hp=f7dac598c3d62770049ca656bc27f8d35c9973a0;hpb=6fcd19ba737f1f5614a56c6925adb882dea43b8d;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/oauth-clients.ts b/server/controllers/api/oauth-clients.ts index f7dac598c..eb7942fd6 100644 --- a/server/controllers/api/oauth-clients.ts +++ b/server/controllers/api/oauth-clients.ts @@ -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) } // ---------------------------------------------------------------------------