@wppconnect/server 1.1.10 → 1.1.14

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 CHANGED
@@ -1,3 +1,19 @@
1
+ ## 1.1.14 (2021-12-21)
2
+
3
+
4
+
5
+ ## 1.1.13 (2021-12-09)
6
+
7
+
8
+
9
+ ## 1.1.12 (2021-12-09)
10
+
11
+
12
+
13
+ ## 1.1.11 (2021-11-16)
14
+
15
+
16
+
1
17
  ## 1.1.10 (2021-11-12)
2
18
 
3
19
 
@@ -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
- return res.status(200).json({ status: 'success', response: response, mapper: 'device' });
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"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.replyMessage = replyMessage;exports.sendButtons = sendButtons;exports.sendButtonsList = sendButtonsList;exports.sendFile = sendFile;exports.sendFile64 = sendFile64;exports.sendImage = sendImage;exports.sendImageStorie = sendImageStorie;exports.sendLinkPreview = sendLinkPreview;exports.sendLocation = sendLocation;exports.sendMentioned = sendMentioned;exports.sendMessage = sendMessage;exports.sendStatusText = sendStatusText;exports.sendTextStorie = sendTextStorie;exports.sendVideoStorie = sendVideoStorie;exports.sendVoice = sendVoice;
1
+ "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.replyMessage = replyMessage;exports.sendButtons = sendButtons;exports.sendButtonsList = sendButtonsList;exports.sendFile = sendFile;exports.sendFile64 = sendFile64;exports.sendImage = sendImage;exports.sendImageStorie = sendImageStorie;exports.sendLinkPreview = sendLinkPreview;exports.sendLocation = sendLocation;exports.sendMentioned = sendMentioned;exports.sendMessage = sendMessage;exports.sendStatusText = sendStatusText;exports.sendTextStorie = sendTextStorie;exports.sendVideoStorie = sendVideoStorie;exports.sendVoice = sendVoice;exports.sendVoice64 = sendVoice64;
2
2
 
3
3
 
4
4
 
@@ -58,7 +58,7 @@ async function sendImage(req, res) {
58
58
  }
59
59
 
60
60
  if (results.length === 0) return res.status(400).json('Error sending message');
61
- if (req.file.path) await (0, _functions.unlinkAsync)(pathFile);
61
+ if (req.file) await (0, _functions.unlinkAsync)(pathFile);
62
62
  returnSucess(res, results);
