mirror of
https://github.com/cheveguerra/whaticket-community.git
synced 2026-04-20 20:59:16 +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 wbotMessageListener = require("./services/wbotMessageListener");
|
||||||
const wbotMonitor = require("./services/wbotMonitor");
|
const wbotMonitor = require("./services/wbotMonitor");
|
||||||
|
|
||||||
const MessagesRoutes = require("./routes/messages");
|
const Router = require("./router");
|
||||||
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 app = express();
|
const app = express();
|
||||||
|
|
||||||
@@ -40,13 +35,7 @@ app.use(cors());
|
|||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use(multer({ storage: fileStorage }).single("media"));
|
app.use(multer({ storage: fileStorage }).single("media"));
|
||||||
app.use("/public", express.static(path.join(__dirname, "..", "public")));
|
app.use("/public", express.static(path.join(__dirname, "..", "public")));
|
||||||
|
app.use(Router);
|
||||||
app.use("/auth", AuthRoutes);
|
|
||||||
app.use(ContactsRoutes);
|
|
||||||
app.use(TicketsRoutes);
|
|
||||||
app.use(MessagesRoutes);
|
|
||||||
app.use(WhatsRoutes);
|
|
||||||
app.use(UsersRoutes);
|
|
||||||
|
|
||||||
const io = require("./libs/socket").init(server);
|
const io = require("./libs/socket").init(server);
|
||||||
io.on("connection", socket => {
|
io.on("connection", socket => {
|
||||||
|
|||||||
@@ -12,4 +12,5 @@ module.exports = {
|
|||||||
username: process.env.DB_USER,
|
username: process.env.DB_USER,
|
||||||
password: process.env.DB_PASS,
|
password: process.env.DB_PASS,
|
||||||
logging: false,
|
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 Message = require("../models/Message");
|
||||||
const Whatsapp = require("../models/Whatsapp");
|
const Whatsapp = require("../models/Whatsapp");
|
||||||
const ContactCustomField = require("../models/ContactCustomField");
|
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 {
|
class Database {
|
||||||
constructor() {
|
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 express = require("express");
|
||||||
const SessionController = require("../controllers/SessionController");
|
const SessionController = require("../../controllers/SessionController");
|
||||||
const UserController = require("../controllers/UserController");
|
const UserController = require("../../controllers/UserController");
|
||||||
const isAuth = require("../middleware/is-auth");
|
const isAuth = require("../../middleware/is-auth");
|
||||||
|
|
||||||
const routes = express.Router();
|
const routes = express.Router();
|
||||||
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
const express = require("express");
|
const express = require("express");
|
||||||
const isAuth = require("../middleware/is-auth");
|
const isAuth = require("../../middleware/is-auth");
|
||||||
|
|
||||||
const ContactController = require("../controllers/ContactController");
|
const ContactController = require("../../controllers/ContactController");
|
||||||
const ImportPhoneContactsController = require("../controllers/ImportPhoneContactsController");
|
const ImportPhoneContactsController = require("../../controllers/ImportPhoneContactsController");
|
||||||
|
|
||||||
const routes = express.Router();
|
const routes = express.Router();
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
const express = require("express");
|
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();
|
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 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();
|
const routes = express.Router();
|
||||||
|
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
const express = require("express");
|
const express = require("express");
|
||||||
const User = require("../models/User");
|
|
||||||
|
|
||||||
const isAuth = require("../middleware/is-auth");
|
const isAuth = require("../../middleware/is-auth");
|
||||||
const UserController = require("../controllers/UserController");
|
const UserController = require("../../controllers/UserController");
|
||||||
|
|
||||||
const routes = express.Router();
|
const routes = express.Router();
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
const express = require("express");
|
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();
|
const routes = express.Router();
|
||||||
|
|
||||||
Reference in New Issue
Block a user