X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Foverviews.ts;h=34585e557f775e9ac97ee03065a3fe9a3eb5a816;hb=4e56f0fff12ab9840574e7a27277fc78b195b3e2;hp=fb31932aa09d9df255cc2819e57198282b8813bc;hpb=610d0be13b3d01f653ef269271dd667a57c85ef2;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/overviews.ts b/server/controllers/api/overviews.ts index fb31932aa..34585e557 100644 --- a/server/controllers/api/overviews.ts +++ b/server/controllers/api/overviews.ts @@ -1,12 +1,14 @@ -import * as express from 'express' +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 { VideoModel } from '../../models/video/video' +import { MEMOIZE_TTL, OVERVIEWS } from '../../initializers/constants' import { asyncMiddleware, optionalAuthenticate, videosOverviewValidator } from '../../middlewares' import { TagModel } from '../../models/video/tag' -import { CategoryOverview, ChannelOverview, TagOverview, VideosOverview } from '../../../shared/models/overviews' -import { MEMOIZE_TTL, OVERVIEWS } from '../../initializers/constants' -import * as memoizee from 'memoizee' -import { logger } from '@server/helpers/logger' +import { getServerActor } from '@server/models/application/application' const overviewsRouter = express.Router() @@ -108,17 +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), - withFiles: false, - countVideos: false - }, where) + user: res.locals.oauth ? res.locals.oauth.token.User : undefined, + 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()) }