X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Foverviews.ts;h=34585e557f775e9ac97ee03065a3fe9a3eb5a816;hb=cde3d90ded5debb24281a444eabb720b721e5600;hp=aaa341d54afc30b00a74ff5bef049e6c1bb27d76;hpb=a24bd1ed41b43790bab6ba789580bb4e85f07d85;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/overviews.ts b/server/controllers/api/overviews.ts index aaa341d54..34585e557 100644 --- a/server/controllers/api/overviews.ts +++ b/server/controllers/api/overviews.ts @@ -1,12 +1,14 @@ -import * as express from 'express' -import * as memoizee from 'memoizee' +import express from 'express' +import memoizee from 'memoizee' import { logger } from '@server/helpers/logger' +import { Hooks } from '@server/lib/plugins/hooks' +import { VideoModel } from '@server/models/video/video' import { CategoryOverview, ChannelOverview, TagOverview, VideosOverview } from '../../../shared/models/overviews' import { buildNSFWFilter } from '../../helpers/express-utils' import { MEMOIZE_TTL, OVERVIEWS } from '../../initializers/constants' import { asyncMiddleware, optionalAuthenticate, videosOverviewValidator } from '../../middlewares' import { TagModel } from '../../models/video/tag' -import { VideoModel } from '../../models/video/video' +import { getServerActor } from '@server/models/application/application' const overviewsRouter = express.Router() @@ -108,18 +110,28 @@ async function getVideos ( res: express.Response, where: { videoChannelId?: number, tagsOneOf?: string[], categoryOneOf?: number[] } ) { - const query = Object.assign({ + const serverActor = await getServerActor() + + const query = await Hooks.wrapObject({ start: 0, count: 12, sort: '-createdAt', - includeLocalVideos: true, + displayOnlyForFollower: { + actorId: serverActor.id, + orLocalVideos: true + }, nsfw: buildNSFWFilter(res), user: res.locals.oauth ? res.locals.oauth.token.User : undefined, - withFiles: false, - countVideos: false - }, where) + countVideos: false, + + ...where + }, 'filter:api.overviews.videos.list.params') - const { data } = await VideoModel.listForApi(query) + const { data } = await Hooks.wrapPromiseFun( + VideoModel.listForApi, + query, + 'filter:api.overviews.videos.list.result' + ) return data.map(d => d.toFormattedJSON()) }