mirror of
https://github.com/cheveguerra/whaticket-community.git
synced 2026-04-17 19:37:02 +00:00
80 lines
2.2 KiB
JavaScript
80 lines
2.2 KiB
JavaScript
require("express-async-errors");
|
|
require("./database");
|
|
const express = require("express");
|
|
const path = require("path");
|
|
const Youch = require("youch");
|
|
const cors = require("cors");
|
|
const multer = require("multer");
|
|
|
|
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 app = express();
|
|
|
|
const fileStorage = multer.diskStorage({
|
|
destination: (req, file, cb) => {
|
|
cb(null, path.resolve(__dirname, "..", "public"));
|
|
},
|
|
filename: (req, file, cb) => {
|
|
cb(null, new Date().getTime() + "-" + file.originalname.replace(/\s/g, ""));
|
|
},
|
|
});
|
|
|
|
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(async (err, req, res, next) => {
|
|
if (process.env.NODE_ENV === "development") {
|
|
const errors = await new Youch(err, req).toJSON();
|
|
console.log(err);
|
|
return res.status(500).json(errors);
|
|
}
|
|
console.log(err);
|
|
return res.status(500).json({ error: "Internal server error" });
|
|
});
|
|
|
|
const server = app.listen(process.env.PORT, () => {
|
|
console.log(`Server started on port: ${process.env.PORT}`);
|
|
});
|
|
|
|
const io = require("./libs/socket").init(server);
|
|
io.on("connection", socket => {
|
|
console.log("Client Connected");
|
|
socket.on("joinChatBox", ticketId => {
|
|
console.log("A client joined in a ticket channel");
|
|
socket.join(ticketId);
|
|
});
|
|
|
|
socket.on("joinNotification", () => {
|
|
console.log("A client joined notification channel");
|
|
socket.join("notification");
|
|
});
|
|
|
|
socket.on("disconnect", () => {
|
|
console.log("Client disconnected");
|
|
});
|
|
});
|
|
|
|
wBot
|
|
.init()
|
|
.then(() => {
|
|
wbotMessageListener();
|
|
wbotMonitor();
|
|
})
|
|
.catch(err => console.log(err));
|