]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Add this context to instance model functions
authorChocobozzz <florian.bigard@gmail.com>
Fri, 16 Jun 2017 07:54:59 +0000 (09:54 +0200)
committerChocobozzz <florian.bigard@gmail.com>
Fri, 16 Jun 2017 07:54:59 +0000 (09:54 +0200)
server/models/pod/pod-interface.ts
server/models/pod/pod.ts
server/models/user/user-interface.ts
server/models/user/user.ts
server/models/video/video-abuse-interface.ts
server/models/video/video-abuse.ts
server/models/video/video-blacklist-interface.ts
server/models/video/video-blacklist.ts
server/models/video/video-interface.ts
server/models/video/video.ts
shared/models/video-blacklist.model.ts

index 01ccda64cc7b73f0cbf6d0cc0c5f6626795e8457..d88847c459ce7565e409c44c43ab741eba7740bd 100644 (file)
@@ -4,7 +4,7 @@ import * as Sequelize from 'sequelize'
 import { Pod as FormatedPod } from '../../../shared/models/pod.model'
 
 export namespace PodMethods {
-  export type ToFormatedJSON = () => FormatedPod
+  export type ToFormatedJSON = (this: PodInstance) => FormatedPod
 
   export type CountAllCallback = (err: Error, total: number) => void
   export type CountAll = (callback) => void
index 4c6e6302498f7db6ac26ea2abf4ee6524280e407..4fe7fda1c2352c1f45f2ec16251ca1f7efa9f712 100644 (file)
@@ -96,12 +96,12 @@ export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.Da
 
 // ------------------------------ METHODS ------------------------------
 
-toFormatedJSON = function () {
+toFormatedJSON = function (this: PodInstance) {
   const json = {
     id: this.id,
     host: this.host,
     email: this.email,
-    score: this.score,
+    score: this.score as number,
     createdAt: this.createdAt
   }
 
index 1ba4bd800d5e6bd44c0280ecea4b63cddacdb948..6726e8ab5f41d6940306c5a747702af48a255414 100644 (file)
@@ -6,10 +6,10 @@ import { User as FormatedUser } from '../../../shared/models/user.model'
 
 export namespace UserMethods {
   export type IsPasswordMatchCallback = (err: Error, same: boolean) => void
-  export type IsPasswordMatch = (password: string, callback: IsPasswordMatchCallback) => void
+  export type IsPasswordMatch = (this: UserInstance, password: string, callback: IsPasswordMatchCallback) => void
 
-  export type ToFormatedJSON = () => FormatedUser
-  export type IsAdmin = () => boolean
+  export type ToFormatedJSON = (this: UserInstance) => FormatedUser
+  export type IsAdmin = (this: UserInstance) => boolean
 
   export type CountTotalCallback = (err: Error, total: number) => void
   export type CountTotal = (callback: CountTotalCallback) => void
index d78f5f845040876ebe643c483a22d70bf043bff3..6b2410259cdcfd0bac3cf74c5341b3b78f5989ef 100644 (file)
@@ -131,7 +131,7 @@ function beforeCreateOrUpdate (user: UserInstance) {
 
 // ------------------------------ METHODS ------------------------------
 
-isPasswordMatch = function (password: string, callback: UserMethods.IsPasswordMatchCallback) {
+isPasswordMatch = function (this: UserInstance, password: string, callback: UserMethods.IsPasswordMatchCallback) {
   return comparePassword(password, this.password, callback)
 }
 
@@ -146,7 +146,7 @@ toFormatedJSON = function (this: UserInstance) {
   }
 }
 
-isAdmin = function () {
+isAdmin = function (this: UserInstance) {
   return this.role === USER_ROLES.ADMIN
 }
 
index 4b7f2a2ec2820e620bdaa4ae672c119dbeb9e0ed..f3e32f79c55f41e5d07d7447ac58e989eeebc197 100644 (file)
@@ -1,5 +1,7 @@
 import * as Sequelize from 'sequelize'
 
+import { PodInstance } from '../pod'
+
 // Don't use barrel, import just what we need
 import { VideoAbuse as FormatedVideoAbuse } from '../../../shared/models/video-abuse.model'
 
@@ -17,12 +19,15 @@ export interface VideoAbuseClass {
 export interface VideoAbuseAttributes {
   reporterUsername: string
   reason: string
+  videoId: string
 }
 
 export interface VideoAbuseInstance extends VideoAbuseClass, VideoAbuseAttributes, Sequelize.Instance<VideoAbuseAttributes> {
   id: number
   createdAt: Date
   updatedAt: Date
+
+  Pod: PodInstance
 }
 
 export interface VideoAbuseModel extends VideoAbuseClass, Sequelize.Model<VideoAbuseInstance, VideoAbuseAttributes> {}
index e0e0bcfe6d66329e7b82d05764cf886bb7f544f7..f5b4debe6964ad1a2b01e21031532692e23f2719 100644 (file)
@@ -66,7 +66,7 @@ export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.Da
 
 // ------------------------------ METHODS ------------------------------
 
-function toFormatedJSON () {
+function toFormatedJSON (this: VideoAbuseInstance) {
   let reporterPodHost
 
   if (this.Pod) {
index 37f579422f193e0a98405a63b067089cb06009dc..c34e7fb0926cb510ff26c24e3d23132bb746e7e3 100644 (file)
@@ -4,7 +4,7 @@ import * as Sequelize from 'sequelize'
 import { BlacklistedVideo as FormatedBlacklistedVideo } from '../../../shared/models/video-blacklist.model'
 
 export namespace BlacklistedVideoMethods {
-  export type ToFormatedJSON = () => FormatedBlacklistedVideo
+  export type ToFormatedJSON = (this: BlacklistedVideoInstance) => FormatedBlacklistedVideo
 
   export type CountTotalCallback = (err: Error, total: number) => void
   export type CountTotal = (callback: CountTotalCallback) => void
@@ -32,6 +32,7 @@ export interface BlacklistedVideoClass {
 }
 
 export interface BlacklistedVideoAttributes {
+  videoId: string
 }
 
 export interface BlacklistedVideoInstance extends BlacklistedVideoClass, BlacklistedVideoAttributes, Sequelize.Instance<BlacklistedVideoAttributes> {
index f4479986cf13c3ff8e64fe5b8f58e64eb115b9a8..3576c96f6c108e2123ef9fc1f9900c508a483540 100644 (file)
@@ -49,7 +49,7 @@ export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.Da
 
 // ------------------------------ METHODS ------------------------------
 
-toFormatedJSON = function () {
+toFormatedJSON = function (this: BlacklistedVideoInstance) {
   return {
     id: this.id,
     videoId: this.videoId,
index 71b9b0a69615d01bcec2567cb0e2fd944dc15dc8..5fefc2bb168e5db12148aaf062298b0b514a61c3 100644 (file)
@@ -48,21 +48,21 @@ export type FormatedUpdateRemoteVideo = {
 }
 
 export namespace VideoMethods {
-  export type GenerateMagnetUri = () => string
-  export type GetVideoFilename = () => string
-  export type GetThumbnailName = () => string
-  export type GetPreviewName = () => string
-  export type GetTorrentName = () => string
-  export type IsOwned = () => boolean
-  export type ToFormatedJSON = () => FormatedVideo
+  export type GenerateMagnetUri = (this: VideoInstance) => string
+  export type GetVideoFilename = (this: VideoInstance) => string
+  export type GetThumbnailName = (this: VideoInstance) => string
+  export type GetPreviewName = (this: VideoInstance) => string
+  export type GetTorrentName = (this: VideoInstance) => string
+  export type IsOwned = (this: VideoInstance) => boolean
+  export type ToFormatedJSON = (this: VideoInstance) => FormatedVideo
 
   export type ToAddRemoteJSONCallback = (err: Error, videoFormated?: FormatedAddRemoteVideo) => void
-  export type ToAddRemoteJSON = (callback: ToAddRemoteJSONCallback) => void
+  export type ToAddRemoteJSON = (this: VideoInstance, callback: ToAddRemoteJSONCallback) => void
 
-  export type ToUpdateRemoteJSON = () => FormatedUpdateRemoteVideo
+  export type ToUpdateRemoteJSON = (this: VideoInstance) => FormatedUpdateRemoteVideo
 
   export type TranscodeVideofileCallback = (err: Error) => void
-  export type TranscodeVideofile = (callback: TranscodeVideofileCallback) => void
+  export type TranscodeVideofile = (this: VideoInstance, callback: TranscodeVideofileCallback) => void
 
   export type GenerateThumbnailFromDataCallback = (err: Error, thumbnailName?: string) => void
   export type GenerateThumbnailFromData = (video: VideoInstance, thumbnailData: string, callback: GenerateThumbnailFromDataCallback) => void
index 866b380cc30b3cdf2590163424fdf0d46978e8bd..e66ebee2ddf2b1605bd9617d6754d1deb96daf6e 100644 (file)
@@ -247,7 +247,8 @@ export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.Da
     loadByHostAndRemoteId,
     loadAndPopulateAuthor,
     loadAndPopulateAuthorAndPodAndTags,
-    searchAndPopulateAuthorAndPodAndTags
+    searchAndPopulateAuthorAndPodAndTags,
+    removeFromBlacklist
   ]
   const instanceMethods = [
     generateMagnetUri,
@@ -260,7 +261,6 @@ export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.Da
     toAddRemoteJSON,
     toUpdateRemoteJSON,
     transcodeVideofile,
-    removeFromBlacklist
   ]
   addMethodsToModel(Video, classMethods, instanceMethods)
 
@@ -389,7 +389,7 @@ function associate (models) {
   })
 }
 
-generateMagnetUri = function () {
+generateMagnetUri = function (this: VideoInstance) {
   let baseUrlHttp
   let baseUrlWs
 
@@ -416,18 +416,18 @@ generateMagnetUri = function () {
   return magnetUtil.encode(magnetHash)
 }
 
-getVideoFilename = function () {
+getVideoFilename = function (this: VideoInstance) {
   if (this.isOwned()) return this.id + this.extname
 
   return this.remoteId + this.extname
 }
 
-getThumbnailName = function () {
+getThumbnailName = function (this: VideoInstance) {
   // We always have a copy of the thumbnail
   return this.id + '.jpg'
 }
 
-getPreviewName = function () {
+getPreviewName = function (this: VideoInstance) {
   const extension = '.jpg'
 
   if (this.isOwned()) return this.id + extension
@@ -435,7 +435,7 @@ getPreviewName = function () {
   return this.remoteId + extension
 }
 
-getTorrentName = function () {
+getTorrentName = function (this: VideoInstance) {
   const extension = '.torrent'
 
   if (this.isOwned()) return this.id + extension
@@ -443,7 +443,7 @@ getTorrentName = function () {
   return this.remoteId + extension
 }
 
-isOwned = function () {
+isOwned = function (this: VideoInstance) {
   return this.remoteId === null
 }
 
@@ -497,7 +497,7 @@ toFormatedJSON = function (this: VideoInstance) {
   return json
 }
 
-toAddRemoteJSON = function (callback: VideoMethods.ToAddRemoteJSONCallback) {
+toAddRemoteJSON = function (this: VideoInstance, callback: VideoMethods.ToAddRemoteJSONCallback) {
   // Get thumbnail data to send to the other pod
   const thumbnailPath = join(CONFIG.STORAGE.THUMBNAILS_DIR, this.getThumbnailName())
   fs.readFile(thumbnailPath, (err, thumbnailData) => {
@@ -531,7 +531,7 @@ toAddRemoteJSON = function (callback: VideoMethods.ToAddRemoteJSONCallback) {
   })
 }
 
-toUpdateRemoteJSON = function () {
+toUpdateRemoteJSON = function (this: VideoInstance) {
   const json = {
     name: this.name,
     category: this.category,
@@ -555,7 +555,7 @@ toUpdateRemoteJSON = function () {
   return json
 }
 
-transcodeVideofile = function (finalCallback: VideoMethods.TranscodeVideofileCallback) {
+transcodeVideofile = function (this: VideoInstance, finalCallback: VideoMethods.TranscodeVideofileCallback) {
   const video = this
 
   const videosDirectory = CONFIG.STORAGE.VIDEOS_DIR
index 6086250ac3ccfc906f810d15a56bee042402f1e0..f894bb06523ffc0ec8aab0f4abc096aaec700bca 100644 (file)
@@ -1,5 +1,5 @@
 export interface BlacklistedVideo {
   id: number
-  videoId: number
+  videoId: string
   createdAt: Date
 }