]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/models/request-interface.ts
Type models
[github/Chocobozzz/PeerTube.git] / server / models / request-interface.ts
1 import * as Sequelize from 'sequelize'
2
3 import { PodAttributes } from './pod-interface'
4
5 export namespace RequestMethods {
6 export type CountTotalRequests = (callback) => void
7 export type ListWithLimitAndRandom = (limitPods, limitRequestsPerPod, callback) => void
8 export type RemoveWithEmptyTo = (callback) => void
9 export type RemoveAll = (callback) => void
10 }
11
12 export interface RequestClass {
13 countTotalRequests: RequestMethods.CountTotalRequests
14 listWithLimitAndRandom: RequestMethods.ListWithLimitAndRandom
15 removeWithEmptyTo: RequestMethods.RemoveWithEmptyTo
16 removeAll: RequestMethods.RemoveAll
17 }
18
19 export interface RequestAttributes {
20 request: object
21 endpoint: string
22 }
23
24 export interface RequestInstance extends Sequelize.Instance<RequestAttributes> {
25 id: number
26 createdAt: Date
27 updatedAt: Date
28
29 setPods: Sequelize.HasManySetAssociationsMixin<PodAttributes, number>
30 }
31
32 export interface RequestModel extends RequestClass, Sequelize.Model<RequestInstance, RequestAttributes> {}