From 0626e7af82e02f8a5bd1e74a7d4d8c916d073ceb Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 24 Apr 2018 15:10:54 +0200 Subject: Add account view --- server/controllers/api/accounts.ts | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) (limited to 'server/controllers/api/accounts.ts') diff --git a/server/controllers/api/accounts.ts b/server/controllers/api/accounts.ts index 4dc0cc16d..06ab04033 100644 --- a/server/controllers/api/accounts.ts +++ b/server/controllers/api/accounts.ts @@ -1,8 +1,11 @@ import * as express from 'express' import { getFormattedObjects } from '../../helpers/utils' -import { asyncMiddleware, paginationValidator, setDefaultSort, setDefaultPagination } from '../../middlewares' -import { accountsGetValidator, accountsSortValidator } from '../../middlewares/validators' +import { asyncMiddleware, optionalAuthenticate, paginationValidator, setDefaultPagination, setDefaultSort } from '../../middlewares' +import { accountsGetValidator, accountsSortValidator, videosSortValidator } from '../../middlewares/validators' import { AccountModel } from '../../models/account/account' +import { VideoModel } from '../../models/video/video' +import { VideoSortField } from '../../../client/src/app/shared/video/sort-field.type' +import { isNSFWHidden } from '../../helpers/express-utils' const accountsRouter = express.Router() @@ -19,6 +22,16 @@ accountsRouter.get('/:id', getAccount ) +accountsRouter.get('/:id/videos', + asyncMiddleware(accountsGetValidator), + paginationValidator, + videosSortValidator, + setDefaultSort, + setDefaultPagination, + optionalAuthenticate, + asyncMiddleware(getAccountVideos) +) + // --------------------------------------------------------------------------- export { @@ -28,7 +41,9 @@ export { // --------------------------------------------------------------------------- function getAccount (req: express.Request, res: express.Response, next: express.NextFunction) { - return res.json(res.locals.account.toFormattedJSON()) + const account: AccountModel = res.locals.account + + return res.json(account.toFormattedJSON()) } async function listAccounts (req: express.Request, res: express.Response, next: express.NextFunction) { @@ -36,3 +51,19 @@ async function listAccounts (req: express.Request, res: express.Response, next: return res.json(getFormattedObjects(resultList.data, resultList.total)) } + +async function getAccountVideos (req: express.Request, res: express.Response, next: express.NextFunction) { + const account: AccountModel = res.locals.account + + const resultList = await VideoModel.listForApi( + req.query.start as number, + req.query.count as number, + req.query.sort as VideoSortField, + isNSFWHidden(res), + null, + false, + account.id + ) + + return res.json(getFormattedObjects(resultList.data, resultList.total)) +} -- cgit v1.2.3