@wppconnect/server 1.1.12 → 1.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -1
- package/dist/controller/deviceController.js +15 -4
- package/dist/controller/deviceController.js.map +1 -1
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/util/chatWootClient.js +14 -12
- package/dist/util/chatWootClient.js.map +1 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.archiveChat = archiveChat;exports.blockContact = blockContact;exports.chatWoot = chatWoot;exports.checkNumberStatus = checkNumberStatus;exports.clearChat = clearChat;exports.deleteChat = deleteChat;exports.deleteMessage = deleteMessage;exports.forwardMessages = forwardMessages;exports.getAllChats = getAllChats;exports.getAllChatsWithMessages = getAllChatsWithMessages;exports.getAllContacts = getAllContacts;exports.getAllMessagesInChat = getAllMessagesInChat;exports.getAllNewMessages = getAllNewMessages;exports.getAllUnreadMessages = getAllUnreadMessages;exports.getBatteryLevel = getBatteryLevel;exports.getBlockList = getBlockList;exports.getChatById = getChatById;exports.getChatIsOnline = getChatIsOnline;exports.getContact = getContact;exports.getHostDevice = getHostDevice;exports.getLastSeen = getLastSeen;exports.getListMutes = getListMutes;exports.getMessageById = getMessageById;exports.getNumberProfile = getNumberProfile;exports.getProfilePicFromServer = getProfilePicFromServer;exports.getStatus = getStatus;exports.getUnreadMessages = getUnreadMessages;exports.loadAndGetAllMessagesInChat = loadAndGetAllMessagesInChat;exports.loadEarlierMessages = loadEarlierMessages;exports.markUnseenMessage = markUnseenMessage;exports.pinChat = pinChat;exports.reply = reply;exports.sendContactVcard = sendContactVcard;exports.sendMute = sendMute;exports.sendSeen = sendSeen;exports.setChatState = setChatState;exports.setProfileName = setProfileName;exports.setProfilePic = setProfilePic;exports.setProfileStatus = setProfileStatus;exports.setTemporaryMessages = setTemporaryMessages;exports.setTyping = setTyping;exports.showAllContacts = showAllContacts;exports.starMessage = starMessage;exports.unblockContact = unblockContact;
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.archiveChat = archiveChat;exports.blockContact = blockContact;exports.chatWoot = chatWoot;exports.checkNumberStatus = checkNumberStatus;exports.clearChat = clearChat;exports.deleteChat = deleteChat;exports.deleteMessage = deleteMessage;exports.forwardMessages = forwardMessages;exports.getAllChats = getAllChats;exports.getAllChatsWithMessages = getAllChatsWithMessages;exports.getAllContacts = getAllContacts;exports.getAllMessagesInChat = getAllMessagesInChat;exports.getAllNewMessages = getAllNewMessages;exports.getAllUnreadMessages = getAllUnreadMessages;exports.getBatteryLevel = getBatteryLevel;exports.getBlockList = getBlockList;exports.getChatById = getChatById;exports.getChatIsOnline = getChatIsOnline;exports.getContact = getContact;exports.getHostDevice = getHostDevice;exports.getLastSeen = getLastSeen;exports.getListMutes = getListMutes;exports.getMessageById = getMessageById;exports.getNumberProfile = getNumberProfile;exports.getPhoneNumber = getPhoneNumber;exports.getProfilePicFromServer = getProfilePicFromServer;exports.getStatus = getStatus;exports.getUnreadMessages = getUnreadMessages;exports.loadAndGetAllMessagesInChat = loadAndGetAllMessagesInChat;exports.loadEarlierMessages = loadEarlierMessages;exports.markUnseenMessage = markUnseenMessage;exports.pinChat = pinChat;exports.reply = reply;exports.sendContactVcard = sendContactVcard;exports.sendMute = sendMute;exports.sendSeen = sendSeen;exports.setChatState = setChatState;exports.setProfileName = setProfileName;exports.setProfilePic = setProfilePic;exports.setProfileStatus = setProfileStatus;exports.setTemporaryMessages = setTemporaryMessages;exports.setTyping = setTyping;exports.showAllContacts = showAllContacts;exports.starMessage = starMessage;exports.unblockContact = unblockContact;
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
@@ -186,13 +186,24 @@ async function getBatteryLevel(req, res) {
|
|
|
186
186
|
async function getHostDevice(req, res) {
|
|
187
187
|
try {
|
|
188
188
|
const response = await req.client.getHostDevice();
|
|
189
|
-
|
|
189
|
+
const phoneNumber = await req.client.getWid();
|
|
190
|
+
return res.status(200).json({ status: 'success', response: { ...response, phoneNumber }, mapper: 'device' });
|
|
190
191
|
} catch (e) {
|
|
191
192
|
req.logger.error(e);
|
|
192
193
|
return res.status(500).json({ status: 'error', message: 'Erro ao recuperar dados do telefone' });
|
|
193
194
|
}
|
|
194
195
|
}
|
|
195
196
|
|
|
197
|
+
async function getPhoneNumber(req, res) {
|
|
198
|
+
try {
|
|
199
|
+
const phoneNumber = await req.client.getWid();
|
|
200
|
+
return res.status(200).json({ status: 'success', response: phoneNumber, mapper: 'device' });
|
|
201
|
+
} catch (e) {
|
|
202
|
+
req.logger.error(e);
|
|
203
|
+
return res.status(500).json({ status: 'error', message: 'Error retrieving phone number' });
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
196
207
|
async function getBlockList(req, res) {
|
|
197
208
|
let response = await req.client.getBlockList();
|
|
198
209
|
|
|
@@ -652,13 +663,13 @@ async function chatWoot(req, res) {
|
|
|
652
663
|
if (await client.isConnected()) {
|
|
653
664
|
const event = req.body.event;
|
|
654
665
|
|
|
655
|
-
if (event == 'conversation_status_changed' || event == 'conversation_resolved') {
|
|
666
|
+
if (event == 'conversation_status_changed' || event == 'conversation_resolved' || req.body.private) {
|
|
656
667
|
return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });
|
|
657
668
|
}
|
|
658
669
|
|
|
659
670
|
const {
|
|
660
671
|
message_type,
|
|
661
|
-
phone = req.body.conversation.meta.sender.phone_number,
|
|
672
|
+
phone = req.body.conversation.meta.sender.phone_number.replace('+', ''),
|
|
662
673
|
message = req.body.conversation.messages[0] } =
|
|
663
674
|
req.body;
|
|
664
675
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/controller/deviceController.js"],"names":["returnSucess","res","session","phone","data","status","json","response","message","contact","returnError","req","error","logger","log","setProfileName","name","body","result","client","showAllContacts","contacts","getAllContacts","getAllChats","mapper","e","getAllChatsWithMessages","getAllMessagesInChat","params","isGroup","includeMe","includeNotifications","query","contato","getAllNewMessages","getAllUnreadMessages","getChatById","allMessages","dir","fs","existsSync","mkdirSync","map","type","serverOptions","host","port","t","mime","extension","mimetype","getMessageById","messageId","chatId","user","getBatteryLevel","getHostDevice","getBlockList","blocked","split","deleteChat","clearChat","archiveChat","value","deleteMessage","reply","text","messageid","forwardMessages","markUnseenMessage","blockContact","unblockContact","pinChat","state","setProfilePic","file","path","pathFile","getUnreadMessages","getChatIsOnline","getLastSeen","getListMutes","loadAndGetAllMessagesInChat","loadEarlierMessages","sendContactVcard","contactsId","sendMute","time","sendSeen","setChatState","chatstate","setTemporaryMessages","setTyping","startTyping","stopTyping","checkNumberStatus","getContact","getNumberProfile","getProfilePicFromServer","getStatus","setProfileStatus","starMessage","star","chatWoot","clientsArray","isConnected","event","message_type","conversation","meta","sender","phone_number","messages","attachments","base_url","config","baseURL","data_url","substring","indexOf","sendFile","content","sendText","console"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport fs from 'fs';\nimport { download } from './sessionController';\nimport { contactToArray, unlinkAsync } from '../util/functions';\nimport mime from 'mime-types';\nimport { clientsArray } from '../util/sessionUtil';\n\nfunction returnSucess(res, session, phone, data) {\n res.status(201).json({\n status: 'Success',\n response: {\n message: 'Information retrieved successfully.',\n contact: phone,\n session: session,\n data: data,\n },\n });\n}\n\nfunction returnError(req, res, session, error) {\n req.logger.error(error);\n res.status(400).json({\n status: 'Error',\n response: {\n message: 'Error retrieving information',\n session: session,\n log: error,\n },\n });\n}\n\nexport async function setProfileName(req, res) {\n const { name } = req.body;\n\n if (!name) return res.status(400).json({ status: 'error', message: 'Parameter name is required!' });\n\n try {\n const result = await req.client.setProfileName(name);\n return res.status(200).json({ status: 'success', response: result });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error on set profile name.' });\n }\n}\n\nexport async function showAllContacts(req, res) {\n try {\n const contacts = await req.client.getAllContacts();\n res.status(200).json({ status: 'success', response: contacts });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error fetching contacts' });\n }\n}\n\nexport async function getAllChats(req, res) {\n try {\n const response = await req.client.getAllChats();\n return res.status(200).json({ status: 'success', response: response, mapper: 'chat' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats' });\n }\n}\n\nexport async function getAllChatsWithMessages(req, res) {\n try {\n const response = await req.client.getAllChatsWithMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats whit messages' });\n }\n}\n\nexport async function getAllMessagesInChat(req, res) {\n try {\n let { phone } = req.params;\n const { isGroup = false, includeMe = true, includeNotifications = true } = req.query;\n\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.getAllMessagesInChat(contato, includeMe, includeNotifications);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getAllNewMessages(req, res) {\n try {\n const response = await req.client.getAllNewMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getAllUnreadMessages(req, res) {\n try {\n const response = await req.client.getAllUnreadMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getChatById(req, res) {\n const { phone } = req.params;\n const { isGroup } = req.query;\n\n try {\n let allMessages = {};\n\n if (isGroup) {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@g.us`, true, true);\n } else {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@c.us`, true, true);\n }\n\n let dir = './WhatsAppImages';\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir);\n }\n\n allMessages.map((message) => {\n if (message.type === 'sticker') {\n download(message, req.client, req.logger);\n message.body = `${req.serverOptions.host}:${req.serverOptions.port}/files/file${message.t}.${mime.extension(\n message.mimetype\n )}`;\n }\n });\n\n return res.status(200).json({ status: 'success', response: allMessages });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing chat by Id' });\n }\n}\n\nexport async function getMessageById(req, res) {\n const session = req.session;\n const { messageId } = req.params;\n\n try {\n let result;\n\n result = await req.client.getMessageById(messageId);\n\n returnSucess(res, session, result.chatId.user, result);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function getBatteryLevel(req, res) {\n try {\n let response = await req.client.getBatteryLevel();\n return res.status(200).json({ status: 'Success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving battery status' });\n }\n}\n\nexport async function getHostDevice(req, res) {\n try {\n const response = await req.client.getHostDevice();\n return res.status(200).json({ status: 'success', response: response, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Erro ao recuperar dados do telefone' });\n }\n}\n\nexport async function getBlockList(req, res) {\n let response = await req.client.getBlockList();\n\n try {\n const blocked = response.map((contato) => {\n return { phone: contato ? contato.split('@')[0] : '' };\n });\n\n return res.status(200).json({ status: 'success', response: blocked });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving blocked contact list' });\n }\n}\n\nexport async function deleteChat(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n if (isGroup) {\n await req.client.deleteChat(`${phone}@g.us`);\n } else {\n await req.client.deleteChat(`${phone}@c.us`);\n }\n return res.status(200).json({ status: 'success', response: { message: 'Conversa deleteada com sucesso' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Erro ao deletada conversa' });\n }\n}\n\nexport async function clearChat(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n if (isGroup) {\n await req.client.clearChat(`${phone}@g.us`);\n } else {\n await req.client.clearChat(`${phone}@c.us`);\n }\n return res.status(200).json({ status: 'success', response: { message: 'Successfully cleared conversation' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error clearing conversation' });\n }\n}\n\nexport async function archiveChat(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n\n try {\n let response;\n if (isGroup) {\n response = await req.client.archiveChat(`${phone}@g.us`, value);\n } else {\n response = await req.client.archiveChat(`${phone}@c.us`, value);\n }\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on archive chat' });\n }\n}\n\nexport async function deleteMessage(req, res) {\n const { phone, messageId } = req.body;\n\n try {\n await req.client.deleteMessage(`${phone}@c.us`, [messageId]);\n\n return res.status(200).json({ status: 'success', response: { message: 'Message deleted' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on delete message' });\n }\n}\n\nexport async function reply(req, res) {\n const { phone, text, messageid } = req.body;\n\n try {\n let response = await req.client.reply(`${phone}@c.us`, text, messageid);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error replying message' });\n }\n}\n\nexport async function forwardMessages(req, res) {\n const { phone, messageId, isGroup = false } = req.body;\n\n try {\n let response;\n\n if (!isGroup) {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n } else {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n }\n\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error forwarding message' });\n }\n}\n\nexport async function markUnseenMessage(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n if (isGroup) {\n await req.client.markUnseenMessage(`${phone}@g.us`);\n } else {\n await req.client.markUnseenMessage(`${phone}@c.us`);\n }\n return res.status(200).json({ status: 'success', response: { message: 'unseen checked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on mark unseen' });\n }\n}\n\nexport async function blockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.blockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact blocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on block contact' });\n }\n}\n\nexport async function unblockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.unblockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact UnBlocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on unlock contact' });\n }\n}\n\nexport async function pinChat(req, res) {\n const { phone, state } = req.body;\n\n try {\n for (const contato of phone) {\n await req.client.pinChat(contato, state === 'true', false);\n }\n\n return res.status(200).json({ status: 'success', response: { message: 'Chat fixed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: e.text || 'Error on pin chat' });\n }\n}\n\nexport async function setProfilePic(req, res) {\n if (!req.file) return res.status(400).json({ status: 'Error', message: 'File parameter is required!' });\n\n try {\n const { path: pathFile } = req.file;\n\n await req.client.setProfilePic(pathFile);\n await unlinkAsync(pathFile);\n\n return res.status(200).json({ status: 'success', response: { message: 'Profile photo successfully changed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing profile photo' });\n }\n}\n\nexport async function getUnreadMessages(req, res) {\n try {\n const response = await req.client.getUnreadMessages(false, false, true);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on open list' });\n }\n}\n\nexport async function getChatIsOnline(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getChatIsOnline(`${phone}@c.us`);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on get chat is online' });\n }\n}\n\nexport async function getLastSeen(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getLastSeen(`${phone}@c.us`);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get chat last seen' });\n }\n}\n\nexport async function getListMutes(req, res) {\n const { type = 'all' } = req.params;\n try {\n const response = await req.client.getListMutes(type);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get list mutes' });\n }\n}\n\nexport async function loadAndGetAllMessagesInChat(req, res) {\n const { phone, includeMe = true, includeNotifications = false } = req.params;\n try {\n const response = await req.client.loadAndGetAllMessagesInChat(`${phone}@c.us`, includeMe, includeNotifications);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on open list' });\n }\n}\nexport async function loadEarlierMessages(req, res) {\n const { phone, includeMe = true, includeNotifications = false } = req.params;\n\n try {\n const response = await req.client.loadEarlierMessages(`${phone}`, includeMe, includeNotifications);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(401).json({ status: 'error', response: 'Error on open list' });\n }\n}\n\nexport async function sendContactVcard(req, res) {\n const { phone, contactsId, name = null, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendContactVcard(`${contato}`, contactsId, name);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send contact vcard' });\n }\n}\n\nexport async function sendMute(req, res) {\n const { phone, time, type = 'hours', isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendMute(`${contato}`, time, type);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send mute' });\n }\n}\n\nexport async function sendSeen(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendSeen(`${contato}`);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send seen' });\n }\n}\n\nexport async function setChatState(req, res) {\n const { phone, chatstate, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setChatState(`${contato}`, chatstate);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send chat state' });\n }\n}\n\nexport async function setTemporaryMessages(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setTemporaryMessages(`${contato}`, value);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set temporary messages' });\n }\n}\n\nexport async function setTyping(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n if (value) response = await req.client.startTyping(contato);\n else response = await req.client.stopTyping(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set typing' });\n }\n}\n\nexport async function checkNumberStatus(req, res) {\n const { phone } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.checkNumberStatus(`${contato}`);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on check number status' });\n }\n}\n\nexport async function getContact(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getContact(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get contact' });\n }\n}\n\nexport async function getAllContacts(req, res) {\n try {\n const response = await req.client.getAllContacts();\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get all constacts' });\n }\n}\n\nexport async function getNumberProfile(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getNumberProfile(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get number profile' });\n }\n}\n\nexport async function getProfilePicFromServer(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getProfilePicFromServer(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get profile pic' });\n }\n}\n\nexport async function getStatus(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getStatus(contato);\n }\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get status' });\n }\n}\n\nexport async function setProfileStatus(req, res) {\n const { status } = req.body;\n try {\n let response = await req.client.setProfileStatus(status);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on set profile status' });\n }\n}\n\nexport async function starMessage(req, res) {\n const { messageId, star = true } = req.body;\n try {\n let response = await req.client.starMessage(messageId, star);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on start message' });\n }\n}\n\nexport async function chatWoot(req, res) {\n const { session } = req.params;\n const client = clientsArray[session];\n if (client == null || client.status !== 'CONNECTED') return;\n try {\n if (await client.isConnected()) {\n const event = req.body.event;\n\n if (event == 'conversation_status_changed' || event == 'conversation_resolved') {\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n\n const {\n message_type,\n phone = req.body.conversation.meta.sender.phone_number,\n message = req.body.conversation.messages[0],\n } = req.body;\n\n if (event != 'message_created' && message_type != 'outgoing') return res.status(200);\n for (const contato of contactToArray(phone, false)) {\n if (message_type == 'outgoing') {\n if (message.attachments) {\n let base_url = `${client.config.chatWoot.baseURL}/${message.attachments[0].data_url.substring(\n message.attachments[0].data_url.indexOf('/rails/') + 1\n )}`;\n await client.sendFile(`${contato}`, base_url, 'file', message.content);\n } else {\n await client.sendText(contato, message.content);\n }\n }\n }\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n } catch (e) {\n console.log(e);\n return res.status(400).json({ status: 'error', message: 'Error on receive chatwoot' });\n }\n}\n"],"file":"deviceController.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/controller/deviceController.js"],"names":["returnSucess","res","session","phone","data","status","json","response","message","contact","returnError","req","error","logger","log","setProfileName","name","body","result","client","showAllContacts","contacts","getAllContacts","getAllChats","mapper","e","getAllChatsWithMessages","getAllMessagesInChat","params","isGroup","includeMe","includeNotifications","query","contato","getAllNewMessages","getAllUnreadMessages","getChatById","allMessages","dir","fs","existsSync","mkdirSync","map","type","serverOptions","host","port","t","mime","extension","mimetype","getMessageById","messageId","chatId","user","getBatteryLevel","getHostDevice","phoneNumber","getWid","getPhoneNumber","getBlockList","blocked","split","deleteChat","clearChat","archiveChat","value","deleteMessage","reply","text","messageid","forwardMessages","markUnseenMessage","blockContact","unblockContact","pinChat","state","setProfilePic","file","path","pathFile","getUnreadMessages","getChatIsOnline","getLastSeen","getListMutes","loadAndGetAllMessagesInChat","loadEarlierMessages","sendContactVcard","contactsId","sendMute","time","sendSeen","setChatState","chatstate","setTemporaryMessages","setTyping","startTyping","stopTyping","checkNumberStatus","getContact","getNumberProfile","getProfilePicFromServer","getStatus","setProfileStatus","starMessage","star","chatWoot","clientsArray","isConnected","event","private","message_type","conversation","meta","sender","phone_number","replace","messages","attachments","base_url","config","baseURL","data_url","substring","indexOf","sendFile","content","sendText","console"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport fs from 'fs';\nimport { download } from './sessionController';\nimport { contactToArray, unlinkAsync } from '../util/functions';\nimport mime from 'mime-types';\nimport { clientsArray } from '../util/sessionUtil';\n\nfunction returnSucess(res, session, phone, data) {\n res.status(201).json({\n status: 'Success',\n response: {\n message: 'Information retrieved successfully.',\n contact: phone,\n session: session,\n data: data,\n },\n });\n}\n\nfunction returnError(req, res, session, error) {\n req.logger.error(error);\n res.status(400).json({\n status: 'Error',\n response: {\n message: 'Error retrieving information',\n session: session,\n log: error,\n },\n });\n}\n\nexport async function setProfileName(req, res) {\n const { name } = req.body;\n\n if (!name) return res.status(400).json({ status: 'error', message: 'Parameter name is required!' });\n\n try {\n const result = await req.client.setProfileName(name);\n return res.status(200).json({ status: 'success', response: result });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error on set profile name.' });\n }\n}\n\nexport async function showAllContacts(req, res) {\n try {\n const contacts = await req.client.getAllContacts();\n res.status(200).json({ status: 'success', response: contacts });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error fetching contacts' });\n }\n}\n\nexport async function getAllChats(req, res) {\n try {\n const response = await req.client.getAllChats();\n return res.status(200).json({ status: 'success', response: response, mapper: 'chat' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats' });\n }\n}\n\nexport async function getAllChatsWithMessages(req, res) {\n try {\n const response = await req.client.getAllChatsWithMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats whit messages' });\n }\n}\n\nexport async function getAllMessagesInChat(req, res) {\n try {\n let { phone } = req.params;\n const { isGroup = false, includeMe = true, includeNotifications = true } = req.query;\n\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.getAllMessagesInChat(contato, includeMe, includeNotifications);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getAllNewMessages(req, res) {\n try {\n const response = await req.client.getAllNewMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getAllUnreadMessages(req, res) {\n try {\n const response = await req.client.getAllUnreadMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getChatById(req, res) {\n const { phone } = req.params;\n const { isGroup } = req.query;\n\n try {\n let allMessages = {};\n\n if (isGroup) {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@g.us`, true, true);\n } else {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@c.us`, true, true);\n }\n\n let dir = './WhatsAppImages';\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir);\n }\n\n allMessages.map((message) => {\n if (message.type === 'sticker') {\n download(message, req.client, req.logger);\n message.body = `${req.serverOptions.host}:${req.serverOptions.port}/files/file${message.t}.${mime.extension(\n message.mimetype\n )}`;\n }\n });\n\n return res.status(200).json({ status: 'success', response: allMessages });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing chat by Id' });\n }\n}\n\nexport async function getMessageById(req, res) {\n const session = req.session;\n const { messageId } = req.params;\n\n try {\n let result;\n\n result = await req.client.getMessageById(messageId);\n\n returnSucess(res, session, result.chatId.user, result);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function getBatteryLevel(req, res) {\n try {\n let response = await req.client.getBatteryLevel();\n return res.status(200).json({ status: 'Success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving battery status' });\n }\n}\n\nexport async function getHostDevice(req, res) {\n try {\n const response = await req.client.getHostDevice();\n const phoneNumber = await req.client.getWid();\n return res.status(200).json({ status: 'success', response: { ...response, phoneNumber }, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Erro ao recuperar dados do telefone' });\n }\n}\n\nexport async function getPhoneNumber(req, res) {\n try {\n const phoneNumber = await req.client.getWid();\n return res.status(200).json({ status: 'success', response: phoneNumber, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving phone number' });\n }\n}\n\nexport async function getBlockList(req, res) {\n let response = await req.client.getBlockList();\n\n try {\n const blocked = response.map((contato) => {\n return { phone: contato ? contato.split('@')[0] : '' };\n });\n\n return res.status(200).json({ status: 'success', response: blocked });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving blocked contact list' });\n }\n}\n\nexport async function deleteChat(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n if (isGroup) {\n await req.client.deleteChat(`${phone}@g.us`);\n } else {\n await req.client.deleteChat(`${phone}@c.us`);\n }\n return res.status(200).json({ status: 'success', response: { message: 'Conversa deleteada com sucesso' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Erro ao deletada conversa' });\n }\n}\n\nexport async function clearChat(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n if (isGroup) {\n await req.client.clearChat(`${phone}@g.us`);\n } else {\n await req.client.clearChat(`${phone}@c.us`);\n }\n return res.status(200).json({ status: 'success', response: { message: 'Successfully cleared conversation' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error clearing conversation' });\n }\n}\n\nexport async function archiveChat(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n\n try {\n let response;\n if (isGroup) {\n response = await req.client.archiveChat(`${phone}@g.us`, value);\n } else {\n response = await req.client.archiveChat(`${phone}@c.us`, value);\n }\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on archive chat' });\n }\n}\n\nexport async function deleteMessage(req, res) {\n const { phone, messageId } = req.body;\n\n try {\n await req.client.deleteMessage(`${phone}@c.us`, [messageId]);\n\n return res.status(200).json({ status: 'success', response: { message: 'Message deleted' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on delete message' });\n }\n}\n\nexport async function reply(req, res) {\n const { phone, text, messageid } = req.body;\n\n try {\n let response = await req.client.reply(`${phone}@c.us`, text, messageid);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error replying message' });\n }\n}\n\nexport async function forwardMessages(req, res) {\n const { phone, messageId, isGroup = false } = req.body;\n\n try {\n let response;\n\n if (!isGroup) {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n } else {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n }\n\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error forwarding message' });\n }\n}\n\nexport async function markUnseenMessage(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n if (isGroup) {\n await req.client.markUnseenMessage(`${phone}@g.us`);\n } else {\n await req.client.markUnseenMessage(`${phone}@c.us`);\n }\n return res.status(200).json({ status: 'success', response: { message: 'unseen checked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on mark unseen' });\n }\n}\n\nexport async function blockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.blockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact blocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on block contact' });\n }\n}\n\nexport async function unblockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.unblockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact UnBlocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on unlock contact' });\n }\n}\n\nexport async function pinChat(req, res) {\n const { phone, state } = req.body;\n\n try {\n for (const contato of phone) {\n await req.client.pinChat(contato, state === 'true', false);\n }\n\n return res.status(200).json({ status: 'success', response: { message: 'Chat fixed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: e.text || 'Error on pin chat' });\n }\n}\n\nexport async function setProfilePic(req, res) {\n if (!req.file) return res.status(400).json({ status: 'Error', message: 'File parameter is required!' });\n\n try {\n const { path: pathFile } = req.file;\n\n await req.client.setProfilePic(pathFile);\n await unlinkAsync(pathFile);\n\n return res.status(200).json({ status: 'success', response: { message: 'Profile photo successfully changed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing profile photo' });\n }\n}\n\nexport async function getUnreadMessages(req, res) {\n try {\n const response = await req.client.getUnreadMessages(false, false, true);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on open list' });\n }\n}\n\nexport async function getChatIsOnline(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getChatIsOnline(`${phone}@c.us`);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on get chat is online' });\n }\n}\n\nexport async function getLastSeen(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getLastSeen(`${phone}@c.us`);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get chat last seen' });\n }\n}\n\nexport async function getListMutes(req, res) {\n const { type = 'all' } = req.params;\n try {\n const response = await req.client.getListMutes(type);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get list mutes' });\n }\n}\n\nexport async function loadAndGetAllMessagesInChat(req, res) {\n const { phone, includeMe = true, includeNotifications = false } = req.params;\n try {\n const response = await req.client.loadAndGetAllMessagesInChat(`${phone}@c.us`, includeMe, includeNotifications);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on open list' });\n }\n}\nexport async function loadEarlierMessages(req, res) {\n const { phone, includeMe = true, includeNotifications = false } = req.params;\n\n try {\n const response = await req.client.loadEarlierMessages(`${phone}`, includeMe, includeNotifications);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(401).json({ status: 'error', response: 'Error on open list' });\n }\n}\n\nexport async function sendContactVcard(req, res) {\n const { phone, contactsId, name = null, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendContactVcard(`${contato}`, contactsId, name);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send contact vcard' });\n }\n}\n\nexport async function sendMute(req, res) {\n const { phone, time, type = 'hours', isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendMute(`${contato}`, time, type);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send mute' });\n }\n}\n\nexport async function sendSeen(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendSeen(`${contato}`);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send seen' });\n }\n}\n\nexport async function setChatState(req, res) {\n const { phone, chatstate, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setChatState(`${contato}`, chatstate);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send chat state' });\n }\n}\n\nexport async function setTemporaryMessages(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setTemporaryMessages(`${contato}`, value);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set temporary messages' });\n }\n}\n\nexport async function setTyping(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n if (value) response = await req.client.startTyping(contato);\n else response = await req.client.stopTyping(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set typing' });\n }\n}\n\nexport async function checkNumberStatus(req, res) {\n const { phone } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.checkNumberStatus(`${contato}`);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on check number status' });\n }\n}\n\nexport async function getContact(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getContact(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get contact' });\n }\n}\n\nexport async function getAllContacts(req, res) {\n try {\n const response = await req.client.getAllContacts();\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get all constacts' });\n }\n}\n\nexport async function getNumberProfile(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getNumberProfile(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get number profile' });\n }\n}\n\nexport async function getProfilePicFromServer(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getProfilePicFromServer(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get profile pic' });\n }\n}\n\nexport async function getStatus(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getStatus(contato);\n }\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get status' });\n }\n}\n\nexport async function setProfileStatus(req, res) {\n const { status } = req.body;\n try {\n let response = await req.client.setProfileStatus(status);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on set profile status' });\n }\n}\n\nexport async function starMessage(req, res) {\n const { messageId, star = true } = req.body;\n try {\n let response = await req.client.starMessage(messageId, star);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on start message' });\n }\n}\n\nexport async function chatWoot(req, res) {\n const { session } = req.params;\n const client = clientsArray[session];\n if (client == null || client.status !== 'CONNECTED') return;\n try {\n if (await client.isConnected()) {\n const event = req.body.event;\n\n if (event == 'conversation_status_changed' || event == 'conversation_resolved' || req.body.private) {\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n\n const {\n message_type,\n phone = req.body.conversation.meta.sender.phone_number.replace('+', ''),\n message = req.body.conversation.messages[0],\n } = req.body;\n\n if (event != 'message_created' && message_type != 'outgoing') return res.status(200);\n for (const contato of contactToArray(phone, false)) {\n if (message_type == 'outgoing') {\n if (message.attachments) {\n let base_url = `${client.config.chatWoot.baseURL}/${message.attachments[0].data_url.substring(\n message.attachments[0].data_url.indexOf('/rails/') + 1\n )}`;\n await client.sendFile(`${contato}`, base_url, 'file', message.content);\n } else {\n await client.sendText(contato, message.content);\n }\n }\n }\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n } catch (e) {\n console.log(e);\n return res.status(400).json({ status: 'error', message: 'Error on receive chatwoot' });\n }\n}\n"],"file":"deviceController.js"}
|
package/dist/routes/index.js
CHANGED
|
@@ -220,6 +220,7 @@ routes.post('/api/:session/unblock-contact', _auth.default, _statusConnection.de
|
|
|
220
220
|
// Device
|
|
221
221
|
routes.get('/api/:session/get-battery-level', _auth.default, _statusConnection.default, DeviceController.getBatteryLevel);
|
|
222
222
|
routes.get('/api/:session/host-device', _auth.default, _statusConnection.default, DeviceController.getHostDevice);
|
|
223
|
+
routes.get('/api/:session/get-phone-number', _auth.default, _statusConnection.default, DeviceController.getPhoneNumber);
|
|
223
224
|
|
|
224
225
|
// Profile
|
|
225
226
|
routes.post(
|
package/dist/routes/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routes/index.js"],"names":["upload","uploadConfig","routes","Router","post","encryptSession","get","SessionController","showAllSessions","startAllSessions","verifyToken","checkConnectionSession","getMediaByMessage","getSessionState","getQrCode","startSession","statusConnection","logOutSession","closeSession","subscribePresence","downloadMediaByMessage","killServiceWorker","restartService","MessageController","sendMessage","single","sendImage","replyMessage","sendFile","sendFile64","sendVoice","sendVoice64","sendStatusText","sendLinkPreview","sendLocation","sendMentioned","sendButtons","sendButtonsList","GroupController","getAllBroadcastList","getAllGroups","getGroupMembers","getGroupAdmins","getGroupInviteLink","revokeGroupInviteLink","getGroupMembersIds","createGroup","leaveGroup","joinGroupByCode","addParticipant","removeParticipant","promoteParticipant","demoteParticipant","getGroupInfoFromInviteLink","setGroupDescription","setGroupProperty","setGroupSubject","setMessagesAdminsOnly","setGroupProfilePic","changePrivacyGroup","DeviceController","getAllChats","getAllChatsWithMessages","getAllMessagesInChat","getAllNewMessages","getUnreadMessages","getAllUnreadMessages","getChatById","getMessageById","getChatIsOnline","getLastSeen","getListMutes","loadAndGetAllMessagesInChat","loadEarlierMessages","archiveChat","clearChat","deleteChat","deleteMessage","forwardMessages","markUnseenMessage","pinChat","sendContactVcard","sendMute","sendSeen","setChatState","setTemporaryMessages","setTyping","starMessage","sendTextStorie","sendImageStorie","sendVideoStorie","checkNumberStatus","getAllContacts","getContact","getNumberProfile","getProfilePicFromServer","getStatus","getBlockList","blockContact","unblockContact","getBatteryLevel","getHostDevice","setProfilePic","setProfileStatus","setProfileName","OrderController","getBusinessProfilesProducts","getOrderbyMsg","chatWoot","use","swaggerUi","serve","setup","swaggerDocument","HealthCheck","healthz","unhealthy"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Router } from 'express';\nimport { encryptSession } from '../controller/encryptController';\nimport * as MessageController from '../controller/messageController';\nimport * as GroupController from '../controller/groupController';\nimport * as DeviceController from '../controller/deviceController';\nimport * as SessionController from '../controller/sessionController';\nimport * as OrderController from '../controller/orderController';\nimport * as HealthCheck from '../middleware/healthCheck';\nimport verifyToken from '../middleware/auth';\nimport statusConnection from '../middleware/statusConnection';\nimport multer from 'multer';\nimport uploadConfig from '../config/upload';\nimport swaggerUi from 'swagger-ui-express';\nimport swaggerDocument from '../swagger.json';\nimport { sendButtonsList } from '../controller/messageController';\n\nconst upload = multer(uploadConfig);\nconst routes = new Router();\n\n// Generate Token\nroutes.post('/api/:session/:secretkey/generate-token', encryptSession);\n\n// All Sessions\nroutes.get('/api/:secretkey/show-all-sessions', SessionController.showAllSessions);\nroutes.post('/api/:secretkey/start-all', SessionController.startAllSessions);\n\n// Sessions\nroutes.get('/api/:session/check-connection-session', verifyToken, SessionController.checkConnectionSession);\nroutes.get('/api/:session/get-media-by-message/:messageId', verifyToken, SessionController.getMediaByMessage);\nroutes.get('/api/:session/status-session', verifyToken, SessionController.getSessionState);\nroutes.get('/api/:session/qrcode-session', verifyToken, SessionController.getQrCode);\nroutes.post('/api/:session/start-session', verifyToken, SessionController.startSession);\nroutes.post('/api/:session/logout-session', verifyToken, statusConnection, SessionController.logOutSession);\nroutes.post('/api/:session/close-session', verifyToken, SessionController.closeSession);\nroutes.post('/api/:session/subscribe-presence', verifyToken, SessionController.subscribePresence);\nroutes.post('/api/:session/download-media', verifyToken, statusConnection, SessionController.downloadMediaByMessage);\nroutes.post('/api/:session/kill-service-workier', verifyToken, statusConnection, SessionController.killServiceWorker);\nroutes.post('/api/:session/restart-service', verifyToken, statusConnection, SessionController.restartService);\n\n// Messages\nroutes.post('/api/:session/send-message', verifyToken, statusConnection, MessageController.sendMessage);\nroutes.post(\n '/api/:session/send-image',\n upload.single('file'),\n verifyToken,\n statusConnection,\n MessageController.sendImage\n);\nroutes.post('/api/:session/send-reply', verifyToken, statusConnection, MessageController.replyMessage);\nroutes.post(\n '/api/:session/send-file',\n upload.single('file'),\n verifyToken,\n statusConnection,\n MessageController.sendFile\n);\nroutes.post('/api/:session/send-file-base64', verifyToken, statusConnection, MessageController.sendFile64);\nroutes.post('/api/:session/send-voice', verifyToken, statusConnection, MessageController.sendVoice);\nroutes.post('/api/:session/send-voice-base64', verifyToken, statusConnection, MessageController.sendVoice64);\nroutes.post('/api/:session/send-status', verifyToken, statusConnection, MessageController.sendStatusText);\nroutes.post('/api/:session/send-link-preview', verifyToken, statusConnection, MessageController.sendLinkPreview);\nroutes.post('/api/:session/send-location', verifyToken, statusConnection, MessageController.sendLocation);\nroutes.post('/api/:session/send-mentioned', verifyToken, statusConnection, MessageController.sendMentioned);\nroutes.post('/api/:session/send-buttons', verifyToken, statusConnection, MessageController.sendButtons);\nroutes.post('/api/:session/send-buttons-list', verifyToken, statusConnection, MessageController.sendButtonsList);\n\n// Group\nroutes.get('/api/:session/all-broadcast-list', verifyToken, statusConnection, GroupController.getAllBroadcastList);\nroutes.get('/api/:session/all-groups', verifyToken, statusConnection, GroupController.getAllGroups);\nroutes.get('/api/:session/group-members/:groupId', verifyToken, statusConnection, GroupController.getGroupMembers);\nroutes.get('/api/:session/group-admins/:groupId', verifyToken, statusConnection, GroupController.getGroupAdmins);\nroutes.get(\n '/api/:session/group-invite-link/:groupId',\n verifyToken,\n statusConnection,\n GroupController.getGroupInviteLink\n);\nroutes.get(\n '/api/:session/group-revoke-link/:groupId',\n verifyToken,\n statusConnection,\n GroupController.revokeGroupInviteLink\n);\nroutes.get(\n '/api/:session/group-members-ids/:groupId',\n verifyToken,\n statusConnection,\n GroupController.getGroupMembersIds\n);\nroutes.post('/api/:session/create-group', verifyToken, statusConnection, GroupController.createGroup);\nroutes.post('/api/:session/leave-group', verifyToken, statusConnection, GroupController.leaveGroup);\nroutes.post('/api/:session/join-code', verifyToken, statusConnection, GroupController.joinGroupByCode);\nroutes.post('/api/:session/add-participant-group', verifyToken, statusConnection, GroupController.addParticipant);\nroutes.post('/api/:session/remove-participant-group', verifyToken, statusConnection, GroupController.removeParticipant);\nroutes.post(\n '/api/:session/promote-participant-group',\n verifyToken,\n statusConnection,\n GroupController.promoteParticipant\n);\nroutes.post('/api/:session/demote-participant-group', verifyToken, statusConnection, GroupController.demoteParticipant);\nroutes.post(\n '/api/:session/group-info-from-invite-link',\n verifyToken,\n statusConnection,\n GroupController.getGroupInfoFromInviteLink\n);\nroutes.post('/api/:session/group-description', verifyToken, statusConnection, GroupController.setGroupDescription);\nroutes.post('/api/:session/group-property', verifyToken, statusConnection, GroupController.setGroupProperty);\nroutes.post('/api/:session/group-subject', verifyToken, statusConnection, GroupController.setGroupSubject);\nroutes.post('/api/:session/messages-admins-only', verifyToken, statusConnection, GroupController.setMessagesAdminsOnly);\nroutes.post(\n '/api/:session/group-pic',\n upload.single('file'),\n verifyToken,\n statusConnection,\n GroupController.setGroupProfilePic\n);\nroutes.post('/api/:session/change-privacy-group', verifyToken, statusConnection, GroupController.changePrivacyGroup);\n\n// Chat\nroutes.get('/api/:session/all-chats', verifyToken, statusConnection, DeviceController.getAllChats);\nroutes.get(\n '/api/:session/all-chats-with-messages',\n verifyToken,\n statusConnection,\n DeviceController.getAllChatsWithMessages\n);\nroutes.get(\n '/api/:session/all-messages-in-chat/:phone',\n verifyToken,\n statusConnection,\n DeviceController.getAllMessagesInChat\n);\nroutes.get('/api/:session/all-new-messages', verifyToken, statusConnection, DeviceController.getAllNewMessages);\nroutes.get('/api/:session/unread-messages', verifyToken, statusConnection, DeviceController.getUnreadMessages);\nroutes.get('/api/:session/all-unread-messages', verifyToken, statusConnection, DeviceController.getAllUnreadMessages);\nroutes.get('/api/:session/chat-by-id/:phone', verifyToken, statusConnection, DeviceController.getChatById);\nroutes.get('/api/:session/message-by-id/:messageId', verifyToken, statusConnection, DeviceController.getMessageById);\nroutes.get('/api/:session/chat-is-online/:phone', verifyToken, statusConnection, DeviceController.getChatIsOnline);\nroutes.get('/api/:session/last-seen/:phone', verifyToken, statusConnection, DeviceController.getLastSeen);\nroutes.get('/api/:session/list-mutes/:type', verifyToken, statusConnection, DeviceController.getListMutes);\nroutes.get(\n '/api/:session/load-messages-in-chat/:phone',\n verifyToken,\n statusConnection,\n DeviceController.loadAndGetAllMessagesInChat\n);\nroutes.get(\n '/api/:session/load-earlier-messages/:phone',\n verifyToken,\n statusConnection,\n DeviceController.loadEarlierMessages\n);\nroutes.post('/api/:session/archive-chat', verifyToken, statusConnection, DeviceController.archiveChat);\nroutes.post('/api/:session/clear-chat', verifyToken, statusConnection, DeviceController.clearChat);\nroutes.post('/api/:session/delete-chat', verifyToken, statusConnection, DeviceController.deleteChat);\nroutes.post('/api/:session/delete-message', verifyToken, statusConnection, DeviceController.deleteMessage);\nroutes.post('/api/:session/forward-messages', verifyToken, statusConnection, DeviceController.forwardMessages);\nroutes.post('/api/:session/mark-unseen', verifyToken, statusConnection, DeviceController.markUnseenMessage);\nroutes.post('/api/:session/pin-chat', verifyToken, statusConnection, DeviceController.pinChat);\nroutes.post('/api/:session/contact-vcard', verifyToken, statusConnection, DeviceController.sendContactVcard);\nroutes.post('/api/:session/send-mute', verifyToken, statusConnection, DeviceController.sendMute);\nroutes.post('/api/:session/send-seen', verifyToken, statusConnection, DeviceController.sendSeen);\nroutes.post('/api/:session/chat-state', verifyToken, statusConnection, DeviceController.setChatState);\nroutes.post('/api/:session/temporary-messages', verifyToken, statusConnection, DeviceController.setTemporaryMessages);\nroutes.post('/api/:session/typing', verifyToken, statusConnection, DeviceController.setTyping);\nroutes.post('/api/:session/star-message', verifyToken, statusConnection, DeviceController.starMessage);\n\n// Status\nroutes.post('/api/:session/send-text-storie', verifyToken, statusConnection, MessageController.sendTextStorie);\nroutes.post(\n '/api/:session/send-image-storie',\n upload.single('file'),\n verifyToken,\n statusConnection,\n MessageController.sendImageStorie\n);\nroutes.post(\n '/api/:session/send-video-storie',\n upload.single('file'),\n verifyToken,\n statusConnection,\n MessageController.sendVideoStorie\n);\n\n// Contact\nroutes.get(\n '/api/:session/check-number-status/:phone',\n verifyToken,\n statusConnection,\n DeviceController.checkNumberStatus\n);\nroutes.get('/api/:session/all-contacts', verifyToken, statusConnection, DeviceController.getAllContacts);\nroutes.get('/api/:session/contact/:phone', verifyToken, statusConnection, DeviceController.getContact);\nroutes.get('/api/:session/profile/:phone', verifyToken, statusConnection, DeviceController.getNumberProfile);\nroutes.get('/api/:session/profile-pic/:phone', verifyToken, statusConnection, DeviceController.getProfilePicFromServer);\nroutes.get('/api/:session/profile-status/:phone', verifyToken, statusConnection, DeviceController.getStatus);\n\n// Blocklist\nroutes.get('/api/:session/blocklist', verifyToken, statusConnection, DeviceController.getBlockList);\nroutes.post('/api/:session/block-contact', verifyToken, statusConnection, DeviceController.blockContact);\nroutes.post('/api/:session/unblock-contact', verifyToken, statusConnection, DeviceController.unblockContact);\n\n// Device\nroutes.get('/api/:session/get-battery-level', verifyToken, statusConnection, DeviceController.getBatteryLevel);\nroutes.get('/api/:session/host-device', verifyToken, statusConnection, DeviceController.getHostDevice);\n\n// Profile\nroutes.post(\n '/api/:session/profile-pic',\n upload.single('file'),\n verifyToken,\n statusConnection,\n DeviceController.setProfilePic\n);\nroutes.post('/api/:session/profile-status', verifyToken, statusConnection, DeviceController.setProfileStatus);\nroutes.post('/api/:session/change-username', verifyToken, statusConnection, DeviceController.setProfileName);\n\n// Business\nroutes.get(\n '/api/:session/get-business-profiles-products',\n verifyToken,\n statusConnection,\n OrderController.getBusinessProfilesProducts\n);\nroutes.get('/api/:session/get-order-by-messageId', verifyToken, statusConnection, OrderController.getOrderbyMsg);\n\nroutes.post('/api/:session/chatwoot', DeviceController.chatWoot);\n\n// Api Doc\nroutes.use('/api-docs', swaggerUi.serve);\nroutes.get('/api-docs', swaggerUi.setup(swaggerDocument));\n\n//k8s\nroutes.get('/healthz', HealthCheck.healthz);\nroutes.get('/unhealthy', HealthCheck.unhealthy);\n\nexport default routes;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/routes/index.js"],"names":["upload","uploadConfig","routes","Router","post","encryptSession","get","SessionController","showAllSessions","startAllSessions","verifyToken","checkConnectionSession","getMediaByMessage","getSessionState","getQrCode","startSession","statusConnection","logOutSession","closeSession","subscribePresence","downloadMediaByMessage","killServiceWorker","restartService","MessageController","sendMessage","single","sendImage","replyMessage","sendFile","sendFile64","sendVoice","sendVoice64","sendStatusText","sendLinkPreview","sendLocation","sendMentioned","sendButtons","sendButtonsList","GroupController","getAllBroadcastList","getAllGroups","getGroupMembers","getGroupAdmins","getGroupInviteLink","revokeGroupInviteLink","getGroupMembersIds","createGroup","leaveGroup","joinGroupByCode","addParticipant","removeParticipant","promoteParticipant","demoteParticipant","getGroupInfoFromInviteLink","setGroupDescription","setGroupProperty","setGroupSubject","setMessagesAdminsOnly","setGroupProfilePic","changePrivacyGroup","DeviceController","getAllChats","getAllChatsWithMessages","getAllMessagesInChat","getAllNewMessages","getUnreadMessages","getAllUnreadMessages","getChatById","getMessageById","getChatIsOnline","getLastSeen","getListMutes","loadAndGetAllMessagesInChat","loadEarlierMessages","archiveChat","clearChat","deleteChat","deleteMessage","forwardMessages","markUnseenMessage","pinChat","sendContactVcard","sendMute","sendSeen","setChatState","setTemporaryMessages","setTyping","starMessage","sendTextStorie","sendImageStorie","sendVideoStorie","checkNumberStatus","getAllContacts","getContact","getNumberProfile","getProfilePicFromServer","getStatus","getBlockList","blockContact","unblockContact","getBatteryLevel","getHostDevice","getPhoneNumber","setProfilePic","setProfileStatus","setProfileName","OrderController","getBusinessProfilesProducts","getOrderbyMsg","chatWoot","use","swaggerUi","serve","setup","swaggerDocument","HealthCheck","healthz","unhealthy"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Router } from 'express';\nimport { encryptSession } from '../controller/encryptController';\nimport * as MessageController from '../controller/messageController';\nimport * as GroupController from '../controller/groupController';\nimport * as DeviceController from '../controller/deviceController';\nimport * as SessionController from '../controller/sessionController';\nimport * as OrderController from '../controller/orderController';\nimport * as HealthCheck from '../middleware/healthCheck';\nimport verifyToken from '../middleware/auth';\nimport statusConnection from '../middleware/statusConnection';\nimport multer from 'multer';\nimport uploadConfig from '../config/upload';\nimport swaggerUi from 'swagger-ui-express';\nimport swaggerDocument from '../swagger.json';\nimport { sendButtonsList } from '../controller/messageController';\n\nconst upload = multer(uploadConfig);\nconst routes = new Router();\n\n// Generate Token\nroutes.post('/api/:session/:secretkey/generate-token', encryptSession);\n\n// All Sessions\nroutes.get('/api/:secretkey/show-all-sessions', SessionController.showAllSessions);\nroutes.post('/api/:secretkey/start-all', SessionController.startAllSessions);\n\n// Sessions\nroutes.get('/api/:session/check-connection-session', verifyToken, SessionController.checkConnectionSession);\nroutes.get('/api/:session/get-media-by-message/:messageId', verifyToken, SessionController.getMediaByMessage);\nroutes.get('/api/:session/status-session', verifyToken, SessionController.getSessionState);\nroutes.get('/api/:session/qrcode-session', verifyToken, SessionController.getQrCode);\nroutes.post('/api/:session/start-session', verifyToken, SessionController.startSession);\nroutes.post('/api/:session/logout-session', verifyToken, statusConnection, SessionController.logOutSession);\nroutes.post('/api/:session/close-session', verifyToken, SessionController.closeSession);\nroutes.post('/api/:session/subscribe-presence', verifyToken, SessionController.subscribePresence);\nroutes.post('/api/:session/download-media', verifyToken, statusConnection, SessionController.downloadMediaByMessage);\nroutes.post('/api/:session/kill-service-workier', verifyToken, statusConnection, SessionController.killServiceWorker);\nroutes.post('/api/:session/restart-service', verifyToken, statusConnection, SessionController.restartService);\n\n// Messages\nroutes.post('/api/:session/send-message', verifyToken, statusConnection, MessageController.sendMessage);\nroutes.post(\n '/api/:session/send-image',\n upload.single('file'),\n verifyToken,\n statusConnection,\n MessageController.sendImage\n);\nroutes.post('/api/:session/send-reply', verifyToken, statusConnection, MessageController.replyMessage);\nroutes.post(\n '/api/:session/send-file',\n upload.single('file'),\n verifyToken,\n statusConnection,\n MessageController.sendFile\n);\nroutes.post('/api/:session/send-file-base64', verifyToken, statusConnection, MessageController.sendFile64);\nroutes.post('/api/:session/send-voice', verifyToken, statusConnection, MessageController.sendVoice);\nroutes.post('/api/:session/send-voice-base64', verifyToken, statusConnection, MessageController.sendVoice64);\nroutes.post('/api/:session/send-status', verifyToken, statusConnection, MessageController.sendStatusText);\nroutes.post('/api/:session/send-link-preview', verifyToken, statusConnection, MessageController.sendLinkPreview);\nroutes.post('/api/:session/send-location', verifyToken, statusConnection, MessageController.sendLocation);\nroutes.post('/api/:session/send-mentioned', verifyToken, statusConnection, MessageController.sendMentioned);\nroutes.post('/api/:session/send-buttons', verifyToken, statusConnection, MessageController.sendButtons);\nroutes.post('/api/:session/send-buttons-list', verifyToken, statusConnection, MessageController.sendButtonsList);\n\n// Group\nroutes.get('/api/:session/all-broadcast-list', verifyToken, statusConnection, GroupController.getAllBroadcastList);\nroutes.get('/api/:session/all-groups', verifyToken, statusConnection, GroupController.getAllGroups);\nroutes.get('/api/:session/group-members/:groupId', verifyToken, statusConnection, GroupController.getGroupMembers);\nroutes.get('/api/:session/group-admins/:groupId', verifyToken, statusConnection, GroupController.getGroupAdmins);\nroutes.get(\n '/api/:session/group-invite-link/:groupId',\n verifyToken,\n statusConnection,\n GroupController.getGroupInviteLink\n);\nroutes.get(\n '/api/:session/group-revoke-link/:groupId',\n verifyToken,\n statusConnection,\n GroupController.revokeGroupInviteLink\n);\nroutes.get(\n '/api/:session/group-members-ids/:groupId',\n verifyToken,\n statusConnection,\n GroupController.getGroupMembersIds\n);\nroutes.post('/api/:session/create-group', verifyToken, statusConnection, GroupController.createGroup);\nroutes.post('/api/:session/leave-group', verifyToken, statusConnection, GroupController.leaveGroup);\nroutes.post('/api/:session/join-code', verifyToken, statusConnection, GroupController.joinGroupByCode);\nroutes.post('/api/:session/add-participant-group', verifyToken, statusConnection, GroupController.addParticipant);\nroutes.post('/api/:session/remove-participant-group', verifyToken, statusConnection, GroupController.removeParticipant);\nroutes.post(\n '/api/:session/promote-participant-group',\n verifyToken,\n statusConnection,\n GroupController.promoteParticipant\n);\nroutes.post('/api/:session/demote-participant-group', verifyToken, statusConnection, GroupController.demoteParticipant);\nroutes.post(\n '/api/:session/group-info-from-invite-link',\n verifyToken,\n statusConnection,\n GroupController.getGroupInfoFromInviteLink\n);\nroutes.post('/api/:session/group-description', verifyToken, statusConnection, GroupController.setGroupDescription);\nroutes.post('/api/:session/group-property', verifyToken, statusConnection, GroupController.setGroupProperty);\nroutes.post('/api/:session/group-subject', verifyToken, statusConnection, GroupController.setGroupSubject);\nroutes.post('/api/:session/messages-admins-only', verifyToken, statusConnection, GroupController.setMessagesAdminsOnly);\nroutes.post(\n '/api/:session/group-pic',\n upload.single('file'),\n verifyToken,\n statusConnection,\n GroupController.setGroupProfilePic\n);\nroutes.post('/api/:session/change-privacy-group', verifyToken, statusConnection, GroupController.changePrivacyGroup);\n\n// Chat\nroutes.get('/api/:session/all-chats', verifyToken, statusConnection, DeviceController.getAllChats);\nroutes.get(\n '/api/:session/all-chats-with-messages',\n verifyToken,\n statusConnection,\n DeviceController.getAllChatsWithMessages\n);\nroutes.get(\n '/api/:session/all-messages-in-chat/:phone',\n verifyToken,\n statusConnection,\n DeviceController.getAllMessagesInChat\n);\nroutes.get('/api/:session/all-new-messages', verifyToken, statusConnection, DeviceController.getAllNewMessages);\nroutes.get('/api/:session/unread-messages', verifyToken, statusConnection, DeviceController.getUnreadMessages);\nroutes.get('/api/:session/all-unread-messages', verifyToken, statusConnection, DeviceController.getAllUnreadMessages);\nroutes.get('/api/:session/chat-by-id/:phone', verifyToken, statusConnection, DeviceController.getChatById);\nroutes.get('/api/:session/message-by-id/:messageId', verifyToken, statusConnection, DeviceController.getMessageById);\nroutes.get('/api/:session/chat-is-online/:phone', verifyToken, statusConnection, DeviceController.getChatIsOnline);\nroutes.get('/api/:session/last-seen/:phone', verifyToken, statusConnection, DeviceController.getLastSeen);\nroutes.get('/api/:session/list-mutes/:type', verifyToken, statusConnection, DeviceController.getListMutes);\nroutes.get(\n '/api/:session/load-messages-in-chat/:phone',\n verifyToken,\n statusConnection,\n DeviceController.loadAndGetAllMessagesInChat\n);\nroutes.get(\n '/api/:session/load-earlier-messages/:phone',\n verifyToken,\n statusConnection,\n DeviceController.loadEarlierMessages\n);\nroutes.post('/api/:session/archive-chat', verifyToken, statusConnection, DeviceController.archiveChat);\nroutes.post('/api/:session/clear-chat', verifyToken, statusConnection, DeviceController.clearChat);\nroutes.post('/api/:session/delete-chat', verifyToken, statusConnection, DeviceController.deleteChat);\nroutes.post('/api/:session/delete-message', verifyToken, statusConnection, DeviceController.deleteMessage);\nroutes.post('/api/:session/forward-messages', verifyToken, statusConnection, DeviceController.forwardMessages);\nroutes.post('/api/:session/mark-unseen', verifyToken, statusConnection, DeviceController.markUnseenMessage);\nroutes.post('/api/:session/pin-chat', verifyToken, statusConnection, DeviceController.pinChat);\nroutes.post('/api/:session/contact-vcard', verifyToken, statusConnection, DeviceController.sendContactVcard);\nroutes.post('/api/:session/send-mute', verifyToken, statusConnection, DeviceController.sendMute);\nroutes.post('/api/:session/send-seen', verifyToken, statusConnection, DeviceController.sendSeen);\nroutes.post('/api/:session/chat-state', verifyToken, statusConnection, DeviceController.setChatState);\nroutes.post('/api/:session/temporary-messages', verifyToken, statusConnection, DeviceController.setTemporaryMessages);\nroutes.post('/api/:session/typing', verifyToken, statusConnection, DeviceController.setTyping);\nroutes.post('/api/:session/star-message', verifyToken, statusConnection, DeviceController.starMessage);\n\n// Status\nroutes.post('/api/:session/send-text-storie', verifyToken, statusConnection, MessageController.sendTextStorie);\nroutes.post(\n '/api/:session/send-image-storie',\n upload.single('file'),\n verifyToken,\n statusConnection,\n MessageController.sendImageStorie\n);\nroutes.post(\n '/api/:session/send-video-storie',\n upload.single('file'),\n verifyToken,\n statusConnection,\n MessageController.sendVideoStorie\n);\n\n// Contact\nroutes.get(\n '/api/:session/check-number-status/:phone',\n verifyToken,\n statusConnection,\n DeviceController.checkNumberStatus\n);\nroutes.get('/api/:session/all-contacts', verifyToken, statusConnection, DeviceController.getAllContacts);\nroutes.get('/api/:session/contact/:phone', verifyToken, statusConnection, DeviceController.getContact);\nroutes.get('/api/:session/profile/:phone', verifyToken, statusConnection, DeviceController.getNumberProfile);\nroutes.get('/api/:session/profile-pic/:phone', verifyToken, statusConnection, DeviceController.getProfilePicFromServer);\nroutes.get('/api/:session/profile-status/:phone', verifyToken, statusConnection, DeviceController.getStatus);\n\n// Blocklist\nroutes.get('/api/:session/blocklist', verifyToken, statusConnection, DeviceController.getBlockList);\nroutes.post('/api/:session/block-contact', verifyToken, statusConnection, DeviceController.blockContact);\nroutes.post('/api/:session/unblock-contact', verifyToken, statusConnection, DeviceController.unblockContact);\n\n// Device\nroutes.get('/api/:session/get-battery-level', verifyToken, statusConnection, DeviceController.getBatteryLevel);\nroutes.get('/api/:session/host-device', verifyToken, statusConnection, DeviceController.getHostDevice);\nroutes.get('/api/:session/get-phone-number', verifyToken, statusConnection, DeviceController.getPhoneNumber);\n\n// Profile\nroutes.post(\n '/api/:session/profile-pic',\n upload.single('file'),\n verifyToken,\n statusConnection,\n DeviceController.setProfilePic\n);\nroutes.post('/api/:session/profile-status', verifyToken, statusConnection, DeviceController.setProfileStatus);\nroutes.post('/api/:session/change-username', verifyToken, statusConnection, DeviceController.setProfileName);\n\n// Business\nroutes.get(\n '/api/:session/get-business-profiles-products',\n verifyToken,\n statusConnection,\n OrderController.getBusinessProfilesProducts\n);\nroutes.get('/api/:session/get-order-by-messageId', verifyToken, statusConnection, OrderController.getOrderbyMsg);\n\nroutes.post('/api/:session/chatwoot', DeviceController.chatWoot);\n\n// Api Doc\nroutes.use('/api-docs', swaggerUi.serve);\nroutes.get('/api-docs', swaggerUi.setup(swaggerDocument));\n\n//k8s\nroutes.get('/healthz', HealthCheck.healthz);\nroutes.get('/unhealthy', HealthCheck.unhealthy);\n\nexport default routes;\n"],"file":"index.js"}
|
|
@@ -37,15 +37,17 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
37
37
|
|
|
38
38
|
//assina o evento do qrcode
|
|
39
39
|
_sessionUtil.eventEmitter.on(`qrcode-${session}`, (qrCode, urlCode, client) => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
setTimeout(async () => {
|
|
41
|
+
this.sendMessage(client, {
|
|
42
|
+
sender: this.sender,
|
|
43
|
+
chatId: '',
|
|
44
|
+
type: 'image',
|
|
45
|
+
timestamp: 'qrcode',
|
|
46
|
+
mimetype: 'image/png',
|
|
47
|
+
caption: 'leia o qrCode',
|
|
48
|
+
qrCode: qrCode.replace('data:image/png;base64,', '') });
|
|
49
|
+
|
|
50
|
+
}, 1000);
|
|
49
51
|
});
|
|
50
52
|
|
|
51
53
|
//assiona o evento do status
|
|
@@ -66,7 +68,7 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
66
68
|
async sendMessage(client, message) {
|
|
67
69
|
if (message.isGroupMsg || message.chatId.indexOf('@broadcast') > 0) return;
|
|
68
70
|
let contact = await this.createContact(message);
|
|
69
|
-
let conversation = await this.createConversation(contact, message.
|
|
71
|
+
let conversation = await this.createConversation(contact, message.chatId.split('@')[0]);
|
|
70
72
|
|
|
71
73
|
try {
|
|
72
74
|
if (
|
|
@@ -171,9 +173,9 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
171
173
|
async findConversation(contact) {
|
|
172
174
|
try {
|
|
173
175
|
const { data } = await this.api.get(
|
|
174
|
-
`api/v1/accounts/${this.account_id}/conversations?inbox_id=${this.inbox_id}&status=
|
|
176
|
+
`api/v1/accounts/${this.account_id}/conversations?inbox_id=${this.inbox_id}&status=all`);
|
|
175
177
|
|
|
176
|
-
return data.data.payload.find((e) => e.meta.sender.id == contact.id);
|
|
178
|
+
return data.data.payload.find((e) => e.meta.sender.id == contact.id && e.status != 'resolved');
|
|
177
179
|
} catch (e) {
|
|
178
180
|
console.log(e);
|
|
179
181
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/chatWootClient.js"],"names":["chatWootClient","constructor","config","session","mobile_name","mobile_number","sender","pushname","id","account_id","inbox_id","api","axios","create","baseURL","headers","api_access_token","token","eventEmitter","on","qrCode","urlCode","client","sendMessage","chatId","type","timestamp","mimetype","caption","replace","status","body","message","isGroupMsg","indexOf","contact","createContact","conversation","createConversation","extension","mime","filename","b64","buffer","decryptFile","toString","mediaData","Buffer","from","data","FormData","append","contentType","configPost","Object","assign","getHeaders","result","post","content","message_type","e","findContact","query","get","console","log","name","isMyContact","formattedName","phone_number","user","split","meta","count","payload","findConversation","find","source_id","contact_id"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport axios from 'axios';\nimport { default as FormData } from 'form-data';\nimport mime from 'mime-types';\nimport toStream from 'buffer-to-stream';\nimport { eventEmitter } from './sessionUtil';\n\nexport default class chatWootClient {\n constructor(config, session) {\n this.config = config;\n this.mobile_name = this.config.mobile_name ? this.config.mobile_name : `WPPConnect`;\n this.mobile_number = this.config.mobile_number ? this.config.mobile_number : '5511999999999';\n this.sender = {\n pushname: this.mobile_name,\n id: this.mobile_number,\n };\n this.account_id = this.config.account_id;\n this.inbox_id = this.config.inbox_id;\n this.api = axios.create({\n baseURL: this.config.baseURL,\n headers: { 'Content-Type': 'application/json;charset=utf-8', api_access_token: this.config.token },\n });\n\n //assina o evento do qrcode\n eventEmitter.on(`qrcode-${session}`, (qrCode, urlCode, client) => {\n this.sendMessage(client, {\n sender: this.sender,\n chatId: '',\n type: 'image',\n timestamp: 'qrcode',\n mimetype: 'image/png',\n caption: 'leia o qrCode',\n qrCode: qrCode.replace('data:image/png;base64,', ''),\n });\n });\n\n //assiona o evento do status\n eventEmitter.on(`status-${session}`, (client, status) => {\n this.sendMessage(client, {\n sender: this.sender,\n chatId: '',\n body: `wppconnect status: ${status} `,\n });\n });\n\n //assina o evento de mensagem\n eventEmitter.on(`mensagem-${session}`, (client, message) => {\n this.sendMessage(client, message);\n });\n }\n\n async sendMessage(client, message) {\n if (message.isGroupMsg || message.chatId.indexOf('@broadcast') > 0) return;\n let contact = await this.createContact(message);\n let conversation = await this.createConversation(contact, message.id);\n\n try {\n if (\n message.type == 'image' ||\n message.type == 'video' ||\n message.type == 'in' ||\n message.type == 'document' ||\n message.type == 'ptt' ||\n message.type == 'audio' ||\n message.type == 'sticker'\n ) {\n if (message.mimetype == 'image/webp') message.mimetype = 'image/jpeg';\n const extension = mime.extension(message.mimetype);\n let filename = `${message.timestamp}.${extension}`;\n let b64;\n\n if (message.qrCode) b64 = message.qrCode;\n else {\n let buffer = await client.decryptFile(message);\n b64 = await buffer.toString('base64');\n }\n\n let mediaData = Buffer.from(b64, 'base64');\n\n let data = new FormData();\n if (message.caption) {\n data.append('content', message.caption);\n }\n data.append('attachments[]', toStream(mediaData), {\n filename: filename,\n contentType: message.mimetype,\n });\n data.append('message_type', 'incoming');\n data.append('private', 'false');\n\n let configPost = Object.assign(\n {},\n {\n baseURL: this.config.baseURL,\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n api_access_token: this.config.token,\n },\n }\n );\n configPost.headers = { ...configPost.headers, ...data.getHeaders() };\n\n var result = await axios.post(\n `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,\n data,\n configPost\n );\n\n return result;\n } else {\n let body = {\n content: message.body,\n message_type: 'incoming',\n };\n const { data } = await this.api.post(\n `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,\n body\n );\n return data;\n }\n } catch (e) {\n return null;\n }\n }\n\n async findContact(query) {\n try {\n const { data } = await this.api.get(`api/v1/accounts/${this.account_id}/contacts/search/?q=${query}`);\n return data;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async createContact(message) {\n let body = {\n inbox_id: this.inbox_id,\n name: message.sender.isMyContact\n ? message.sender.formattedName\n : message.sender.pushname || message.sender.formattedName,\n phone_number: typeof message.sender.id == 'object' ? message.sender.id.user : message.sender.id.split('@')[0],\n };\n body.phone_number = `+${body.phone_number}`;\n var contact = await this.findContact(body.phone_number.replace('+', ''));\n if (contact && contact.meta.count > 0) return contact.payload[0];\n\n try {\n const data = await this.api.post(`api/v1/accounts/${this.account_id}/contacts`, body);\n return data.data.payload.contact;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async findConversation(contact) {\n try {\n const { data } = await this.api.get(\n `api/v1/accounts/${this.account_id}/conversations?inbox_id=${this.inbox_id}&status=open`\n );\n return data.data.payload.find((e) => e.meta.sender.id == contact.id);\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async createConversation(contact, source_id) {\n var conversation = await this.findConversation(contact);\n if (conversation) return conversation;\n\n let body = {\n source_id: source_id,\n inbox_id: this.inbox_id,\n contact_id: contact.id,\n status: 'open',\n };\n\n try {\n const { data } = await this.api.post(`api/v1/accounts/${this.account_id}/conversations`, body);\n return data;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n}\n"],"file":"chatWootClient.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/util/chatWootClient.js"],"names":["chatWootClient","constructor","config","session","mobile_name","mobile_number","sender","pushname","id","account_id","inbox_id","api","axios","create","baseURL","headers","api_access_token","token","eventEmitter","on","qrCode","urlCode","client","setTimeout","sendMessage","chatId","type","timestamp","mimetype","caption","replace","status","body","message","isGroupMsg","indexOf","contact","createContact","conversation","createConversation","split","extension","mime","filename","b64","buffer","decryptFile","toString","mediaData","Buffer","from","data","FormData","append","contentType","configPost","Object","assign","getHeaders","result","post","content","message_type","e","findContact","query","get","console","log","name","isMyContact","formattedName","phone_number","user","meta","count","payload","findConversation","find","source_id","contact_id"],"mappings":";;;;;;;;;;;;;;;AAeA;AACA;AACA;AACA;AACA,4C,CAnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAOe,MAAMA,cAAN,CAAqB,CAClCC,WAAW,CAACC,MAAD,EAASC,OAAT,EAAkB,CAC3B,KAAKD,MAAL,GAAcA,MAAd,CACA,KAAKE,WAAL,GAAmB,KAAKF,MAAL,CAAYE,WAAZ,GAA0B,KAAKF,MAAL,CAAYE,WAAtC,GAAqD,YAAxE,CACA,KAAKC,aAAL,GAAqB,KAAKH,MAAL,CAAYG,aAAZ,GAA4B,KAAKH,MAAL,CAAYG,aAAxC,GAAwD,eAA7E,CACA,KAAKC,MAAL,GAAc,EACZC,QAAQ,EAAE,KAAKH,WADH,EAEZI,EAAE,EAAE,KAAKH,aAFG,EAAd,CAIA,KAAKI,UAAL,GAAkB,KAAKP,MAAL,CAAYO,UAA9B,CACA,KAAKC,QAAL,GAAgB,KAAKR,MAAL,CAAYQ,QAA5B,CACA,KAAKC,GAAL,GAAWC,eAAMC,MAAN,CAAa,EACtBC,OAAO,EAAE,KAAKZ,MAAL,CAAYY,OADC;AAEtBC,MAAAA,OAAO,EAAE,EAAE,gBAAgB,gCAAlB,EAAoDC,gBAAgB,EAAE,KAAKd,MAAL,CAAYe,KAAlF,EAFa,EAAb,CAAX;;;AAKA;AACAC,8BAAaC,EAAb,CAAiB,UAAShB,OAAQ,EAAlC,EAAqC,CAACiB,MAAD,EAASC,OAAT,EAAkBC,MAAlB,KAA6B;AAChEC,MAAAA,UAAU,CAAC,YAAY;AACrB,aAAKC,WAAL,CAAiBF,MAAjB,EAAyB;AACvBhB,UAAAA,MAAM,EAAE,KAAKA,MADU;AAEvBmB,UAAAA,MAAM,EAAE,EAFe;AAGvBC,UAAAA,IAAI,EAAE,OAHiB;AAIvBC,UAAAA,SAAS,EAAE,QAJY;AAKvBC,UAAAA,QAAQ,EAAE,WALa;AAMvBC,UAAAA,OAAO,EAAE,eANc;AAOvBT,UAAAA,MAAM,EAAEA,MAAM,CAACU,OAAP,CAAe,wBAAf,EAAyC,EAAzC,CAPe,EAAzB;;AASD,OAVS,EAUP,IAVO,CAAV;AAWD,KAZD;;AAcA;AACAZ,8BAAaC,EAAb,CAAiB,UAAShB,OAAQ,EAAlC,EAAqC,CAACmB,MAAD,EAASS,MAAT,KAAoB;AACvD,WAAKP,WAAL,CAAiBF,MAAjB,EAAyB;AACvBhB,QAAAA,MAAM,EAAE,KAAKA,MADU;AAEvBmB,QAAAA,MAAM,EAAE,EAFe;AAGvBO,QAAAA,IAAI,EAAG,sBAAqBD,MAAO,GAHZ,EAAzB;;AAKD,KAND;;AAQA;AACAb,8BAAaC,EAAb,CAAiB,YAAWhB,OAAQ,EAApC,EAAuC,CAACmB,MAAD,EAASW,OAAT,KAAqB;AAC1D,WAAKT,WAAL,CAAiBF,MAAjB,EAAyBW,OAAzB;AACD,KAFD;AAGD;;AAEgB,QAAXT,WAAW,CAACF,MAAD,EAASW,OAAT,EAAkB;AACjC,QAAIA,OAAO,CAACC,UAAR,IAAsBD,OAAO,CAACR,MAAR,CAAeU,OAAf,CAAuB,YAAvB,IAAuC,CAAjE,EAAoE;AACpE,QAAIC,OAAO,GAAG,MAAM,KAAKC,aAAL,CAAmBJ,OAAnB,CAApB;AACA,QAAIK,YAAY,GAAG,MAAM,KAAKC,kBAAL,CAAwBH,OAAxB,EAAiCH,OAAO,CAACR,MAAR,CAAee,KAAf,CAAqB,GAArB,EAA0B,CAA1B,CAAjC,CAAzB;;AAEA,QAAI;AACF;AACEP,MAAAA,OAAO,CAACP,IAAR,IAAgB,OAAhB;AACAO,MAAAA,OAAO,CAACP,IAAR,IAAgB,OADhB;AAEAO,MAAAA,OAAO,CAACP,IAAR,IAAgB,IAFhB;AAGAO,MAAAA,OAAO,CAACP,IAAR,IAAgB,UAHhB;AAIAO,MAAAA,OAAO,CAACP,IAAR,IAAgB,KAJhB;AAKAO,MAAAA,OAAO,CAACP,IAAR,IAAgB,OALhB;AAMAO,MAAAA,OAAO,CAACP,IAAR,IAAgB,SAPlB;AAQE;AACA,YAAIO,OAAO,CAACL,QAAR,IAAoB,YAAxB,EAAsCK,OAAO,CAACL,QAAR,GAAmB,YAAnB;AACtC,cAAMa,SAAS,GAAGC,mBAAKD,SAAL,CAAeR,OAAO,CAACL,QAAvB,CAAlB;AACA,YAAIe,QAAQ,GAAI,GAAEV,OAAO,CAACN,SAAU,IAAGc,SAAU,EAAjD;AACA,YAAIG,GAAJ;;AAEA,YAAIX,OAAO,CAACb,MAAZ,EAAoBwB,GAAG,GAAGX,OAAO,CAACb,MAAd,CAApB;AACK;AACH,cAAIyB,MAAM,GAAG,MAAMvB,MAAM,CAACwB,WAAP,CAAmBb,OAAnB,CAAnB;AACAW,UAAAA,GAAG,GAAG,MAAMC,MAAM,CAACE,QAAP,CAAgB,QAAhB,CAAZ;AACD;;AAED,YAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYN,GAAZ,EAAiB,QAAjB,CAAhB;;AAEA,YAAIO,IAAI,GAAG,IAAIC,iBAAJ,EAAX;AACA,YAAInB,OAAO,CAACJ,OAAZ,EAAqB;AACnBsB,UAAAA,IAAI,CAACE,MAAL,CAAY,SAAZ,EAAuBpB,OAAO,CAACJ,OAA/B;AACD;AACDsB,QAAAA,IAAI,CAACE,MAAL,CAAY,eAAZ,EAA6B,6BAASL,SAAT,CAA7B,EAAkD;AAChDL,UAAAA,QAAQ,EAAEA,QADsC;AAEhDW,UAAAA,WAAW,EAAErB,OAAO,CAACL,QAF2B,EAAlD;;AAIAuB,QAAAA,IAAI,CAACE,MAAL,CAAY,cAAZ,EAA4B,UAA5B;AACAF,QAAAA,IAAI,CAACE,MAAL,CAAY,SAAZ,EAAuB,OAAvB;;AAEA,YAAIE,UAAU,GAAGC,MAAM,CAACC,MAAP;AACf,UADe;AAEf;AACE3C,UAAAA,OAAO,EAAE,KAAKZ,MAAL,CAAYY,OADvB;AAEEC,UAAAA,OAAO,EAAE;AACP,4BAAgB,gCADT;AAEPC,YAAAA,gBAAgB,EAAE,KAAKd,MAAL,CAAYe,KAFvB,EAFX,EAFe,CAAjB;;;;AAUAsC,QAAAA,UAAU,CAACxC,OAAX,GAAqB,EAAE,GAAGwC,UAAU,CAACxC,OAAhB,EAAyB,GAAGoC,IAAI,CAACO,UAAL,EAA5B,EAArB;;AAEA,YAAIC,MAAM,GAAG,MAAM/C,eAAMgD,IAAN;AAChB,2BAAkB,KAAKnD,UAAW,kBAAiB6B,YAAY,CAAC9B,EAAG,WADnD;AAEjB2C,QAAAA,IAFiB;AAGjBI,QAAAA,UAHiB,CAAnB;;;AAMA,eAAOI,MAAP;AACD,OApDD,MAoDO;AACL,YAAI3B,IAAI,GAAG;AACT6B,UAAAA,OAAO,EAAE5B,OAAO,CAACD,IADR;AAET8B,UAAAA,YAAY,EAAE,UAFL,EAAX;;AAIA,cAAM,EAAEX,IAAF,KAAW,MAAM,KAAKxC,GAAL,CAASiD,IAAT;AACpB,2BAAkB,KAAKnD,UAAW,kBAAiB6B,YAAY,CAAC9B,EAAG,WAD/C;AAErBwB,QAAAA,IAFqB,CAAvB;;AAIA,eAAOmB,IAAP;AACD;AACF,KAhED,CAgEE,OAAOY,CAAP,EAAU;AACV,aAAO,IAAP;AACD;AACF;;AAEgB,QAAXC,WAAW,CAACC,KAAD,EAAQ;AACvB,QAAI;AACF,YAAM,EAAEd,IAAF,KAAW,MAAM,KAAKxC,GAAL,CAASuD,GAAT,CAAc,mBAAkB,KAAKzD,UAAW,uBAAsBwD,KAAM,EAA5E,CAAvB;AACA,aAAOd,IAAP;AACD,KAHD,CAGE,OAAOY,CAAP,EAAU;AACVI,MAAAA,OAAO,CAACC,GAAR,CAAYL,CAAZ;AACA,aAAO,IAAP;AACD;AACF;;AAEkB,QAAb1B,aAAa,CAACJ,OAAD,EAAU;AAC3B,QAAID,IAAI,GAAG;AACTtB,MAAAA,QAAQ,EAAE,KAAKA,QADN;AAET2D,MAAAA,IAAI,EAAEpC,OAAO,CAAC3B,MAAR,CAAegE,WAAf;AACFrC,MAAAA,OAAO,CAAC3B,MAAR,CAAeiE,aADb;AAEFtC,MAAAA,OAAO,CAAC3B,MAAR,CAAeC,QAAf,IAA2B0B,OAAO,CAAC3B,MAAR,CAAeiE,aAJrC;AAKTC,MAAAA,YAAY,EAAE,OAAOvC,OAAO,CAAC3B,MAAR,CAAeE,EAAtB,IAA4B,QAA5B,GAAuCyB,OAAO,CAAC3B,MAAR,CAAeE,EAAf,CAAkBiE,IAAzD,GAAgExC,OAAO,CAAC3B,MAAR,CAAeE,EAAf,CAAkBgC,KAAlB,CAAwB,GAAxB,EAA6B,CAA7B,CALrE,EAAX;;AAOAR,IAAAA,IAAI,CAACwC,YAAL,GAAqB,IAAGxC,IAAI,CAACwC,YAAa,EAA1C;AACA,QAAIpC,OAAO,GAAG,MAAM,KAAK4B,WAAL,CAAiBhC,IAAI,CAACwC,YAAL,CAAkB1C,OAAlB,CAA0B,GAA1B,EAA+B,EAA/B,CAAjB,CAApB;AACA,QAAIM,OAAO,IAAIA,OAAO,CAACsC,IAAR,CAAaC,KAAb,GAAqB,CAApC,EAAuC,OAAOvC,OAAO,CAACwC,OAAR,CAAgB,CAAhB,CAAP;;AAEvC,QAAI;AACF,YAAMzB,IAAI,GAAG,MAAM,KAAKxC,GAAL,CAASiD,IAAT,CAAe,mBAAkB,KAAKnD,UAAW,WAAjD,EAA6DuB,IAA7D,CAAnB;AACA,aAAOmB,IAAI,CAACA,IAAL,CAAUyB,OAAV,CAAkBxC,OAAzB;AACD,KAHD,CAGE,OAAO2B,CAAP,EAAU;AACVI,MAAAA,OAAO,CAACC,GAAR,CAAYL,CAAZ;AACA,aAAO,IAAP;AACD;AACF;;AAEqB,QAAhBc,gBAAgB,CAACzC,OAAD,EAAU;AAC9B,QAAI;AACF,YAAM,EAAEe,IAAF,KAAW,MAAM,KAAKxC,GAAL,CAASuD,GAAT;AACpB,yBAAkB,KAAKzD,UAAW,2BAA0B,KAAKC,QAAS,aADtD,CAAvB;;AAGA,aAAOyC,IAAI,CAACA,IAAL,CAAUyB,OAAV,CAAkBE,IAAlB,CAAuB,CAACf,CAAD,KAAOA,CAAC,CAACW,IAAF,CAAOpE,MAAP,CAAcE,EAAd,IAAoB4B,OAAO,CAAC5B,EAA5B,IAAkCuD,CAAC,CAAChC,MAAF,IAAY,UAA5E,CAAP;AACD,KALD,CAKE,OAAOgC,CAAP,EAAU;AACVI,MAAAA,OAAO,CAACC,GAAR,CAAYL,CAAZ;AACA,aAAO,IAAP;AACD;AACF;;AAEuB,QAAlBxB,kBAAkB,CAACH,OAAD,EAAU2C,SAAV,EAAqB;AAC3C,QAAIzC,YAAY,GAAG,MAAM,KAAKuC,gBAAL,CAAsBzC,OAAtB,CAAzB;AACA,QAAIE,YAAJ,EAAkB,OAAOA,YAAP;;AAElB,QAAIN,IAAI,GAAG;AACT+C,MAAAA,SAAS,EAAEA,SADF;AAETrE,MAAAA,QAAQ,EAAE,KAAKA,QAFN;AAGTsE,MAAAA,UAAU,EAAE5C,OAAO,CAAC5B,EAHX;AAITuB,MAAAA,MAAM,EAAE,MAJC,EAAX;;;AAOA,QAAI;AACF,YAAM,EAAEoB,IAAF,KAAW,MAAM,KAAKxC,GAAL,CAASiD,IAAT,CAAe,mBAAkB,KAAKnD,UAAW,gBAAjD,EAAkEuB,IAAlE,CAAvB;AACA,aAAOmB,IAAP;AACD,KAHD,CAGE,OAAOY,CAAP,EAAU;AACVI,MAAAA,OAAO,CAACC,GAAR,CAAYL,CAAZ;AACA,aAAO,IAAP;AACD;AACF,GArLiC,C","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport axios from 'axios';\nimport { default as FormData } from 'form-data';\nimport mime from 'mime-types';\nimport toStream from 'buffer-to-stream';\nimport { eventEmitter } from './sessionUtil';\n\nexport default class chatWootClient {\n constructor(config, session) {\n this.config = config;\n this.mobile_name = this.config.mobile_name ? this.config.mobile_name : `WPPConnect`;\n this.mobile_number = this.config.mobile_number ? this.config.mobile_number : '5511999999999';\n this.sender = {\n pushname: this.mobile_name,\n id: this.mobile_number,\n };\n this.account_id = this.config.account_id;\n this.inbox_id = this.config.inbox_id;\n this.api = axios.create({\n baseURL: this.config.baseURL,\n headers: { 'Content-Type': 'application/json;charset=utf-8', api_access_token: this.config.token },\n });\n\n //assina o evento do qrcode\n eventEmitter.on(`qrcode-${session}`, (qrCode, urlCode, client) => {\n setTimeout(async () => {\n this.sendMessage(client, {\n sender: this.sender,\n chatId: '',\n type: 'image',\n timestamp: 'qrcode',\n mimetype: 'image/png',\n caption: 'leia o qrCode',\n qrCode: qrCode.replace('data:image/png;base64,', ''),\n });\n }, 1000);\n });\n\n //assiona o evento do status\n eventEmitter.on(`status-${session}`, (client, status) => {\n this.sendMessage(client, {\n sender: this.sender,\n chatId: '',\n body: `wppconnect status: ${status} `,\n });\n });\n\n //assina o evento de mensagem\n eventEmitter.on(`mensagem-${session}`, (client, message) => {\n this.sendMessage(client, message);\n });\n }\n\n async sendMessage(client, message) {\n if (message.isGroupMsg || message.chatId.indexOf('@broadcast') > 0) return;\n let contact = await this.createContact(message);\n let conversation = await this.createConversation(contact, message.chatId.split('@')[0]);\n\n try {\n if (\n message.type == 'image' ||\n message.type == 'video' ||\n message.type == 'in' ||\n message.type == 'document' ||\n message.type == 'ptt' ||\n message.type == 'audio' ||\n message.type == 'sticker'\n ) {\n if (message.mimetype == 'image/webp') message.mimetype = 'image/jpeg';\n const extension = mime.extension(message.mimetype);\n let filename = `${message.timestamp}.${extension}`;\n let b64;\n\n if (message.qrCode) b64 = message.qrCode;\n else {\n let buffer = await client.decryptFile(message);\n b64 = await buffer.toString('base64');\n }\n\n let mediaData = Buffer.from(b64, 'base64');\n\n let data = new FormData();\n if (message.caption) {\n data.append('content', message.caption);\n }\n data.append('attachments[]', toStream(mediaData), {\n filename: filename,\n contentType: message.mimetype,\n });\n data.append('message_type', 'incoming');\n data.append('private', 'false');\n\n let configPost = Object.assign(\n {},\n {\n baseURL: this.config.baseURL,\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n api_access_token: this.config.token,\n },\n }\n );\n configPost.headers = { ...configPost.headers, ...data.getHeaders() };\n\n var result = await axios.post(\n `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,\n data,\n configPost\n );\n\n return result;\n } else {\n let body = {\n content: message.body,\n message_type: 'incoming',\n };\n const { data } = await this.api.post(\n `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,\n body\n );\n return data;\n }\n } catch (e) {\n return null;\n }\n }\n\n async findContact(query) {\n try {\n const { data } = await this.api.get(`api/v1/accounts/${this.account_id}/contacts/search/?q=${query}`);\n return data;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async createContact(message) {\n let body = {\n inbox_id: this.inbox_id,\n name: message.sender.isMyContact\n ? message.sender.formattedName\n : message.sender.pushname || message.sender.formattedName,\n phone_number: typeof message.sender.id == 'object' ? message.sender.id.user : message.sender.id.split('@')[0],\n };\n body.phone_number = `+${body.phone_number}`;\n var contact = await this.findContact(body.phone_number.replace('+', ''));\n if (contact && contact.meta.count > 0) return contact.payload[0];\n\n try {\n const data = await this.api.post(`api/v1/accounts/${this.account_id}/contacts`, body);\n return data.data.payload.contact;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async findConversation(contact) {\n try {\n const { data } = await this.api.get(\n `api/v1/accounts/${this.account_id}/conversations?inbox_id=${this.inbox_id}&status=all`\n );\n return data.data.payload.find((e) => e.meta.sender.id == contact.id && e.status != 'resolved');\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async createConversation(contact, source_id) {\n var conversation = await this.findConversation(contact);\n if (conversation) return conversation;\n\n let body = {\n source_id: source_id,\n inbox_id: this.inbox_id,\n contact_id: contact.id,\n status: 'open',\n };\n\n try {\n const { data } = await this.api.post(`api/v1/accounts/${this.account_id}/conversations`, body);\n return data;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n}\n"],"file":"chatWootClient.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wppconnect/server",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.16",
|
|
4
4
|
"description": "Projeto feito para autenticar a automomacao do WhatsappWeb com multi-clientes de forma dinamica. Backend feito em Nodejs(express, socketio), FrontEnd (ReactJS)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"author": "kingaspx",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@wppconnect-team/wppconnect": "^1.
|
|
32
|
+
"@wppconnect-team/wppconnect": "^1.12.1",
|
|
33
33
|
"axios": "^0.24.0",
|
|
34
34
|
"bcrypt": "^5.0.1",
|
|
35
35
|
"cors": "^2.8.5",
|
|
36
|
-
"dotenv": "^
|
|
36
|
+
"dotenv": "^11.0.0",
|
|
37
37
|
"express": "^4.17.1",
|
|
38
38
|
"form-data": "^4.0.0",
|
|
39
39
|
"express-query-boolean": "^2.0.0",
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"@babel/node": "^7.0.0",
|
|
54
54
|
"@babel/plugin-transform-runtime": "^7.14.5",
|
|
55
55
|
"@babel/preset-env": "^7.14.5",
|
|
56
|
-
"@commitlint/cli": "^
|
|
57
|
-
"@commitlint/config-conventional": "^
|
|
58
|
-
"@commitlint/cz-commitlint": "^
|
|
56
|
+
"@commitlint/cli": "^16.0.0",
|
|
57
|
+
"@commitlint/config-conventional": "^16.0.0",
|
|
58
|
+
"@commitlint/cz-commitlint": "^16.0.0",
|
|
59
59
|
"aws-sdk": "^2.903.0",
|
|
60
60
|
"commitizen": "^4.2.4",
|
|
61
61
|
"conventional-changelog-cli": "^2.1.1",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"nodemon": "^2.0.7",
|
|
70
70
|
"prettier": "^2.3.1",
|
|
71
71
|
"pretty-quick": "^3.1.0",
|
|
72
|
-
"redis": "^
|
|
72
|
+
"redis": "^4.0.0",
|
|
73
73
|
"release-it": "^14.8.0",
|
|
74
74
|
"rimraf": "^3.0.2",
|
|
75
75
|
"shx": "^0.3.3",
|
|
@@ -79,6 +79,6 @@
|
|
|
79
79
|
"aws-sdk": "^2.903.0",
|
|
80
80
|
"crypto-js": "^4.0.0",
|
|
81
81
|
"mongoose": "^6.0.0",
|
|
82
|
-
"redis": "^
|
|
82
|
+
"redis": "^4.0.0"
|
|
83
83
|
}
|
|
84
84
|
}
|