diff --git a/.gitignore b/.gitignore index b5c1a76..77a65a3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .docker/data/ ssl/ -.env \ No newline at end of file +.env +.wwebjs_auth diff --git a/backend/package.json b/backend/package.json index 762f819..0942d45 100644 --- a/backend/package.json +++ b/backend/package.json @@ -39,7 +39,7 @@ "sequelize-typescript": "^1.1.0", "socket.io": "^3.0.5", "uuid": "^8.3.2", - "whatsapp-web.js": "^1.15.8", + "whatsapp-web.js": "^1.17.1", "yup": "^0.32.8" }, "devDependencies": { diff --git a/backend/src/libs/wbot.ts b/backend/src/libs/wbot.ts index f58830b..0ef7ecb 100644 --- a/backend/src/libs/wbot.ts +++ b/backend/src/libs/wbot.ts @@ -1,5 +1,5 @@ import qrCode from "qrcode-terminal"; -import { Client } from "whatsapp-web.js"; +import { Client, LocalAuth } from "whatsapp-web.js"; import { getIO } from "./socket"; import Whatsapp from "../models/Whatsapp"; import AppError from "../errors/AppError"; @@ -42,17 +42,14 @@ export const initWbot = async (whatsapp: Whatsapp): Promise => { if (whatsapp && whatsapp.session) { sessionCfg = JSON.parse(whatsapp.session); } - - const args:String = process.env.CHROME_ARGS || ""; - - const wbot: Session = new Client({ + + const wbot: Session = new Client({ session: sessionCfg, - puppeteer: { - executablePath: process.env.CHROME_BIN || undefined, - // @ts-ignore - browserWSEndpoint: process.env.CHROME_WS || undefined, - args: args.split(' ') - } + authStrategy: new LocalAuth({clientId: 'bd_'+whatsapp.id}), + puppeteer: { + args: ['--no-sandbox', '--disable-setuid-sandbox'], + executablePath: process.env.CHROME_BIN || undefined + }, }); wbot.initialize(); @@ -76,9 +73,9 @@ export const initWbot = async (whatsapp: Whatsapp): Promise => { wbot.on("authenticated", async session => { logger.info(`Session: ${sessionName} AUTHENTICATED`); - await whatsapp.update({ - session: JSON.stringify(session) - }); +// await whatsapp.update({ +// session: JSON.stringify(session) +// }); }); wbot.on("auth_failure", async msg => { diff --git a/backend/src/services/MessageServices/CreateMessageService.ts b/backend/src/services/MessageServices/CreateMessageService.ts index 67fd33b..2bfd9c7 100644 --- a/backend/src/services/MessageServices/CreateMessageService.ts +++ b/backend/src/services/MessageServices/CreateMessageService.ts @@ -1,6 +1,7 @@ import { getIO } from "../../libs/socket"; import Message from "../../models/Message"; import Ticket from "../../models/Ticket"; +import Whatsapp from "../../models/Whatsapp"; interface MessageData { id: string; @@ -27,7 +28,14 @@ const CreateMessageService = async ({ { model: Ticket, as: "ticket", - include: ["contact", "queue"] + include: [ + "contact", "queue", + { + model: Whatsapp, + as: "whatsapp", + attributes: ["name"] + } + ] }, { model: Message, diff --git a/backend/src/services/TicketServices/ShowTicketService.ts b/backend/src/services/TicketServices/ShowTicketService.ts index 5efab0c..0644066 100644 --- a/backend/src/services/TicketServices/ShowTicketService.ts +++ b/backend/src/services/TicketServices/ShowTicketService.ts @@ -3,6 +3,7 @@ import AppError from "../../errors/AppError"; import Contact from "../../models/Contact"; import User from "../../models/User"; import Queue from "../../models/Queue"; +import Whatsapp from "../../models/Whatsapp"; const ShowTicketService = async (id: string | number): Promise => { const ticket = await Ticket.findByPk(id, { @@ -22,6 +23,11 @@ const ShowTicketService = async (id: string | number): Promise => { model: Queue, as: "queue", attributes: ["id", "name", "color"] + }, + { + model: Whatsapp, + as: "whatsapp", + attributes: ["name"] } ] }); diff --git a/frontend/src/components/TicketListItem/index.js b/frontend/src/components/TicketListItem/index.js index d0fc01b..a4a0fd1 100644 --- a/frontend/src/components/TicketListItem/index.js +++ b/frontend/src/components/TicketListItem/index.js @@ -105,14 +105,14 @@ const useStyles = makeStyles(theme => ({ marginRight: 5, right: 5, bottom: 5, - background:"#2576D2", + background: "#2576D2", color: "#ffffff", - border:"1px solid #CCC", + border: "1px solid #CCC", padding: 1, paddingLeft: 5, paddingRight: 5, borderRadius: 10, - fontSize: "1em" + fontSize: "0.9em" }, })); @@ -212,7 +212,7 @@ const TicketListItem = ({ ticket }) => { )} {ticket.whatsappId && ( -
{ticket.whatsapp.name}
+
{ticket.whatsapp?.name}
)} } diff --git a/frontend/src/pages/Signup/index.js b/frontend/src/pages/Signup/index.js index 0d36827..e71ef73 100644 --- a/frontend/src/pages/Signup/index.js +++ b/frontend/src/pages/Signup/index.js @@ -18,10 +18,10 @@ import { InputAdornment, IconButton, Link - } from '@material-ui/core'; - +} from '@material-ui/core'; + import { LockOutlined, Visibility, VisibilityOff } from '@material-ui/icons'; - + import { makeStyles } from "@material-ui/core/styles"; import { i18n } from "../../translate/i18n"; @@ -155,16 +155,16 @@ const SignUp = () => { label={i18n.t("signup.form.password")} type={showPassword ? 'text' : 'password'} InputProps={{ - endAdornment: ( - - setShowPassword((e) => !e)} - > - {showPassword ? : } - - - ) + endAdornment: ( + + setShowPassword((e) => !e)} + > + {showPassword ? : } + + + ) }} /> @@ -178,7 +178,7 @@ const SignUp = () => { > {i18n.t("signup.buttons.submit")} - +