]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/models/video/video-blacklist.ts
Fix error logging
[github/Chocobozzz/PeerTube.git] / server / models / video / video-blacklist.ts
1 import * as Sequelize from 'sequelize'
2
3 import { addMethodsToModel, getSort } from '../utils'
4 import {
5 BlacklistedVideoInstance,
6 BlacklistedVideoAttributes,
7
8 BlacklistedVideoMethods
9 } from './video-blacklist-interface'
10
11 let BlacklistedVideo: Sequelize.Model<BlacklistedVideoInstance, BlacklistedVideoAttributes>
12 let toFormatedJSON: BlacklistedVideoMethods.ToFormatedJSON
13 let countTotal: BlacklistedVideoMethods.CountTotal
14 let list: BlacklistedVideoMethods.List
15 let listForApi: BlacklistedVideoMethods.ListForApi
16 let loadById: BlacklistedVideoMethods.LoadById
17 let loadByVideoId: BlacklistedVideoMethods.LoadByVideoId
18
19 export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.DataTypes) {
20 BlacklistedVideo = sequelize.define<BlacklistedVideoInstance, BlacklistedVideoAttributes>('BlacklistedVideo',
21 {},
22 {
23 indexes: [
24 {
25 fields: [ 'videoId' ],
26 unique: true
27 }
28 ]
29 }
30 )
31
32 const classMethods = [
33 associate,
34
35 countTotal,
36 list,
37 listForApi,
38 loadById,
39 loadByVideoId
40 ]
41 const instanceMethods = [
42 toFormatedJSON
43 ]
44 addMethodsToModel(BlacklistedVideo, classMethods, instanceMethods)
45
46 return BlacklistedVideo
47 }
48
49 // ------------------------------ METHODS ------------------------------
50
51 toFormatedJSON = function (this: BlacklistedVideoInstance) {
52 return {
53 id: this.id,
54 videoId: this.videoId,
55 createdAt: this.createdAt
56 }
57 }
58
59 // ------------------------------ STATICS ------------------------------
60
61 function associate (models) {
62 BlacklistedVideo.belongsTo(models.Video, {
63 foreignKey: 'videoId',
64 onDelete: 'cascade'
65 })
66 }
67
68 countTotal = function () {
69 return BlacklistedVideo.count()
70 }
71
72 list = function () {
73 return BlacklistedVideo.findAll()
74 }
75
76 listForApi = function (start: number, count: number, sort: string) {
77 const query = {
78 offset: start,
79 limit: count,
80 order: [ getSort(sort) ]
81 }
82
83 return BlacklistedVideo.findAndCountAll(query).then(({ rows, count }) => {
84 return {
85 data: rows,
86 total: count
87 }
88 })
89 }
90
91 loadById = function (id: number) {
92 return BlacklistedVideo.findById(id)
93 }
94
95 loadByVideoId = function (id: string) {
96 const query = {
97 where: {
98 videoId: id
99 }
100 }
101
102 return BlacklistedVideo.findOne(query)
103 }