Use mtf-module-db as submodule
This commit is contained in:
parent
d5d7f17339
commit
48fa5c8d3b
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "src/modules/db"]
|
||||||
|
path = src/modules/db
|
||||||
|
url = https://gitea.spilum.net/Spilum.Net/mtf-module-db
|
||||||
@ -1,5 +1,4 @@
|
|||||||
const models = require("../models");
|
const {db} = require('../modules/db');
|
||||||
const db = models.db;
|
|
||||||
const config = require("../config/auth.config");
|
const config = require("../config/auth.config");
|
||||||
const User = db.user;
|
const User = db.user;
|
||||||
const Role = db.role;
|
const Role = db.role;
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
const models = require("../models");
|
const {db} = require('../modules/db');
|
||||||
const db = models.db;
|
|
||||||
const {sequelize, Sequelize} = db;
|
const {sequelize, Sequelize} = db;
|
||||||
const {literal} = Sequelize;
|
const {literal} = Sequelize;
|
||||||
const Bill = db.bill;
|
const Bill = db.bill;
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
const models = require("../models");
|
const {db} = require('../modules/db');
|
||||||
const db = models.db;
|
|
||||||
const redis = models.redis;
|
|
||||||
const {sequelize, Sequelize} = db;
|
const {sequelize, Sequelize} = db;
|
||||||
const Intent = db.intent;
|
const Intent = db.intent;
|
||||||
const config = require("../config");
|
const config = require("../config");
|
||||||
|
|
||||||
|
const {redis} = require('../modules/redis');
|
||||||
|
|
||||||
// Get all intents
|
// Get all intents
|
||||||
exports.getAllIntents = async (req, res) => {
|
exports.getAllIntents = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
const jwt = require("jsonwebtoken");
|
const jwt = require("jsonwebtoken");
|
||||||
const config = require("../config/auth.config");
|
const config = require("../config/auth.config");
|
||||||
const db = require("../models");
|
const {db} = require('../modules/db');
|
||||||
const User = db.user;
|
const User = db.user;
|
||||||
|
|
||||||
verifyToken = (req, res, next) => {
|
verifyToken = (req, res, next) => {
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
const db = require('../models');
|
const {db} = require('../modules/db');
|
||||||
const ROLES = db.ROLES;
|
const ROLES = db.ROLES;
|
||||||
const User = db.user;
|
const User = db.user;
|
||||||
|
|
||||||
|
|||||||
@ -1,36 +0,0 @@
|
|||||||
module.exports = (sequelize, DataTypes) => {
|
|
||||||
const Bill = sequelize.define("bills", {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
primaryKey: true,
|
|
||||||
autoIncrement: true,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
amount: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
due: {
|
|
||||||
type: DataTypes.DATEONLY,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
type: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
allowNull: true
|
|
||||||
},
|
|
||||||
shared: {
|
|
||||||
type: DataTypes.BOOLEAN,
|
|
||||||
allowNull: false,
|
|
||||||
defaultValue: false
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
tableName: "bills",
|
|
||||||
timestamps: true
|
|
||||||
});
|
|
||||||
|
|
||||||
return Bill;
|
|
||||||
};
|
|
||||||
@ -1,72 +0,0 @@
|
|||||||
const config = require("../config");
|
|
||||||
const dbConfig = require("../config/db.config");
|
|
||||||
const redisConfig = require("../config/redis.config");
|
|
||||||
|
|
||||||
const Sequelize = require("sequelize");
|
|
||||||
const sequelize = new Sequelize(
|
|
||||||
dbConfig.DB,
|
|
||||||
dbConfig.USER,
|
|
||||||
dbConfig.PASSWORD,
|
|
||||||
{
|
|
||||||
host: dbConfig.HOST,
|
|
||||||
dialect: dbConfig.dialect,
|
|
||||||
port: dbConfig.PORT,
|
|
||||||
pool: {
|
|
||||||
max: dbConfig.pool.max,
|
|
||||||
min: dbConfig.pool.min,
|
|
||||||
acquire: dbConfig.pool.acquire,
|
|
||||||
idle: dbConfig.pool.idle
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
// SQL Connection
|
|
||||||
const db = {};
|
|
||||||
|
|
||||||
db.Sequelize = Sequelize;
|
|
||||||
db.sequelize = sequelize;
|
|
||||||
|
|
||||||
db.user = require('../models/user.model')(sequelize, Sequelize);
|
|
||||||
db.role = require('../models/role.model')(sequelize, Sequelize);
|
|
||||||
db.bill = require('../models/bill.model')(sequelize, Sequelize);
|
|
||||||
db.intent = require('../models/intent.model')(sequelize, Sequelize);
|
|
||||||
|
|
||||||
db.role.belongsToMany(db.user, {
|
|
||||||
through: "user_roles"
|
|
||||||
});
|
|
||||||
|
|
||||||
db.user.belongsToMany(db.role, {
|
|
||||||
through: "user_roles"
|
|
||||||
});
|
|
||||||
|
|
||||||
db.ROLES = ["user", "admin"];
|
|
||||||
|
|
||||||
// Redis Connection
|
|
||||||
const Redis = require('redis');
|
|
||||||
const redis = {};
|
|
||||||
|
|
||||||
redis.client = Redis.createClient({
|
|
||||||
url: `redis://default@${redisConfig.REDIS_HOST}:${redisConfig.REDIS_PORT}`
|
|
||||||
});
|
|
||||||
|
|
||||||
redis.ensureGroup = async (stream, group) => {
|
|
||||||
await redis.client.connect().catch(console.error);
|
|
||||||
|
|
||||||
try {
|
|
||||||
await redis.client.xGroupCreate(stream, group, "0", {MKSTREAM: true});
|
|
||||||
|
|
||||||
console.log(`Created consumer group: ${group} (${stream})`);
|
|
||||||
} catch (err) {
|
|
||||||
if (err.message.includes('BUSYGROUP')) {
|
|
||||||
console.log(`Consumer group already exists: ${group} (${stream})`);
|
|
||||||
} else {
|
|
||||||
console.error(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await redis.client.quit();
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
db,
|
|
||||||
redis
|
|
||||||
};
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
module.exports = (sequelize, DataTypes) => {
|
|
||||||
const Intent = sequelize.define("intents", {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
primaryKey: true,
|
|
||||||
autoIncrement: true,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
allowNull: false
|
|
||||||
},
|
|
||||||
examples: {
|
|
||||||
type: DataTypes.ARRAY(DataTypes.STRING),
|
|
||||||
allowNull: true
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
tableName: "intents",
|
|
||||||
timestamps: false
|
|
||||||
});
|
|
||||||
|
|
||||||
return Intent;
|
|
||||||
};
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
module.exports = (sequelize, DataTypes) => {
|
|
||||||
const Role = sequelize.define("roles", {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
primaryKey: true,
|
|
||||||
autoIncrement: true,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
allowNull: false
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
tableName: "roles",
|
|
||||||
timestamps: true
|
|
||||||
});
|
|
||||||
|
|
||||||
return Role;
|
|
||||||
}
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
module.exports = (sequelize, Sequelize) => {
|
|
||||||
const User = sequelize.define("users", {
|
|
||||||
username: {
|
|
||||||
type: Sequelize.STRING
|
|
||||||
},
|
|
||||||
email: {
|
|
||||||
type: Sequelize.STRING
|
|
||||||
},
|
|
||||||
password: {
|
|
||||||
type: Sequelize.STRING
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return User;
|
|
||||||
}
|
|
||||||
1
src/modules/db
Submodule
1
src/modules/db
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 22ba7b747cf16a9229a1f1f0e5223486736ba230
|
||||||
@ -8,17 +8,19 @@ const cors = require("cors");
|
|||||||
const helmet = require("helmet");
|
const helmet = require("helmet");
|
||||||
const rateLimit = require("express-rate-limit");
|
const rateLimit = require("express-rate-limit");
|
||||||
const morgan = require("morgan");
|
const morgan = require("morgan");
|
||||||
const models = require('./models');
|
|
||||||
const db = models.db;
|
const {db} = require('./modules/db');
|
||||||
const redis = models.redis;
|
|
||||||
const {sequelize, Sequelize} = db;
|
const {sequelize, Sequelize} = db;
|
||||||
const Role = db.role;
|
const Role = db.role;
|
||||||
|
|
||||||
|
const {redis} = require('./modules/redis');
|
||||||
|
|
||||||
const authConfig = require("./config/auth.config");
|
const authConfig = require("./config/auth.config");
|
||||||
const config = require("./config");
|
const config = require("./config");
|
||||||
|
|
||||||
const createApp = async () => {
|
const createApp = async () => {
|
||||||
await redis.ensureGroup("commands", `${config.DEVICE_ID}-cg`);
|
await redis.connect();
|
||||||
|
await redis.ensureGroup("commands", `${config.DEVICE_ID}`);
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user