]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/models/request-to-pod.ts
Convert scripts to typescript
[github/Chocobozzz/PeerTube.git] / server / models / request-to-pod.ts
1 import * as Sequelize from 'sequelize'
2
3 import { addMethodsToModel } from './utils'
4 import {
5 RequestToPodClass,
6 RequestToPodInstance,
7 RequestToPodAttributes,
8
9 RequestToPodMethods
10 } from './request-to-pod-interface'
11
12 let RequestToPod: Sequelize.Model<RequestToPodInstance, RequestToPodAttributes>
13 let removeByRequestIdsAndPod: RequestToPodMethods.RemoveByRequestIdsAndPod
14
15 export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.DataTypes) {
16 RequestToPod = sequelize.define<RequestToPodInstance, RequestToPodAttributes>('RequestToPod', {}, {
17 indexes: [
18 {
19 fields: [ 'requestId' ]
20 },
21 {
22 fields: [ 'podId' ]
23 },
24 {
25 fields: [ 'requestId', 'podId' ],
26 unique: true
27 }
28 ]
29 })
30
31 const classMethods = [
32 removeByRequestIdsAndPod
33 ]
34 addMethodsToModel(RequestToPod, classMethods)
35
36 return RequestToPod
37 }
38
39 // ---------------------------------------------------------------------------
40
41 removeByRequestIdsAndPod = function (requestsIds: number[], podId: number, callback?: RequestToPodMethods.RemoveByRequestIdsAndPodCallback) {
42 if (!callback) callback = function () { /* empty */ }
43
44 const query = {
45 where: {
46 requestId: {
47 $in: requestsIds
48 },
49 podId: podId
50 }
51 }
52
53 RequestToPod.destroy(query).asCallback(callback)
54 }