From 8d29d4d3957ff490601ebbe45692484cc2392c73 Mon Sep 17 00:00:00 2001 From: b1ek Date: Wed, 22 Feb 2023 23:54:35 +1000 Subject: [PATCH] add types for linting --- models/article.js | 54 +++++++++++++++++++++++++++++++++++++++++++++ models/guestbook.js | 36 ++++++++++++++++-------------- models/index.js | 13 +++++++++++ models/user.js | 54 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 140 insertions(+), 17 deletions(-) create mode 100644 models/article.js create mode 100644 models/user.js diff --git a/models/article.js b/models/article.js new file mode 100644 index 0000000..70dd9af --- /dev/null +++ b/models/article.js @@ -0,0 +1,54 @@ +const { Model } = require('sequelize'); + +class Article extends Model { + +} + +let init = (sequelize, DataTypes) => { + let article = Article.init({ + id: { + type: DataTypes.BIGINT(11), + primaryKey: true, + autoIncrement: true, + allowNull: false + }, + title: { + type: DataTypes.TEXT, + allowNull: false + }, + shortText: { + type: DataTypes.TEXT, + allowNull: false + }, + body: { + type: DataTypes.TEXT, + allowNull: false + }, + submitted: { + type: DataTypes.BIGINT, + allowNull: false + }, + edited: { + type: DataTypes.BIGINT, + allowNull: false + }, + submitter: { + type: DataTypes.BIGINT, + allowNull: false + }, + gpgsign: { + type: DataTypes.TEXT, + allowNull: true + } + }, { + sequelize, + modelName: 'Article', + tableName: 'articles' + }) + article.class = Article; + + return article; +} + +init.class = Article; +module.exports = init; \ No newline at end of file diff --git a/models/guestbook.js b/models/guestbook.js index 39b581c..ecb1260 100644 --- a/models/guestbook.js +++ b/models/guestbook.js @@ -1,19 +1,18 @@ -'use strict'; -const { - Model -} = require('sequelize'); -module.exports = (sequelize, DataTypes) => { - class Guestbook extends Model { - /** - * Helper method for defining associations. - * This method is not a part of Sequelize lifecycle. - * The `models/index` file will call this method automatically. - */ - static associate(models) { - // define association here - } +const { Model } = require('sequelize'); + +class Guestbook extends Model { + /** + * Helper method for defining associations. + * This method is not a part of Sequelize lifecycle. + * The `models/index` file will call this method automatically. + */ + static associate(models) { + // define association here } - Guestbook.init({ +} + +const init = (sequelize, DataTypes) => { + let model = Guestbook.init({ id: { type: DataTypes.BIGINT(11), primaryKey: true, @@ -49,5 +48,8 @@ module.exports = (sequelize, DataTypes) => { modelName: 'Guestbook', tableName: 'guestbook' }); - return Guestbook; -}; \ No newline at end of file + return model; +}; + +init.class = Guestbook; +return init; \ No newline at end of file diff --git a/models/index.js b/models/index.js index b5f5eec..7ede145 100644 --- a/models/index.js +++ b/models/index.js @@ -9,6 +9,19 @@ const process = require('process'); const basename = path.basename(__filename); const env = process.env.NODE_ENV || 'production'; let config = require(__dirname + '/../config/config.json')[env]; + +class Models { + sequelize = Sequelize + Sequelize = Sequelize + + User = require('./user').class + Article = require('./article').class + Guestbook = require('./guestbook').class +} + +/** + * @type Models + */ const db = {}; const { diff --git a/models/user.js b/models/user.js new file mode 100644 index 0000000..c338cc5 --- /dev/null +++ b/models/user.js @@ -0,0 +1,54 @@ +const { Model } = require('sequelize'); + +class User extends Model { + +} + +/** + * + * @param {import('sequelize').Sequelize} sequelize + * @param {import('sequelize').DataTypes} DataTypes + */ +const init = (sequelize, DataTypes) => { + let user = User.init({ + id: { + type: DataTypes.BIGINT, + primaryKey: true, + autoIncrement: true, + allowNull: false + }, + login: { + type: DataTypes.TEXT, + allowNull: false + }, + pass: { + type: DataTypes.TEXT, + allowNull: false + }, + totp: { + type: DataTypes.TEXT, + allowNull: true + }, + totpRec: { + type: DataTypes.TEXT, + allowNull: true + }, + email: { + type: DataTypes.TEXT, + allowNull: false + }, + gpgkey: { + type: DataTypes.TEXT, + allowNull: false + } + }, { + sequelize, + tableName: 'users', + tableName: 'users' + }); + + return user; +} + +init.class = User; +module.exports = init; \ No newline at end of file