🚧 refactoring is ongoing

This commit is contained in:
Song
2021-01-17 10:49:19 +08:00
parent aa2635afcd
commit 22975603c6
20 changed files with 327 additions and 199 deletions
+24
View File
@@ -0,0 +1,24 @@
const User = require('./user');
const Message = require('./message');
const sequelize = require('../common/database');
Message.belongsTo(User);
(async () => {
await sequelize.sync({ alter: true });
console.log('Database initialized.');
const isNoAdminExisted =
(await User.findOne({ where: { isAdmin: true } })) === null;
if (isNoAdminExisted) {
console.log('No admin user existed! Creating one for you.');
await User.create({
username: 'admin',
password: '123456',
isAdmin: true,
prefix: 'admin',
});
}
})();
exports.User = User;
exports.Message = Message;
+21 -16
View File
@@ -1,19 +1,24 @@
const db = require("../utils/database").db;
const { v4: uuid } = require("uuid");
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../common/database');
class Message {
create(message) {
message.id = uuid();
return db("messages").insert(message);
}
class Message extends Model {}
getById(id) {
return db("messages").where("id", id);
}
Message.init(
{
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
title: DataTypes.STRING,
description: DataTypes.TEXT,
content: DataTypes.TEXT,
type: {
type: DataTypes.INTEGER,
defaultValue: 0,
},
},
{ sequelize }
);
deleteById(id) {
return db("messages").where("id", id).del();
}
}
module.exports.Message = new Message();
module.exports = Message;
+48
View File
@@ -0,0 +1,48 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../common/database');
class User extends Model {}
User.init(
{
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
username: {
type: DataTypes.STRING,
unique: true,
},
password: {
type: DataTypes.STRING,
allowNull: false,
},
accessToken: {
type: DataTypes.STRING,
defaultValue: '',
},
email: {
type: DataTypes.STRING,
},
prefix: {
type: DataTypes.STRING,
unique: true,
},
isAdmin: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
isBlocked: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
wechatAppId: DataTypes.STRING,
wechatAppSecret: DataTypes.STRING,
wechatTemplateId: DataTypes.STRING,
wechatOpenId: DataTypes.STRING,
},
{ sequelize }
);
module.exports = User;