]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/models/application/application.ts
Fetch outbox to grab old activities
[github/Chocobozzz/PeerTube.git] / server / models / application / application.ts
CommitLineData
e02643f3
C
1import * as Sequelize from 'sequelize'
2
74889a71 3import { addMethodsToModel } from '../utils'
e02643f3 4import {
e02643f3
C
5 ApplicationAttributes,
6 ApplicationInstance,
7
8 ApplicationMethods
9} from './application-interface'
10
11let Application: Sequelize.Model<ApplicationInstance, ApplicationAttributes>
12let loadMigrationVersion: ApplicationMethods.LoadMigrationVersion
13let updateMigrationVersion: ApplicationMethods.UpdateMigrationVersion
350e31d6 14let countTotal: ApplicationMethods.CountTotal
e02643f3 15
127944aa 16export default function defineApplication (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.DataTypes) {
e02643f3 17 Application = sequelize.define<ApplicationInstance, ApplicationAttributes>('Application',
feb4bdfd 18 {
b769007f 19 migrationVersion: {
feb4bdfd 20 type: DataTypes.INTEGER,
67bf9b96
C
21 defaultValue: 0,
22 allowNull: false,
23 validate: {
24 isInt: true
25 }
feb4bdfd 26 }
feb4bdfd
C
27 }
28 )
29
350e31d6
C
30 const classMethods = [
31 countTotal,
32 loadMigrationVersion,
33 updateMigrationVersion
34 ]
e02643f3
C
35 addMethodsToModel(Application, classMethods)
36
feb4bdfd
C
37 return Application
38}
00d6b0dd
C
39
40// ---------------------------------------------------------------------------
41
350e31d6
C
42countTotal = function () {
43 return this.count()
44}
45
6fcd19ba 46loadMigrationVersion = function () {
feb4bdfd 47 const query = {
b769007f 48 attributes: [ 'migrationVersion' ]
00d6b0dd 49 }
00d6b0dd 50
6fcd19ba 51 return Application.findOne(query).then(data => data ? data.migrationVersion : null)
00d6b0dd
C
52}
53
6fcd19ba 54updateMigrationVersion = function (newVersion: number, transaction: Sequelize.Transaction) {
e02643f3 55 const options: Sequelize.UpdateOptions = {
69818c93
C
56 where: {},
57 transaction: transaction
b769007f
C
58 }
59
6fcd19ba 60 return Application.update({ migrationVersion: newVersion }, options)
00d6b0dd 61}