63
63
  } catch (error) {
64
64
  returnError(req, res, error);
@@ -108,6 +108,22 @@ async function sendFile64(req, res) {
108
108
  }
109
109
 
110
110
  async function sendVoice(req, res) {
111
+ const { phone, path, filename = 'Voice Audio', message, quotedMessageId } = req.body;
112
+
113
+ try {
114
+ let results = [];
115
+ for (const contato of phone) {
116
+ results.push(await req.client.sendPtt(contato, path, filename, message, quotedMessageId));
117
+ }
118
+
119
+ if (results.length === 0) return res.status(400).json('Error sending message');
120
+ returnSucess(res, results);
121
+ } catch (error) {
122
+ returnError(req, res, error);
123
+ }
124
+ }
125
+
126
+ async function sendVoice64(req, res) {
111
127
  const { phone, url: base64Ptt } = req.body;
112
128
 
113
129
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controller/messageController.js"],"names":["returnError","req","res","error","logger","status","json","message","returnSucess","data","response","mapper","sendMessage","phone","body","results","contato","push","client","sendText","length","io","emit","sendImage","filename","caption","path","file","send","pathFile","sendFile","sendFile64","base64","sendFileFromBase64","sendVoice","url","base64Ptt","sendPttFromBase64","sendLinkPreview","sendLocation","lat","lng","title","sendButtons","footer","dynamic_reply","buttons","contact","sendMessageOptions","isDynamicReplyButtonsMsg","dynamicReplyButtons","sendButtonsList","buttonText","type","list","listType","description","sections","rows","sendStatusText","replyMessage","messageId","reply","to","sendMentioned","mentioned","sendTextStorie","text","sendImageStorie","sendVideoStorie"],"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 { unlinkAsync } from '../util/functions';\n\nfunction returnError(req, res, error) {\n req.logger.error(error);\n res.status(500).json({ status: 'Error', message: 'Erro ao enviar a mensagem.' });\n}\n\nasync function returnSucess(res, data) {\n res.status(201).json({ status: 'success', response: data, mapper: 'return' });\n}\n\nexport async function sendMessage(req, res) {\n const { phone, message } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendText(contato, message));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n req.io.emit('mensagem-enviada', results);\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendImage(req, res) {\n const { phone, filename = 'image-api.jpg', caption, path } = req.body;\n\n if (!path && !req.file)\n return res.status(401).send({\n message: 'Sending the file is mandatory',\n });\n\n const pathFile = path || req.file.path;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendImage(contato, pathFile, filename, caption));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n if (req.file.path) await unlinkAsync(pathFile);\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendFile(req, res) {\n const { phone, path, filename = 'file', message } = req.body;\n\n if (!path && !req.file)\n return res.status(401).send({\n message: 'Sending the file is mandatory',\n });\n\n const pathFile = path || req.file.path;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendFile(contato, pathFile, filename, message));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n if (req.file) await unlinkAsync(pathFile);\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendFile64(req, res) {\n const { base64, phone, filename = 'file', message } = req.body;\n\n if (!base64) return res.status(401).send({ message: 'The base64 of the file was not informed' });\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendFileFromBase64(contato, base64, filename, message));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendVoice(req, res) {\n const { phone, url: base64Ptt } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendPttFromBase64(contato, base64Ptt, 'Voice Audio'));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendLinkPreview(req, res) {\n const { phone, url, caption } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendLinkPreview(`${contato}`, url, caption));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendLocation(req, res) {\n const { phone, lat, lng, title } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendLocation(contato, lat, lng, title));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendButtons(req, res) {\n const { phone, message = null, title, footer = null, dynamic_reply = true, buttons } = req.body;\n\n try {\n let results = [];\n\n for (const contact of phone) {\n results.push(\n await req.client.sendMessageOptions(contact, message, {\n title: title,\n footer: footer,\n isDynamicReplyButtonsMsg: dynamic_reply,\n dynamicReplyButtons: buttons,\n })\n );\n }\n\n if (results.length === 0) return returnError(req, res, 'Error sending message');\n\n returnSucess(res, phone, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendButtonsList(req, res) {\n const { phone, message = '', title, buttons, buttonText = 'SELECIONE UMA OPÇÃO' } = req.body;\n\n try {\n let results = [];\n\n for (const contact of phone) {\n results.push(\n await req.client.sendMessageOptions(contact, null, {\n type: 'list',\n list: {\n listType: 1,\n title: title,\n description: message,\n buttonText: buttonText,\n sections: [\n {\n rows: buttons,\n },\n ],\n },\n })\n );\n }\n\n if (results.length === 0) return returnError(req, res, 'Error sending list buttons');\n\n returnSucess(res, phone, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendStatusText(req, res) {\n const { message } = req.body;\n\n try {\n let results = [];\n results.push(await req.client.sendText('status@broadcast', message));\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function replyMessage(req, res) {\n const { phone, message, messageId } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.reply(contato, message, messageId));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n req.io.emit('mensagem-enviada', { message: message, to: phone });\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendMentioned(req, res) {\n const { phone, message, mentioned } = req.body;\n\n try {\n let response;\n for (const contato of phone) {\n response = await req.client.sendMentioned(`${contato}`, message, mentioned);\n }\n\n return res.status(201).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 message mentioned' });\n }\n}\n\nexport async function sendTextStorie(req, res) {\n const { text } = req.body;\n\n if (!text)\n return res.status(401).send({\n message: 'Text was not informed',\n });\n\n try {\n let results = [];\n results.push(await req.client.sendText('status@broadcast', text));\n\n if (results.length === 0) return res.status(400).json('Error sending the text of stories');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendImageStorie(req, res) {\n const { path, filename = 'image-storie', caption } = req.body;\n\n if (!path && !req.file)\n return res.status(401).send({\n message: 'Sending the image is mandatory',\n });\n\n const pathFile = path || req.file.path;\n\n try {\n let results = [];\n results.push(await req.client.sendImage('status@broadcast', pathFile, filename, caption));\n\n if (results.length === 0) return res.status(400).json('Error sending the image of stories');\n if (req.file) await unlinkAsync(pathFile);\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendVideoStorie(req, res) {\n const { path, filename = 'video', caption } = req.body;\n\n if (!path && !req.file)\n return res.status(401).send({\n message: 'Sending the Video is mandatory',\n });\n\n const pathFile = path || req.file.path;\n\n try {\n let results = [];\n\n results.push(await req.client.sendFile('status@broadcast', pathFile, filename, caption));\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n if (req.file) await unlinkAsync(pathFile);\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n"],"file":"messageController.js"}
1
+ {"version":3,"sources":["../../src/controller/messageController.js"],"names":["returnError","req","res","error","logger","status","json","message","returnSucess","data","response","mapper","sendMessage","phone","body","results","contato","push","client","sendText","length","io","emit","sendImage","filename","caption","path","file","send","pathFile","sendFile","sendFile64","base64","sendFileFromBase64","sendVoice","quotedMessageId","sendPtt","sendVoice64","url","base64Ptt","sendPttFromBase64","sendLinkPreview","sendLocation","lat","lng","title","sendButtons","footer","dynamic_reply","buttons","contact","sendMessageOptions","isDynamicReplyButtonsMsg","dynamicReplyButtons","sendButtonsList","buttonText","type","list","listType","description","sections","rows","sendStatusText","replyMessage","messageId","reply","to","sendMentioned","mentioned","sendTextStorie","text","sendImageStorie","sendVideoStorie"],"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 { unlinkAsync } from '../util/functions';\n\nfunction returnError(req, res, error) {\n req.logger.error(error);\n res.status(500).json({ status: 'Error', message: 'Erro ao enviar a mensagem.' });\n}\n\nasync function returnSucess(res, data) {\n res.status(201).json({ status: 'success', response: data, mapper: 'return' });\n}\n\nexport async function sendMessage(req, res) {\n const { phone, message } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendText(contato, message));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n req.io.emit('mensagem-enviada', results);\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendImage(req, res) {\n const { phone, filename = 'image-api.jpg', caption, path } = req.body;\n\n if (!path && !req.file)\n return res.status(401).send({\n message: 'Sending the file is mandatory',\n });\n\n const pathFile = path || req.file.path;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendImage(contato, pathFile, filename, caption));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n if (req.file) await unlinkAsync(pathFile);\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendFile(req, res) {\n const { phone, path, filename = 'file', message } = req.body;\n\n if (!path && !req.file)\n return res.status(401).send({\n message: 'Sending the file is mandatory',\n });\n\n const pathFile = path || req.file.path;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendFile(contato, pathFile, filename, message));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n if (req.file) await unlinkAsync(pathFile);\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendFile64(req, res) {\n const { base64, phone, filename = 'file', message } = req.body;\n\n if (!base64) return res.status(401).send({ message: 'The base64 of the file was not informed' });\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendFileFromBase64(contato, base64, filename, message));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendVoice(req, res) {\n const { phone, path, filename = 'Voice Audio', message, quotedMessageId } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendPtt(contato, path, filename, message, quotedMessageId));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendVoice64(req, res) {\n const { phone, url: base64Ptt } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendPttFromBase64(contato, base64Ptt, 'Voice Audio'));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendLinkPreview(req, res) {\n const { phone, url, caption } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendLinkPreview(`${contato}`, url, caption));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendLocation(req, res) {\n const { phone, lat, lng, title } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendLocation(contato, lat, lng, title));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendButtons(req, res) {\n const { phone, message = null, title, footer = null, dynamic_reply = true, buttons } = req.body;\n\n try {\n let results = [];\n\n for (const contact of phone) {\n results.push(\n await req.client.sendMessageOptions(contact, message, {\n title: title,\n footer: footer,\n isDynamicReplyButtonsMsg: dynamic_reply,\n dynamicReplyButtons: buttons,\n })\n );\n }\n\n if (results.length === 0) return returnError(req, res, 'Error sending message');\n\n returnSucess(res, phone, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendButtonsList(req, res) {\n const { phone, message = '', title, buttons, buttonText = 'SELECIONE UMA OPÇÃO' } = req.body;\n\n try {\n let results = [];\n\n for (const contact of phone) {\n results.push(\n await req.client.sendMessageOptions(contact, null, {\n type: 'list',\n list: {\n listType: 1,\n title: title,\n description: message,\n buttonText: buttonText,\n sections: [\n {\n rows: buttons,\n },\n ],\n },\n })\n );\n }\n\n if (results.length === 0) return returnError(req, res, 'Error sending list buttons');\n\n returnSucess(res, phone, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendStatusText(req, res) {\n const { message } = req.body;\n\n try {\n let results = [];\n results.push(await req.client.sendText('status@broadcast', message));\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function replyMessage(req, res) {\n const { phone, message, messageId } = req.body;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.reply(contato, message, messageId));\n }\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n req.io.emit('mensagem-enviada', { message: message, to: phone });\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendMentioned(req, res) {\n const { phone, message, mentioned } = req.body;\n\n try {\n let response;\n for (const contato of phone) {\n response = await req.client.sendMentioned(`${contato}`, message, mentioned);\n }\n\n return res.status(201).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 message mentioned' });\n }\n}\n\nexport async function sendTextStorie(req, res) {\n const { text } = req.body;\n\n if (!text)\n return res.status(401).send({\n message: 'Text was not informed',\n });\n\n try {\n let results = [];\n results.push(await req.client.sendText('status@broadcast', text));\n\n if (results.length === 0) return res.status(400).json('Error sending the text of stories');\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendImageStorie(req, res) {\n const { path, filename = 'image-storie', caption } = req.body;\n\n if (!path && !req.file)\n return res.status(401).send({\n message: 'Sending the image is mandatory',\n });\n\n const pathFile = path || req.file.path;\n\n try {\n let results = [];\n results.push(await req.client.sendImage('status@broadcast', pathFile, filename, caption));\n\n if (results.length === 0) return res.status(400).json('Error sending the image of stories');\n if (req.file) await unlinkAsync(pathFile);\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n\nexport async function sendVideoStorie(req, res) {\n const { path, filename = 'video', caption } = req.body;\n\n if (!path && !req.file)\n return res.status(401).send({\n message: 'Sending the Video is mandatory',\n });\n\n const pathFile = path || req.file.path;\n\n try {\n let results = [];\n\n results.push(await req.client.sendFile('status@broadcast', pathFile, filename, caption));\n\n if (results.length === 0) return res.status(400).json('Error sending message');\n if (req.file) await unlinkAsync(pathFile);\n returnSucess(res, results);\n } catch (error) {\n returnError(req, res, error);\n }\n}\n"],"file":"messageController.js"}
@@ -71,6 +71,7 @@ MessageController.sendFile);
71
71
 
72
72
  routes.post('/api/:session/send-file-base64', _auth.default, _statusConnection.default, MessageController.sendFile64);
73
73
  routes.post('/api/:session/send-voice', _auth.default, _statusConnection.default, MessageController.sendVoice);
74
+ routes.post('/api/:session/send-voice-base64', _auth.default, _statusConnection.default, MessageController.sendVoice64);
74
75
  routes.post('/api/:session/send-status', _auth.default, _statusConnection.default, MessageController.sendStatusText);
75
76
  routes.post('/api/:session/send-link-preview', _auth.default, _statusConnection.default, MessageController.sendLinkPreview);
76
77
  routes.post('/api/:session/send-location', _auth.default, _statusConnection.default, MessageController.sendLocation);
@@ -219,6 +220,7 @@ routes.post('/api/:session/unblock-contact', _auth.default, _statusConnection.de
219
220
  // Device
220
221
  routes.get('/api/:session/get-battery-level', _auth.default, _statusConnection.default, DeviceController.getBatteryLevel);
221
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);
222
224
 
223
225
  // Profile
224
226
  routes.post(
@@ -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","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-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
- this.sendMessage(client, {
41
- sender: this.sender,
42
- chatId: '',
43
- type: 'image',
44
- timestamp: 'qrcode',
45
- mimetype: 'image/png',
46
- caption: 'leia o qrCode',
47
- qrCode: qrCode.replace('data:image/png;base64,', '') });
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
@@ -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=open`);
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","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 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.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=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.10",
3
+ "version": "1.1.14",
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,7 +29,7 @@
29
29
  }
30
30
  },
31
31
  "dependencies": {
32
- "@wppconnect-team/wppconnect": "^1.10.1",
32
+ "@wppconnect-team/wppconnect": "^1.11.1",
33
33
  "axios": "^0.24.0",
34
34
  "bcrypt": "^5.0.1",
35
35
  "cors": "^2.8.5",
@@ -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": "^14.1.0",
57
- "@commitlint/config-conventional": "^14.1.0",
58
- "@commitlint/cz-commitlint": "^14.1.0",
56
+ "@commitlint/cli": "^15.0.0",
57
+ "@commitlint/config-conventional": "^15.0.0",
58
+ "@commitlint/cz-commitlint": "^15.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": "^3.1.2",
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": "^3.1.2"
82
+ "redis": "^4.0.0"
83
83
  }
84
84
  }