Use mtf-module-db as submodule

This commit is contained in:
Apher 2026-07-17 04:38:01 +00:00
parent d5d7f17339
commit 48fa5c8d3b
13 changed files with 17 additions and 178 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "src/modules/db"]
path = src/modules/db
url = https://gitea.spilum.net/Spilum.Net/mtf-module-db

View File

@ -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;

View File

@ -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;

View File

@ -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 {

View File

@ -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) => {

View File

@ -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;

View File

@ -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;
};

View File

@ -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
};

View File

@ -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;
};

View File

@ -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;
}

View File

@ -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

@ -0,0 +1 @@
Subproject commit 22ba7b747cf16a9229a1f1f0e5223486736ba230

View File

@ -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();