X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fvideo-blacklist.ts;h=36d2a30fa8585b5fb01f2b1e2a85b218f050b2cb;hb=e234debc4d62e1f58b34f8af5a6139074fb7724d;hp=b4df6cd6a3707d15bc026bc962cd82c6e68f3441;hpb=5c5e587307a27e173333789b5b5167d35f468b01;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video-blacklist.ts b/server/models/video/video-blacklist.ts index b4df6cd6a..36d2a30fa 100644 --- a/server/models/video/video-blacklist.ts +++ b/server/models/video/video-blacklist.ts @@ -1,5 +1,5 @@ import { AllowNull, BelongsTo, Column, CreatedAt, DataType, Default, ForeignKey, Is, Model, Table, UpdatedAt } from 'sequelize-typescript' -import { getSortOnModel, SortType, throwIfNotValid } from '../utils' +import { getBlacklistSort, SortType, throwIfNotValid, searchAttribute } from '../utils' import { VideoModel } from './video' import { ScopeNames as VideoChannelScopeNames, SummaryOptions, VideoChannelModel } from './video-channel' import { isVideoBlacklistReasonValid, isVideoBlacklistTypeValid } from '../../helpers/custom-validators/video-blacklist' @@ -8,7 +8,7 @@ import { CONSTRAINTS_FIELDS } from '../../initializers/constants' import { FindOptions } from 'sequelize' import { ThumbnailModel } from './thumbnail' import * as Bluebird from 'bluebird' -import { MVideoBlacklist, MVideoBlacklistFormattable } from '@server/typings/models' +import { MVideoBlacklist, MVideoBlacklistFormattable } from '@server/types/models' @Table({ tableName: 'videoBlacklist', @@ -54,23 +54,31 @@ export class VideoBlacklistModel extends Model { }) Video: VideoModel - static listForApi (start: number, count: number, sort: SortType, type?: VideoBlacklistType) { + static listForApi (parameters: { + start: number + count: number + sort: SortType + search?: string + type?: VideoBlacklistType + }) { + const { start, count, sort, search, type } = parameters + function buildBaseQuery (): FindOptions { return { offset: start, limit: count, - order: getSortOnModel(sort.sortModel, sort.sortValue) + order: getBlacklistSort(sort.sortModel, sort.sortValue) } } const countQuery = buildBaseQuery() const findQuery = buildBaseQuery() - findQuery.subQuery = false findQuery.include = [ { model: VideoModel, required: true, + where: searchAttribute(search, 'name'), include: [ { model: VideoChannelModel.scope({ method: [ VideoChannelScopeNames.SUMMARY, { withAccount: true } as SummaryOptions ] }),