X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fvideo-blacklist.ts;h=1c279b1baefdb6eaa9edbc4313b5ecf2377b3ff0;hb=608624252466acf9f1d9ee1c1170bd4fe4d18d18;hp=3576c96f6c108e2123ef9fc1f9900c508a483540;hpb=70c065d64c330196d371941d9294a55da6e3aa37;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video-blacklist.ts b/server/models/video/video-blacklist.ts index 3576c96f6..1c279b1ba 100644 --- a/server/models/video/video-blacklist.ts +++ b/server/models/video/video-blacklist.ts @@ -1,8 +1,9 @@ import * as Sequelize from 'sequelize' -import { addMethodsToModel, getSort } from '../utils' +import { SortType } from '../../helpers' +import { addMethodsToModel, getSortOnModel } from '../utils' +import { VideoInstance } from './video-interface' import { - BlacklistedVideoClass, BlacklistedVideoInstance, BlacklistedVideoAttributes, @@ -10,7 +11,7 @@ import { } from './video-blacklist-interface' let BlacklistedVideo: Sequelize.Model -let toFormatedJSON: BlacklistedVideoMethods.ToFormatedJSON +let toFormattedJSON: BlacklistedVideoMethods.ToFormattedJSON let countTotal: BlacklistedVideoMethods.CountTotal let list: BlacklistedVideoMethods.List let listForApi: BlacklistedVideoMethods.ListForApi @@ -40,7 +41,7 @@ export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.Da loadByVideoId ] const instanceMethods = [ - toFormatedJSON + toFormattedJSON ] addMethodsToModel(BlacklistedVideo, classMethods, instanceMethods) @@ -49,11 +50,24 @@ export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.Da // ------------------------------ METHODS ------------------------------ -toFormatedJSON = function (this: BlacklistedVideoInstance) { +toFormattedJSON = function (this: BlacklistedVideoInstance) { + let video: VideoInstance + + video = this.Video + return { id: this.id, videoId: this.videoId, - createdAt: this.createdAt + createdAt: this.createdAt, + updatedAt: this.updatedAt, + name: video.name, + uuid: video.uuid, + description: video.description, + duration: video.duration, + views: video.views, + likes: video.likes, + dislikes: video.dislikes, + nsfw: video.nsfw } } @@ -61,43 +75,48 @@ toFormatedJSON = function (this: BlacklistedVideoInstance) { function associate (models) { BlacklistedVideo.belongsTo(models.Video, { - foreignKey: 'videoId', - onDelete: 'cascade' + foreignKey: { + name: 'videoId', + allowNull: false + }, + onDelete: 'CASCADE' }) } -countTotal = function (callback: BlacklistedVideoMethods.CountTotalCallback) { - return BlacklistedVideo.count().asCallback(callback) +countTotal = function () { + return BlacklistedVideo.count() } -list = function (callback: BlacklistedVideoMethods.ListCallback) { - return BlacklistedVideo.findAll().asCallback(callback) +list = function () { + return BlacklistedVideo.findAll() } -listForApi = function (start: number, count: number, sort: string, callback: BlacklistedVideoMethods.ListForApiCallback) { +listForApi = function (start: number, count: number, sort: SortType) { const query = { offset: start, limit: count, - order: [ getSort(sort) ] + order: [ getSortOnModel(sort.sortModel, sort.sortValue) ], + include: [ { model: BlacklistedVideo['sequelize'].models.Video } ] } - return BlacklistedVideo.findAndCountAll(query).asCallback(function (err, result) { - if (err) return callback(err) - - return callback(null, result.rows, result.count) + return BlacklistedVideo.findAndCountAll(query).then(({ rows, count }) => { + return { + data: rows, + total: count + } }) } -loadById = function (id: number, callback: BlacklistedVideoMethods.LoadByIdCallback) { - return BlacklistedVideo.findById(id).asCallback(callback) +loadById = function (id: number) { + return BlacklistedVideo.findById(id) } -loadByVideoId = function (id: string, callback: BlacklistedVideoMethods.LoadByIdCallback) { +loadByVideoId = function (id: number) { const query = { where: { videoId: id } } - return BlacklistedVideo.find(query).asCallback(callback) + return BlacklistedVideo.findOne(query) }