From 74889a71fe687dda74f2a687653122327807af36 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 16 Jun 2017 09:45:46 +0200 Subject: Reorganize model files --- server/models/application/application.ts | 57 ++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 server/models/application/application.ts (limited to 'server/models/application/application.ts') diff --git a/server/models/application/application.ts b/server/models/application/application.ts new file mode 100644 index 000000000..0e9a1ebb3 --- /dev/null +++ b/server/models/application/application.ts @@ -0,0 +1,57 @@ +import * as Sequelize from 'sequelize' + +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', + { + migrationVersion: { + type: DataTypes.INTEGER, + defaultValue: 0, + allowNull: false, + validate: { + isInt: 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) + }) +} + +updateMigrationVersion = function (newVersion: number, transaction: Sequelize.Transaction, callback: ApplicationMethods.UpdateMigrationVersionCallback) { + const options: Sequelize.UpdateOptions = { + where: {}, + transaction: transaction + } + + return Application.update({ migrationVersion: newVersion }, options).asCallback(callback) +} -- cgit v1.2.3