feat: added settings api on beackend

This commit is contained in:
canove
2020-09-04 05:08:30 -03:00
parent f52e7a667c
commit bc376e2b1c
15 changed files with 160 additions and 29 deletions

View File

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

View File

@@ -12,4 +12,5 @@ module.exports = {
username: process.env.DB_USER,
password: process.env.DB_PASS,
logging: false,
seederStorage: "sequelize",
};

View 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);
};

View File

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

View File

@@ -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");
},
};

View File

@@ -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, {});
},
};

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

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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