X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fapplication%2Fapplication.ts;h=81320b9afeafae058c72947b2c3b1accca5b06b0;hb=4f0f2ab228d73dbec303914dd59b52f6cdaddf46;hp=0e9a1ebb3045c331b01eea8aef76af95b7100ef7;hpb=74889a71fe687dda74f2a687653122327807af36;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/application/application.ts b/server/models/application/application.ts index 0e9a1ebb3..81320b9af 100644 --- a/server/models/application/application.ts +++ b/server/models/application/application.ts @@ -1,57 +1,39 @@ -import * as Sequelize from 'sequelize' +import { AllowNull, Column, Default, DefaultScope, HasOne, IsInt, Model, Table } from 'sequelize-typescript' +import { AccountModel } from '../account/account' -import { addMethodsToModel } from '../utils' -import { - ApplicationClass, - ApplicationAttributes, - ApplicationInstance, - - ApplicationMethods -} from './application-interface' - -let Application: Sequelize.Model -let loadMigrationVersion: ApplicationMethods.LoadMigrationVersion -let updateMigrationVersion: ApplicationMethods.UpdateMigrationVersion - -export default function defineApplication (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.DataTypes) { - Application = sequelize.define('Application', +@DefaultScope(() => ({ + include: [ { - migrationVersion: { - type: DataTypes.INTEGER, - defaultValue: 0, - allowNull: false, - validate: { - isInt: true - } - } + model: AccountModel, + required: true } - ) - - const classMethods = [ loadMigrationVersion, updateMigrationVersion ] - addMethodsToModel(Application, classMethods) - - return Application -} - -// --------------------------------------------------------------------------- - -loadMigrationVersion = function (callback: ApplicationMethods.LoadMigrationVersionCallback) { - const query = { - attributes: [ 'migrationVersion' ] - } - - return Application.findOne(query).asCallback(function (err, data) { - const version = data ? data.migrationVersion : null - - return callback(err, version) + ] +})) +@Table({ + tableName: 'application', + timestamps: false +}) +export class ApplicationModel extends Model { + + @AllowNull(false) + @Default(0) + @IsInt + @Column + migrationVersion: number + + @HasOne(() => AccountModel, { + foreignKey: { + allowNull: true + }, + onDelete: 'cascade' }) -} + Account: AccountModel -updateMigrationVersion = function (newVersion: number, transaction: Sequelize.Transaction, callback: ApplicationMethods.UpdateMigrationVersionCallback) { - const options: Sequelize.UpdateOptions = { - where: {}, - transaction: transaction + static countTotal () { + return ApplicationModel.count() } - return Application.update({ migrationVersion: newVersion }, options).asCallback(callback) + static load () { + return ApplicationModel.findOne() + } }