X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fapplication%2Fapplication.ts;h=81320b9afeafae058c72947b2c3b1accca5b06b0;hb=4f0f2ab228d73dbec303914dd59b52f6cdaddf46;hp=8ba40a8951afec013bc579fc3175d8b4af347c5b;hpb=350e31d6b64e4973dfa5e9f7b46841cb09aeb1ad;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/application/application.ts b/server/models/application/application.ts index 8ba40a895..81320b9af 100644 --- a/server/models/application/application.ts +++ b/server/models/application/application.ts @@ -1,61 +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 { - ApplicationAttributes, - ApplicationInstance, - - ApplicationMethods -} from './application-interface' - -let Application: Sequelize.Model -let loadMigrationVersion: ApplicationMethods.LoadMigrationVersion -let updateMigrationVersion: ApplicationMethods.UpdateMigrationVersion -let countTotal: ApplicationMethods.CountTotal - -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 = [ - countTotal, - loadMigrationVersion, - updateMigrationVersion ] - addMethodsToModel(Application, classMethods) - - return Application -} - -// --------------------------------------------------------------------------- - -countTotal = function () { - return this.count() -} - -loadMigrationVersion = function () { - const query = { - attributes: [ 'migrationVersion' ] +})) +@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 + + static countTotal () { + return ApplicationModel.count() } - return Application.findOne(query).then(data => data ? data.migrationVersion : null) -} - -updateMigrationVersion = function (newVersion: number, transaction: Sequelize.Transaction) { - const options: Sequelize.UpdateOptions = { - where: {}, - transaction: transaction + static load () { + return ApplicationModel.findOne() } - - return Application.update({ migrationVersion: newVersion }, options) }