]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/models/request-video-event-interface.ts
Type functions
[github/Chocobozzz/PeerTube.git] / server / models / request-video-event-interface.ts
index a31c7108f1e6246da7a7be2b5149a69130031a23..ad576a2b1cef869526bccc92f214c02966abe72f 100644 (file)
@@ -1,10 +1,30 @@
 import * as Sequelize from 'sequelize'
 
+import { VideoInstance } from './video-interface'
+import { PodInstance } from './pod-interface'
+
+export type RequestsVideoEventGrouped = {
+  [ podId: number ]: {
+    id: number
+    type: string
+    count: number
+    video: VideoInstance
+    pod: PodInstance
+  }[]
+}
+
 export namespace RequestVideoEventMethods {
-  export type CountTotalRequests = (callback) => void
-  export type ListWithLimitAndRandom = (limitPods, limitRequestsPerPod, callback) => void
-  export type RemoveByRequestIdsAndPod = (ids, podId, callback) => void
-  export type RemoveAll = (callback) => void
+  export type CountTotalRequestsCallback = (err: Error, total: number) => void
+  export type CountTotalRequests = (callback: CountTotalRequestsCallback) => void
+
+  export type ListWithLimitAndRandomCallback = (err: Error, requestsGrouped?: RequestsVideoEventGrouped) => void
+  export type ListWithLimitAndRandom = (limitPods: number, limitRequestsPerPod: number, callback: ListWithLimitAndRandomCallback) => void
+
+  export type RemoveByRequestIdsAndPodCallback = () => void
+  export type RemoveByRequestIdsAndPod = (ids: number[], podId: number, callback: RemoveByRequestIdsAndPodCallback) => void
+
+  export type RemoveAllCallback = () => void
+  export type RemoveAll = (callback: RemoveAllCallback) => void
 }
 
 export interface RequestVideoEventClass {
@@ -19,8 +39,10 @@ export interface RequestVideoEventAttributes {
   count: number
 }
 
-export interface RequestVideoEventInstance extends Sequelize.Instance<RequestVideoEventAttributes> {
+export interface RequestVideoEventInstance extends RequestVideoEventClass, RequestVideoEventAttributes, Sequelize.Instance<RequestVideoEventAttributes> {
   id: number
+
+  Video: VideoInstance
 }
 
 export interface RequestVideoEventModel extends RequestVideoEventClass, Sequelize.Model<RequestVideoEventInstance, RequestVideoEventAttributes> {}