add operationId doc middleware to so API endpoints

This commit is contained in:
Rigel Kent 2021-06-04 09:16:23 +02:00
parent 1c627fd8d2
commit 1333ab1f2d
No known key found for this signature in database
GPG Key ID: 5E53E96A494E452F
8 changed files with 32 additions and 5 deletions

View File

@ -24,6 +24,7 @@ import {
deleteAbuseMessageValidator, deleteAbuseMessageValidator,
ensureUserHasRight, ensureUserHasRight,
getAbuseValidator, getAbuseValidator,
openapiOperationDoc,
paginationValidator, paginationValidator,
setDefaultPagination, setDefaultPagination,
setDefaultSort setDefaultSort
@ -33,6 +34,7 @@ import { AccountModel } from '../../models/account/account'
const abuseRouter = express.Router() const abuseRouter = express.Router()
abuseRouter.get('/', abuseRouter.get('/',
openapiOperationDoc({ operationId: 'getAbuses' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_ABUSES), ensureUserHasRight(UserRight.MANAGE_ABUSES),
paginationValidator, paginationValidator,

View File

@ -10,26 +10,32 @@ import { auditLoggerFactory, CustomConfigAuditView, getAuditIdFromRes } from '..
import { objectConverter } from '../../helpers/core-utils' import { objectConverter } from '../../helpers/core-utils'
import { CONFIG, reloadConfig } from '../../initializers/config' import { CONFIG, reloadConfig } from '../../initializers/config'
import { ClientHtml } from '../../lib/client-html' import { ClientHtml } from '../../lib/client-html'
import { asyncMiddleware, authenticate, ensureUserHasRight } from '../../middlewares' import { asyncMiddleware, authenticate, ensureUserHasRight, openapiOperationDoc } from '../../middlewares'
import { customConfigUpdateValidator } from '../../middlewares/validators/config' import { customConfigUpdateValidator } from '../../middlewares/validators/config'
const configRouter = express.Router() const configRouter = express.Router()
const auditLogger = auditLoggerFactory('config') const auditLogger = auditLoggerFactory('config')
configRouter.get('/about', getAbout)
configRouter.get('/', configRouter.get('/',
openapiOperationDoc({ operationId: 'getConfig' }),
asyncMiddleware(getConfig) asyncMiddleware(getConfig)
) )
configRouter.get('/about',
openapiOperationDoc({ operationId: 'getAbout' }),
getAbout
)
configRouter.get('/custom', configRouter.get('/custom',
openapiOperationDoc({ operationId: 'getCustomConfig' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_CONFIGURATION), ensureUserHasRight(UserRight.MANAGE_CONFIGURATION),
getCustomConfig getCustomConfig
) )
configRouter.put('/custom', configRouter.put('/custom',
openapiOperationDoc({ operationId: 'putCustomConfig' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_CONFIGURATION), ensureUserHasRight(UserRight.MANAGE_CONFIGURATION),
customConfigUpdateValidator, customConfigUpdateValidator,
@ -37,6 +43,7 @@ configRouter.put('/custom',
) )
configRouter.delete('/custom', configRouter.delete('/custom',
openapiOperationDoc({ operationId: 'delCustomConfig' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_CONFIGURATION), ensureUserHasRight(UserRight.MANAGE_CONFIGURATION),
asyncMiddleware(deleteCustomConfig) asyncMiddleware(deleteCustomConfig)

View File

@ -9,6 +9,7 @@ import {
authenticate, authenticate,
ensureUserHasRight, ensureUserHasRight,
jobsSortValidator, jobsSortValidator,
openapiOperationDoc,
paginationValidatorBuilder, paginationValidatorBuilder,
setDefaultPagination, setDefaultPagination,
setDefaultSort setDefaultSort
@ -18,6 +19,7 @@ import { listJobsValidator } from '../../middlewares/validators/jobs'
const jobsRouter = express.Router() const jobsRouter = express.Router()
jobsRouter.get('/:state?', jobsRouter.get('/:state?',
openapiOperationDoc({ operationId: 'getJobs' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_JOBS), ensureUserHasRight(UserRight.MANAGE_JOBS),
paginationValidatorBuilder([ 'jobs' ]), paginationValidatorBuilder([ 'jobs' ]),

View File

@ -3,12 +3,13 @@ import { OAuthClientLocal } from '../../../shared'
import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
import { logger } from '../../helpers/logger' import { logger } from '../../helpers/logger'
import { CONFIG } from '../../initializers/config' import { CONFIG } from '../../initializers/config'
import { asyncMiddleware } from '../../middlewares' import { asyncMiddleware, openapiOperationDoc } from '../../middlewares'
import { OAuthClientModel } from '../../models/oauth/oauth-client' import { OAuthClientModel } from '../../models/oauth/oauth-client'
const oauthClientsRouter = express.Router() const oauthClientsRouter = express.Router()
oauthClientsRouter.get('/local', oauthClientsRouter.get('/local',
openapiOperationDoc({ operationId: 'getOAuthClient' }),
asyncMiddleware(getLocalClient) asyncMiddleware(getLocalClient)
) )

View File

@ -8,6 +8,7 @@ import {
authenticate, authenticate,
availablePluginsSortValidator, availablePluginsSortValidator,
ensureUserHasRight, ensureUserHasRight,
openapiOperationDoc,
paginationValidator, paginationValidator,
pluginsSortValidator, pluginsSortValidator,
setDefaultPagination, setDefaultPagination,
@ -35,6 +36,7 @@ import {
const pluginRouter = express.Router() const pluginRouter = express.Router()
pluginRouter.get('/available', pluginRouter.get('/available',
openapiOperationDoc({ operationId: 'getAvailablePlugins' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_PLUGINS), ensureUserHasRight(UserRight.MANAGE_PLUGINS),
listAvailablePluginsValidator, listAvailablePluginsValidator,
@ -46,6 +48,7 @@ pluginRouter.get('/available',
) )
pluginRouter.get('/', pluginRouter.get('/',
openapiOperationDoc({ operationId: 'getPlugins' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_PLUGINS), ensureUserHasRight(UserRight.MANAGE_PLUGINS),
listPluginsValidator, listPluginsValidator,
@ -84,6 +87,7 @@ pluginRouter.get('/:npmName',
) )
pluginRouter.post('/install', pluginRouter.post('/install',
openapiOperationDoc({ operationId: 'addPlugin' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_PLUGINS), ensureUserHasRight(UserRight.MANAGE_PLUGINS),
installOrUpdatePluginValidator, installOrUpdatePluginValidator,
@ -91,6 +95,7 @@ pluginRouter.post('/install',
) )
pluginRouter.post('/update', pluginRouter.post('/update',
openapiOperationDoc({ operationId: 'updatePlugin' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_PLUGINS), ensureUserHasRight(UserRight.MANAGE_PLUGINS),
installOrUpdatePluginValidator, installOrUpdatePluginValidator,
@ -98,6 +103,7 @@ pluginRouter.post('/update',
) )
pluginRouter.post('/uninstall', pluginRouter.post('/uninstall',
openapiOperationDoc({ operationId: 'uninstallPlugin' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_PLUGINS), ensureUserHasRight(UserRight.MANAGE_PLUGINS),
uninstallPluginValidator, uninstallPluginValidator,

View File

@ -18,6 +18,7 @@ import { getOrCreateAPActor, loadActorUrlOrGetFromWebfinger } from '../../lib/ac
import { import {
asyncMiddleware, asyncMiddleware,
commonVideosFiltersValidator, commonVideosFiltersValidator,
openapiOperationDoc,
optionalAuthenticate, optionalAuthenticate,
paginationValidator, paginationValidator,
setDefaultPagination, setDefaultPagination,
@ -34,6 +35,7 @@ import { MChannelAccountDefault, MVideoAccountLightBlacklistAllFiles } from '../
const searchRouter = express.Router() const searchRouter = express.Router()
searchRouter.get('/videos', searchRouter.get('/videos',
openapiOperationDoc({ operationId: 'searchVideos' }),
paginationValidator, paginationValidator,
setDefaultPagination, setDefaultPagination,
videosSearchSortValidator, videosSearchSortValidator,
@ -45,6 +47,7 @@ searchRouter.get('/videos',
) )
searchRouter.get('/video-channels', searchRouter.get('/video-channels',
openapiOperationDoc({ operationId: 'searchChannels' }),
paginationValidator, paginationValidator,
setDefaultPagination, setDefaultPagination,
videoChannelsSearchSortValidator, videoChannelsSearchSortValidator,

View File

@ -7,7 +7,7 @@ import { getAuthNameFromRefreshGrant, getBypassFromExternalAuth, getBypassFromPa
import { handleOAuthToken } from '@server/lib/auth/oauth' import { handleOAuthToken } from '@server/lib/auth/oauth'
import { BypassLogin, revokeToken } from '@server/lib/auth/oauth-model' import { BypassLogin, revokeToken } from '@server/lib/auth/oauth-model'
import { Hooks } from '@server/lib/plugins/hooks' import { Hooks } from '@server/lib/plugins/hooks'
import { asyncMiddleware, authenticate } from '@server/middlewares' import { asyncMiddleware, authenticate, openapiOperationDoc } from '@server/middlewares'
import { ScopedToken } from '@shared/models/users/user-scoped-token' import { ScopedToken } from '@shared/models/users/user-scoped-token'
const tokensRouter = express.Router() const tokensRouter = express.Router()
@ -19,10 +19,12 @@ const loginRateLimiter = RateLimit({
tokensRouter.post('/token', tokensRouter.post('/token',
loginRateLimiter, loginRateLimiter,
openapiOperationDoc({ operationId: 'getOAuthToken' }),
asyncMiddleware(handleToken) asyncMiddleware(handleToken)
) )
tokensRouter.post('/revoke-token', tokensRouter.post('/revoke-token',
openapiOperationDoc({ operationId: 'revokeOAuthToken' }),
authenticate, authenticate,
asyncMiddleware(handleTokenRevocation) asyncMiddleware(handleTokenRevocation)
) )

View File

@ -9,6 +9,7 @@ import {
authenticate, authenticate,
blacklistSortValidator, blacklistSortValidator,
ensureUserHasRight, ensureUserHasRight,
openapiOperationDoc,
paginationValidator, paginationValidator,
setBlacklistSort, setBlacklistSort,
setDefaultPagination, setDefaultPagination,
@ -23,6 +24,7 @@ import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-c
const blacklistRouter = express.Router() const blacklistRouter = express.Router()
blacklistRouter.post('/:videoId/blacklist', blacklistRouter.post('/:videoId/blacklist',
openapiOperationDoc({ operationId: 'addVideoBlock' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_VIDEO_BLACKLIST), ensureUserHasRight(UserRight.MANAGE_VIDEO_BLACKLIST),
asyncMiddleware(videosBlacklistAddValidator), asyncMiddleware(videosBlacklistAddValidator),
@ -30,6 +32,7 @@ blacklistRouter.post('/:videoId/blacklist',
) )
blacklistRouter.get('/blacklist', blacklistRouter.get('/blacklist',
openapiOperationDoc({ operationId: 'getVideoBlocks' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_VIDEO_BLACKLIST), ensureUserHasRight(UserRight.MANAGE_VIDEO_BLACKLIST),
paginationValidator, paginationValidator,
@ -48,6 +51,7 @@ blacklistRouter.put('/:videoId/blacklist',
) )
blacklistRouter.delete('/:videoId/blacklist', blacklistRouter.delete('/:videoId/blacklist',
openapiOperationDoc({ operationId: 'delVideoBlock' }),
authenticate, authenticate,
ensureUserHasRight(UserRight.MANAGE_VIDEO_BLACKLIST), ensureUserHasRight(UserRight.MANAGE_VIDEO_BLACKLIST),
asyncMiddleware(videosBlacklistRemoveValidator), asyncMiddleware(videosBlacklistRemoveValidator),