mirror of
https://github.com/cheveguerra/whaticket-community.git
synced 2026-04-18 03:39:29 +00:00
feat: added settings api on beackend
This commit is contained in:
@@ -11,12 +11,7 @@ const wBot = require("./libs/wbot");
|
||||
const wbotMessageListener = require("./services/wbotMessageListener");
|
||||
const wbotMonitor = require("./services/wbotMonitor");
|
||||
|
||||
const MessagesRoutes = require("./routes/messages");
|
||||
const ContactsRoutes = require("./routes/contacts");
|
||||
const AuthRoutes = require("./routes/auth");
|
||||
const TicketsRoutes = require("./routes/tickets");
|
||||
const WhatsRoutes = require("./routes/whatsapp");
|
||||
const UsersRoutes = require("./routes/users");
|
||||
const Router = require("./router");
|
||||
|
||||
const app = express();
|
||||
|
||||
@@ -40,13 +35,7 @@ app.use(cors());
|
||||
app.use(express.json());
|
||||
app.use(multer({ storage: fileStorage }).single("media"));
|
||||
app.use("/public", express.static(path.join(__dirname, "..", "public")));
|
||||
|
||||
app.use("/auth", AuthRoutes);
|
||||
app.use(ContactsRoutes);
|
||||
app.use(TicketsRoutes);
|
||||
app.use(MessagesRoutes);
|
||||
app.use(WhatsRoutes);
|
||||
app.use(UsersRoutes);
|
||||
app.use(Router);
|
||||
|
||||
const io = require("./libs/socket").init(server);
|
||||
io.on("connection", socket => {
|
||||
|
||||
@@ -12,4 +12,5 @@ module.exports = {
|
||||
username: process.env.DB_USER,
|
||||
password: process.env.DB_PASS,
|
||||
logging: false,
|
||||
seederStorage: "sequelize",
|
||||
};
|
||||
|
||||
23
backend/src/controllers/SettingController.js
Normal file
23
backend/src/controllers/SettingController.js
Normal file
@@ -0,0 +1,23 @@
|
||||
const Sequelize = require("sequelize");
|
||||
|
||||
const Setting = require("../models/Setting");
|
||||
|
||||
exports.index = async (req, res) => {
|
||||
const settings = await Setting.findAll();
|
||||
|
||||
return res.status(200).json(settings);
|
||||
};
|
||||
|
||||
exports.update = async (req, res) => {
|
||||
const { settingKey } = req.params;
|
||||
|
||||
const setting = await Setting.findByPk(settingKey);
|
||||
|
||||
if (!setting) {
|
||||
return res.status(400).json({ error: "No setting found with this ID" });
|
||||
}
|
||||
|
||||
await setting.update(req.body);
|
||||
|
||||
return res.status(200).json(setting);
|
||||
};
|
||||
@@ -7,8 +7,17 @@ const Ticket = require("../models/Ticket");
|
||||
const Message = require("../models/Message");
|
||||
const Whatsapp = require("../models/Whatsapp");
|
||||
const ContactCustomField = require("../models/ContactCustomField");
|
||||
const Setting = require("../models/Setting");
|
||||
|
||||
const models = [User, Contact, Ticket, Message, Whatsapp, ContactCustomField];
|
||||
const models = [
|
||||
User,
|
||||
Contact,
|
||||
Ticket,
|
||||
Message,
|
||||
Whatsapp,
|
||||
ContactCustomField,
|
||||
Setting,
|
||||
];
|
||||
|
||||
class Database {
|
||||
constructor() {
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.createTable("Settings", {
|
||||
key: {
|
||||
type: Sequelize.STRING,
|
||||
primaryKey: true,
|
||||
allowNull: false,
|
||||
},
|
||||
value: {
|
||||
type: Sequelize.TEXT,
|
||||
allowNull: false,
|
||||
},
|
||||
createdAt: {
|
||||
type: Sequelize.DATE,
|
||||
allowNull: false,
|
||||
},
|
||||
updatedAt: {
|
||||
type: Sequelize.DATE,
|
||||
allowNull: false,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
down: queryInterface => {
|
||||
return queryInterface.dropTable("Settings");
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,22 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
up: queryInterface => {
|
||||
return queryInterface.bulkInsert(
|
||||
"Settings",
|
||||
[
|
||||
{
|
||||
key: "userCreation",
|
||||
value: "enabled",
|
||||
createdAt: new Date(),
|
||||
updatedAt: new Date(),
|
||||
},
|
||||
],
|
||||
{}
|
||||
);
|
||||
},
|
||||
|
||||
down: queryInterface => {
|
||||
return queryInterface.bulkDelete("Settings", null, {});
|
||||
},
|
||||
};
|
||||
24
backend/src/models/Setting.js
Normal file
24
backend/src/models/Setting.js
Normal file
@@ -0,0 +1,24 @@
|
||||
const Sequelize = require("sequelize");
|
||||
|
||||
class Setting extends Sequelize.Model {
|
||||
static init(sequelize) {
|
||||
super.init(
|
||||
{
|
||||
key: {
|
||||
type: Sequelize.STRING,
|
||||
primaryKey: true,
|
||||
allowNull: false,
|
||||
unique: true,
|
||||
},
|
||||
value: { type: Sequelize.TEXT, allowNull: false },
|
||||
},
|
||||
{
|
||||
sequelize,
|
||||
}
|
||||
);
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Setting;
|
||||
21
backend/src/router/index.js
Normal file
21
backend/src/router/index.js
Normal file
@@ -0,0 +1,21 @@
|
||||
const express = require("express");
|
||||
|
||||
const AuthRoutes = require("./routes/auth");
|
||||
const TicketsRoutes = require("./routes/tickets");
|
||||
const MessagesRoutes = require("./routes/messages");
|
||||
const ContactsRoutes = require("./routes/contacts");
|
||||
const WhatsRoutes = require("./routes/whatsapp");
|
||||
const UsersRoutes = require("./routes/users");
|
||||
const SettingsRoutes = require("./routes/settings");
|
||||
|
||||
const routes = express.Router();
|
||||
|
||||
routes.use("/auth", AuthRoutes);
|
||||
routes.use(TicketsRoutes);
|
||||
routes.use(MessagesRoutes);
|
||||
routes.use(ContactsRoutes);
|
||||
routes.use(WhatsRoutes);
|
||||
routes.use(UsersRoutes);
|
||||
routes.use(SettingsRoutes);
|
||||
|
||||
module.exports = routes;
|
||||
@@ -1,7 +1,7 @@
|
||||
const express = require("express");
|
||||
const SessionController = require("../controllers/SessionController");
|
||||
const UserController = require("../controllers/UserController");
|
||||
const isAuth = require("../middleware/is-auth");
|
||||
const SessionController = require("../../controllers/SessionController");
|
||||
const UserController = require("../../controllers/UserController");
|
||||
const isAuth = require("../../middleware/is-auth");
|
||||
|
||||
const routes = express.Router();
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
const express = require("express");
|
||||
const isAuth = require("../middleware/is-auth");
|
||||
const isAuth = require("../../middleware/is-auth");
|
||||
|
||||
const ContactController = require("../controllers/ContactController");
|
||||
const ImportPhoneContactsController = require("../controllers/ImportPhoneContactsController");
|
||||
const ContactController = require("../../controllers/ContactController");
|
||||
const ImportPhoneContactsController = require("../../controllers/ImportPhoneContactsController");
|
||||
|
||||
const routes = express.Router();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const express = require("express");
|
||||
const isAuth = require("../middleware/is-auth");
|
||||
const isAuth = require("../../middleware/is-auth");
|
||||
|
||||
const MessageController = require("../controllers/MessageController");
|
||||
const MessageController = require("../../controllers/MessageController");
|
||||
|
||||
const routes = express.Router();
|
||||
|
||||
14
backend/src/router/routes/settings.js
Normal file
14
backend/src/router/routes/settings.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const express = require("express");
|
||||
const isAuth = require("../../middleware/is-auth");
|
||||
|
||||
const SettingController = require("../../controllers/SettingController");
|
||||
|
||||
const routes = express.Router();
|
||||
|
||||
routes.get("/settings", isAuth, SettingController.index);
|
||||
|
||||
// routes.get("/settings/:settingKey", isAuth, SettingsController.show);
|
||||
|
||||
routes.put("/settings/:settingKey", isAuth, SettingController.update);
|
||||
|
||||
module.exports = routes;
|
||||
@@ -1,7 +1,7 @@
|
||||
const express = require("express");
|
||||
const isAuth = require("../middleware/is-auth");
|
||||
const isAuth = require("../../middleware/is-auth");
|
||||
|
||||
const TicketController = require("../controllers/TicketController");
|
||||
const TicketController = require("../../controllers/TicketController");
|
||||
|
||||
const routes = express.Router();
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
const express = require("express");
|
||||
const User = require("../models/User");
|
||||
|
||||
const isAuth = require("../middleware/is-auth");
|
||||
const UserController = require("../controllers/UserController");
|
||||
const isAuth = require("../../middleware/is-auth");
|
||||
const UserController = require("../../controllers/UserController");
|
||||
|
||||
const routes = express.Router();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const express = require("express");
|
||||
const isAuth = require("../middleware/is-auth");
|
||||
const isAuth = require("../../middleware/is-auth");
|
||||
|
||||
const WhatsAppSessionController = require("../controllers/WhatsAppSessionController");
|
||||
const WhatsAppSessionController = require("../../controllers/WhatsAppSessionController");
|
||||
|
||||
const routes = express.Router();
|
||||
|
||||
Reference in New Issue
Block a user