@wppconnect/server 1.6.4 → 1.7.0
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 +4 -0
- package/README.md +20 -0
- package/dist/config/upload.js.map +1 -1
- package/dist/controller/catalogController.js +209 -0
- package/dist/controller/catalogController.js.map +1 -0
- package/dist/controller/deviceController.js +7 -7
- package/dist/controller/deviceController.js.map +1 -1
- package/dist/controller/encryptController.js +4 -4
- package/dist/controller/encryptController.js.map +1 -1
- package/dist/controller/groupController.js +25 -20
- package/dist/controller/groupController.js.map +1 -1
- package/dist/controller/labelsController.js +4 -4
- package/dist/controller/labelsController.js.map +1 -1
- package/dist/controller/messageController.js +31 -13
- package/dist/controller/messageController.js.map +1 -1
- package/dist/controller/orderController.js +6 -6
- package/dist/controller/orderController.js.map +1 -1
- package/dist/controller/sessionController.js +35 -28
- package/dist/controller/sessionController.js.map +1 -1
- package/dist/controller/statusController.js +6 -6
- package/dist/controller/statusController.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/mapper/index.js.map +1 -1
- package/dist/mapper/tagone-chat.js +6 -5
- package/dist/mapper/tagone-chat.js.map +1 -1
- package/dist/mapper/tagone-device.js +18 -17
- package/dist/mapper/tagone-device.js.map +1 -1
- package/dist/mapper/tagone-message-document.js +5 -3
- package/dist/mapper/tagone-message-document.js.map +1 -1
- package/dist/mapper/tagone-message-image.js +5 -3
- package/dist/mapper/tagone-message-image.js.map +1 -1
- package/dist/mapper/tagone-message-location.js +2 -1
- package/dist/mapper/tagone-message-location.js.map +1 -1
- package/dist/mapper/tagone-message-video.js +5 -3
- package/dist/mapper/tagone-message-video.js.map +1 -1
- package/dist/mapper/tagone-message.js +8 -7
- package/dist/mapper/tagone-message.js.map +1 -1
- package/dist/mapper/tagone-onack.js +2 -1
- package/dist/mapper/tagone-onack.js.map +1 -1
- package/dist/mapper/tagone-return.js +7 -5
- package/dist/mapper/tagone-return.js.map +1 -1
- package/dist/middleware/auth.js +2 -2
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/healthCheck.js +2 -2
- package/dist/middleware/healthCheck.js.map +1 -1
- package/dist/middleware/statusConnection.js +6 -6
- package/dist/middleware/statusConnection.js.map +1 -1
- package/dist/routes/index.js +22 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/server.js.map +1 -1
- package/dist/swagger.json +67 -1
- package/dist/util/chatWootClient.js +19 -18
- package/dist/util/chatWootClient.js.map +1 -1
- package/dist/util/createSessionUtil.js +10 -9
- package/dist/util/createSessionUtil.js.map +1 -1
- package/dist/util/db/mongodb/db.js +4 -4
- package/dist/util/db/mongodb/db.js.map +1 -1
- package/dist/util/db/redis/db.js +2 -2
- package/dist/util/db/redis/db.js.map +1 -1
- package/dist/util/functions.js +2 -2
- package/dist/util/functions.js.map +1 -1
- package/dist/util/getAllTokens.js.map +1 -1
- package/dist/util/logger.js +4 -4
- package/dist/util/logger.js.map +1 -1
- package/dist/util/sessionUtil.js.map +1 -1
- package/dist/util/tokenStore/factory.js.map +1 -1
- package/dist/util/tokenStore/fileTokenStory.js +2 -2
- package/dist/util/tokenStore/fileTokenStory.js.map +1 -1
- package/dist/util/tokenStore/firebaseTokenStory.js.map +1 -1
- package/dist/util/tokenStore/model/token.js +2 -2
- package/dist/util/tokenStore/model/token.js.map +1 -1
- package/dist/util/tokenStore/mongodbTokenStory.js +2 -2
- package/dist/util/tokenStore/mongodbTokenStory.js.map +1 -1
- package/dist/util/tokenStore/redisTokenStory.js +2 -2
- package/dist/util/tokenStore/redisTokenStory.js.map +1 -1
- package/package.json +15 -14
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -68,6 +68,26 @@ yarn install
|
|
|
68
68
|
npm install
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
+
## Install puppeteer dependencies:
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
sudo apt-get install -y libxshmfence-dev libgbm-dev wget unzip fontconfig locales gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
## Install google chrome
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
|
|
81
|
+
wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
|
82
|
+
|
|
83
|
+
sudo apt-get update
|
|
84
|
+
|
|
85
|
+
sudo apt-get install libappindicator1
|
|
86
|
+
|
|
87
|
+
sudo dpkg -i google-chrome-stable_current_amd64.deb
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
|
|
71
91
|
## Run Server
|
|
72
92
|
|
|
73
93
|
```sh
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","names":["storage","multer","diskStorage","destination","req","file","cb","__dirname","path","resolve","dirname","filename","Date","now","originalname","uploads"],"sources":["../../src/config/upload.js"],"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 path from 'path';\nimport multer from 'multer';\n\nconst storage = multer.diskStorage({\n destination: function (req, file, cb) {\n const __dirname = path.resolve(path.dirname(''));\n cb(null, path.resolve(__dirname, 'uploads'));\n },\n filename: function (req, file, cb) {\n let filename = `wppConnect-${Date.now()}-${file.originalname}`;\n cb(null, filename);\n },\n});\n\nconst uploads = multer({ storage: storage });\nexport default uploads;\n"],"mappings":";;;;;;;;;;;;;;;AAeA;AACA,
|
|
1
|
+
{"version":3,"file":"upload.js","names":["storage","multer","diskStorage","destination","req","file","cb","__dirname","path","resolve","dirname","filename","Date","now","originalname","uploads"],"sources":["../../src/config/upload.js"],"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 path from 'path';\nimport multer from 'multer';\n\nconst storage = multer.diskStorage({\n destination: function (req, file, cb) {\n const __dirname = path.resolve(path.dirname(''));\n cb(null, path.resolve(__dirname, 'uploads'));\n },\n filename: function (req, file, cb) {\n let filename = `wppConnect-${Date.now()}-${file.originalname}`;\n cb(null, filename);\n },\n});\n\nconst uploads = multer({ storage: storage });\nexport default uploads;\n"],"mappings":";;;;;;;;;;;;;;;AAeA;AACA,wDAA4B,CAhB5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAIA,MAAMA,OAAO,GAAGC,eAAM,CAACC,WAAW,CAAC,EACjCC,WAAW,EAAE,UAAUC,GAAG,EAAEC,IAAI,EAAEC,EAAE,EAAE,CACpC,MAAMC,SAAS,GAAGC,aAAI,CAACC,OAAO,CAACD,aAAI,CAACE,OAAO,CAAC,EAAE,CAAC,CAAC,CAChDJ,EAAE,CAAC,IAAI,EAAEE,aAAI,CAACC,OAAO,CAACF,SAAS,EAAE,SAAS,CAAC,CAAC,CAC9C,CAAC,EACDI,QAAQ,EAAE,UAAUP,GAAG,EAAEC,IAAI,EAAEC,EAAE,EAAE,CACjC,IAAIK,QAAQ,GAAI,cAAaC,IAAI,CAACC,GAAG,EAAG,IAAGR,IAAI,CAACS,YAAa,EAAC,CAC9DR,EAAE,CAAC,IAAI,EAAEK,QAAQ,CAAC,CACpB,CAAC,CACH,CAAC,CAAC,CAEF,MAAMI,OAAO,GAAG,IAAAd,eAAM,EAAC,EAAED,OAAO,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,eAC9Be,OAAO"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.addProductImage = addProductImage;exports.changeProductImage = changeProductImage;exports.createCollection = createCollection;exports.delProducts = delProducts;exports.deleteCollection = deleteCollection;exports.editCollection = editCollection;exports.editProduct = editProduct;exports.getCollections = getCollections;exports.getProductById = getProductById;exports.getProducts = getProducts;exports.removeProductImage = removeProductImage;exports.setProductVisibility = setProductVisibility;exports.updateCartEnabled = updateCartEnabled; /*
|
|
2
|
+
* Copyright 2021 WPPConnect Team
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
async function getProducts(req, res) {
|
|
17
|
+
const { phone, qnt } = req.query;
|
|
18
|
+
if (!phone)
|
|
19
|
+
return res.status(401).send({
|
|
20
|
+
message: 'Please send the contact number you wish to return the products.'
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
const result = await req.client.getProducts(phone, qnt);
|
|
25
|
+
res.status(201).json({ status: 'success', response: result });
|
|
26
|
+
} catch (error) {
|
|
27
|
+
res.status(500).json({ status: 'Error', message: 'Error on get products' });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async function getProductById(req, res) {
|
|
32
|
+
const { phone, id } = req.query;
|
|
33
|
+
if (!phone || !id)
|
|
34
|
+
return res.status(401).send({
|
|
35
|
+
message: 'Please send the contact number and productId.'
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
const result = await req.client.getProductById(phone, id);
|
|
40
|
+
res.status(201).json({ status: 'success', response: result });
|
|
41
|
+
} catch (error) {
|
|
42
|
+
res.status(500).json({ status: 'Error', message: 'Error on get product' });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function editProduct(req, res) {
|
|
46
|
+
const { id, options } = req.body;
|
|
47
|
+
if (!id || !options)
|
|
48
|
+
return res.status(401).send({
|
|
49
|
+
message: 'productId or options was not informed'
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
const result = await req.client.editProduct(id, options);
|
|
54
|
+
res.status(201).json({ status: 'success', response: result });
|
|
55
|
+
} catch (error) {
|
|
56
|
+
res.status(500).json({ status: 'Error', message: 'Error on edit product.' });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
async function delProducts(req, res) {
|
|
61
|
+
const { id } = req.body;
|
|
62
|
+
if (!id)
|
|
63
|
+
return res.status(401).send({
|
|
64
|
+
message: 'products Id was not informed'
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
try {
|
|
68
|
+
const result = await req.client.delProducts(id);
|
|
69
|
+
res.status(201).json({ status: 'success', response: result });
|
|
70
|
+
} catch (error) {
|
|
71
|
+
res.status(500).json({ status: 'Error', message: 'Error on delete product.' });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
async function changeProductImage(req, res) {
|
|
76
|
+
const { id, base64 } = req.body;
|
|
77
|
+
if (!id || !base64)
|
|
78
|
+
return res.status(401).send({
|
|
79
|
+
message: 'productId and base64 was not informed'
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
const result = await req.client.changeProductImage(id, base64);
|
|
84
|
+
res.status(201).json({ status: 'success', response: result });
|
|
85
|
+
} catch (error) {
|
|
86
|
+
res.status(500).json({ status: 'Error', message: 'Error on change product image.' });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async function addProductImage(req, res) {
|
|
91
|
+
const { id, base64 } = req.body;
|
|
92
|
+
if (!id || !base64)
|
|
93
|
+
return res.status(401).send({
|
|
94
|
+
message: 'productId and base64 was not informed'
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
try {
|
|
98
|
+
const result = await req.client.addProductImage(id, base64);
|
|
99
|
+
res.status(201).json({ status: 'success', response: result });
|
|
100
|
+
} catch (error) {
|
|
101
|
+
res.status(500).json({ status: 'Error', message: 'Error on add product image.' });
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async function removeProductImage(req, res) {
|
|
106
|
+
const { id, index } = req.body;
|
|
107
|
+
if (!id || !index)
|
|
108
|
+
return res.status(401).send({
|
|
109
|
+
message: 'productId and index image was not informed'
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
try {
|
|
113
|
+
const result = await req.client.addProductImage(id, index);
|
|
114
|
+
res.status(201).json({ status: 'success', response: result });
|
|
115
|
+
} catch (error) {
|
|
116
|
+
res.status(500).json({ status: 'Error', message: 'Error on remove product image.' });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
async function getCollections(req, res) {
|
|
121
|
+
const { phone, qnt, max } = req.query;
|
|
122
|
+
if (!phone)
|
|
123
|
+
return res.status(401).send({
|
|
124
|
+
message: 'phone was not informed'
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
try {
|
|
128
|
+
const result = await req.client.getCollections(phone, qnt, max);
|
|
129
|
+
res.status(201).json({ status: 'success', response: result });
|
|
130
|
+
} catch (error) {
|
|
131
|
+
res.status(500).json({ status: 'Error', message: 'Error on get collections.' });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
async function createCollection(req, res) {
|
|
136
|
+
const { name, products } = req.body;
|
|
137
|
+
if (!name || !products)
|
|
138
|
+
return res.status(401).send({
|
|
139
|
+
message: 'name or products was not informed'
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
try {
|
|
143
|
+
const result = await req.client.createCollection(name, products);
|
|
144
|
+
res.status(201).json({ status: 'success', response: result });
|
|
145
|
+
} catch (error) {
|
|
146
|
+
res.status(500).json({ status: 'Error', message: 'Error on create collection.' });
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
async function editCollection(req, res) {
|
|
151
|
+
const { id, options } = req.body;
|
|
152
|
+
if (!id || !options)
|
|
153
|
+
return res.status(401).send({
|
|
154
|
+
message: 'id or options was not informed'
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
try {
|
|
158
|
+
const result = await req.client.createCollection(id, options);
|
|
159
|
+
res.status(201).json({ status: 'success', response: result });
|
|
160
|
+
} catch (error) {
|
|
161
|
+
res.status(500).json({ status: 'Error', message: 'Error on edit collection.' });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
async function deleteCollection(req, res) {
|
|
166
|
+
const { id } = req.body;
|
|
167
|
+
if (!id)
|
|
168
|
+
return res.status(401).send({
|
|
169
|
+
message: 'id was not informed'
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
try {
|
|
173
|
+
const result = await req.client.deleteCollection(id);
|
|
174
|
+
res.status(201).json({ status: 'success', response: result });
|
|
175
|
+
} catch (error) {
|
|
176
|
+
res.status(500).json({ status: 'Error', message: 'Error on delete collection.' });
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
async function setProductVisibility(req, res) {
|
|
181
|
+
const { id, value } = req.body;
|
|
182
|
+
if (!id || !value)
|
|
183
|
+
return res.status(401).send({
|
|
184
|
+
message: 'product id or value (false, true) was not informed'
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
try {
|
|
188
|
+
const result = await req.client.setProductVisibility(id, value);
|
|
189
|
+
res.status(201).json({ status: 'success', response: result });
|
|
190
|
+
} catch (error) {
|
|
191
|
+
res.status(500).json({ status: 'Error', message: 'Error on set product visibility.' });
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
async function updateCartEnabled(req, res) {
|
|
196
|
+
const { enabled } = req.body;
|
|
197
|
+
if (!enabled)
|
|
198
|
+
return res.status(401).send({
|
|
199
|
+
message: 'enabled (false, true) was not informed'
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
try {
|
|
203
|
+
const result = await req.client.setProductVisibility(enabled);
|
|
204
|
+
res.status(201).json({ status: 'success', response: result });
|
|
205
|
+
} catch (error) {
|
|
206
|
+
res.status(500).json({ status: 'Error', message: 'Error on set enabled cart.' });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=catalogController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalogController.js","names":["getProducts","req","res","phone","qnt","query","status","send","message","result","client","json","response","error","getProductById","id","editProduct","options","body","delProducts","changeProductImage","base64","addProductImage","removeProductImage","index","getCollections","max","createCollection","name","products","editCollection","deleteCollection","setProductVisibility","value","updateCartEnabled","enabled"],"sources":["../../src/controller/catalogController.js"],"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 */\nexport async function getProducts(req, res) {\n const { phone, qnt } = req.query;\n if (!phone)\n return res.status(401).send({\n message: 'Please send the contact number you wish to return the products.',\n });\n\n try {\n const result = await req.client.getProducts(phone, qnt);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on get products' });\n }\n}\n\nexport async function getProductById(req, res) {\n const { phone, id } = req.query;\n if (!phone || !id)\n return res.status(401).send({\n message: 'Please send the contact number and productId.',\n });\n\n try {\n const result = await req.client.getProductById(phone, id);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on get product' });\n }\n}\nexport async function editProduct(req, res) {\n const { id, options } = req.body;\n if (!id || !options)\n return res.status(401).send({\n message: 'productId or options was not informed',\n });\n\n try {\n const result = await req.client.editProduct(id, options);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on edit product.' });\n }\n}\n\nexport async function delProducts(req, res) {\n const { id } = req.body;\n if (!id)\n return res.status(401).send({\n message: 'products Id was not informed',\n });\n\n try {\n const result = await req.client.delProducts(id);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on delete product.' });\n }\n}\n\nexport async function changeProductImage(req, res) {\n const { id, base64 } = req.body;\n if (!id || !base64)\n return res.status(401).send({\n message: 'productId and base64 was not informed',\n });\n\n try {\n const result = await req.client.changeProductImage(id, base64);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on change product image.' });\n }\n}\n\nexport async function addProductImage(req, res) {\n const { id, base64 } = req.body;\n if (!id || !base64)\n return res.status(401).send({\n message: 'productId and base64 was not informed',\n });\n\n try {\n const result = await req.client.addProductImage(id, base64);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on add product image.' });\n }\n}\n\nexport async function removeProductImage(req, res) {\n const { id, index } = req.body;\n if (!id || !index)\n return res.status(401).send({\n message: 'productId and index image was not informed',\n });\n\n try {\n const result = await req.client.addProductImage(id, index);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on remove product image.' });\n }\n}\n\nexport async function getCollections(req, res) {\n const { phone, qnt, max } = req.query;\n if (!phone)\n return res.status(401).send({\n message: 'phone was not informed',\n });\n\n try {\n const result = await req.client.getCollections(phone, qnt, max);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on get collections.' });\n }\n}\n\nexport async function createCollection(req, res) {\n const { name, products } = req.body;\n if (!name || !products)\n return res.status(401).send({\n message: 'name or products was not informed',\n });\n\n try {\n const result = await req.client.createCollection(name, products);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on create collection.' });\n }\n}\n\nexport async function editCollection(req, res) {\n const { id, options } = req.body;\n if (!id || !options)\n return res.status(401).send({\n message: 'id or options was not informed',\n });\n\n try {\n const result = await req.client.createCollection(id, options);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on edit collection.' });\n }\n}\n\nexport async function deleteCollection(req, res) {\n const { id } = req.body;\n if (!id)\n return res.status(401).send({\n message: 'id was not informed',\n });\n\n try {\n const result = await req.client.deleteCollection(id);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on delete collection.' });\n }\n}\n\nexport async function setProductVisibility(req, res) {\n const { id, value } = req.body;\n if (!id || !value)\n return res.status(401).send({\n message: 'product id or value (false, true) was not informed',\n });\n\n try {\n const result = await req.client.setProductVisibility(id, value);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on set product visibility.' });\n }\n}\n\nexport async function updateCartEnabled(req, res) {\n const { enabled } = req.body;\n if (!enabled)\n return res.status(401).send({\n message: 'enabled (false, true) was not informed',\n });\n\n try {\n const result = await req.client.setProductVisibility(enabled);\n res.status(201).json({ status: 'success', response: result });\n } catch (error) {\n res.status(500).json({ status: 'Error', message: 'Error on set enabled cart.' });\n }\n}\n"],"mappings":"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"}
|
|
@@ -38,9 +38,9 @@ var _sessionUtil = require("../util/sessionUtil"); /*
|
|
|
38
38
|
response: {
|
|
39
39
|
message: 'Error retrieving information',
|
|
40
40
|
session: session,
|
|
41
|
-
log: error
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
log: error
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
async function setProfileName(req, res) {
|
|
@@ -488,8 +488,8 @@ async function getMessages(req, res) {
|
|
|
488
488
|
const response = await req.client.getMessages(`${phone}`, {
|
|
489
489
|
count: parseInt(count),
|
|
490
490
|
direction: direction.toString(),
|
|
491
|
-
id: id
|
|
492
|
-
|
|
491
|
+
id: id
|
|
492
|
+
});
|
|
493
493
|
return res.status(200).json({ status: 'success', response: response });
|
|
494
494
|
} catch (e) {
|
|
495
495
|
req.logger.error(e);
|
|
@@ -742,8 +742,8 @@ async function chatWoot(req, res) {
|
|
|
742
742
|
const {
|
|
743
743
|
message_type,
|
|
744
744
|
phone = req.body.conversation.meta.sender.phone_number.replace('+', ''),
|
|
745
|
-
message = req.body.conversation.messages[0]
|
|
746
|
-
req.body;
|
|
745
|
+
message = req.body.conversation.messages[0]
|
|
746
|
+
} = req.body;
|
|
747
747
|
|
|
748
748
|
if (event != 'message_created' && message_type != 'outgoing') return res.status(200);
|
|
749
749
|
for (const contato of (0, _functions.contactToArray)(phone, false)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"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","contactToArray","getAllNewMessages","getAllUnreadMessages","getChatById","allMessages","dir","fs","existsSync","mkdirSync","map","type","download","serverOptions","host","port","t","mime","extension","mimetype","getMessageById","messageId","chatId","user","getBatteryLevel","getHostDevice","phoneNumber","getWid","getPhoneNumber","getBlockList","blocked","split","deleteChat","results","deleteAllChats","chats","chat","clearChat","clearAllChats","archiveChat","value","archiveAllChats","deleteMessage","reactMessage","msgId","reaction","sendReactionToMessage","reply","text","messageid","forwardMessages","markUnseenMessage","blockContact","unblockContact","pinChat","state","setProfilePic","file","path","pathFile","unlinkAsync","getUnreadMessages","getChatIsOnline","getLastSeen","getListMutes","loadAndGetAllMessagesInChat","getMessages","count","direction","id","parseInt","toString","sendContactVcard","contactsId","sendMute","time","sendSeen","push","setChatState","chatstate","setTemporaryMessages","setTyping","startTyping","stopTyping","setRecording","duration","startRecording","stopRecoring","checkNumberStatus","getContact","getNumberProfile","getProfilePicFromServer","getStatus","setProfileStatus","rejectCall","callId","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"],"sources":["../../src/controller/deviceController.js"],"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/**\n * Depreciado em favor de getMessages\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 } = req.body;\n const session = req.session;\n\n try {\n let results = {};\n for (const contato of phone) {\n results[contato] = await req.client.deleteChat(contato);\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\nexport async function deleteAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.deleteChat(chat.chatId);\n }\n return res.status(200).json({ status: 'success' });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on delete all chats' });\n }\n}\n\nexport async function clearChat(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = {};\n for (const contato of phone) {\n results[contato] = await req.client.clearChat(contato);\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function clearAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.clearChat(`${chat.chatId}`);\n }\n return res.status(201).json({ status: 'success' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on clear all chats' });\n }\n}\n\nexport async function archiveChat(req, res) {\n const { phone, value = true } = req.body;\n\n try {\n let response;\n response = await req.client.archiveChat(`${phone}`, value);\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 archiveAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.archiveChat(`${chat.chatId}`, true);\n }\n return res.status(201).json({ status: 'success' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on archive all chats' });\n }\n}\n\nexport async function deleteMessage(req, res) {\n const { phone, messageId } = req.body;\n\n try {\n await req.client.deleteMessage(`${phone}`, [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}\nexport async function reactMessage(req, res) {\n const { msgId, reaction } = req.body;\n\n try {\n await req.client.sendReactionToMessage(msgId, reaction);\n\n return res.status(200).json({ status: 'success', response: { message: 'Reaction sended' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on send reaction to 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 } = req.body;\n\n try {\n await req.client.markUnseenMessage(`${phone}`);\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 getMessages(req, res) {\n const { phone } = req.params;\n const { count = 20, direction = 'before', id = null } = req.query;\n try {\n const response = await req.client.getMessages(`${phone}`, {\n count: parseInt(count),\n direction: direction.toString(),\n id: id,\n });\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 } = req.body;\n const session = req.session;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendSeen(contato));\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\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 setRecording(req, res) {\n const { phone, value = true, duration, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n if (value) response = await req.client.startRecording(contato, duration);\n else response = await req.client.stopRecoring(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 recording' });\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}\nexport async function rejectCall(req, res) {\n const { callId } = req.body;\n try {\n let response = await req.client.rejectCall(callId);\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 rejectCall' });\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"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","contactToArray","getAllNewMessages","getAllUnreadMessages","getChatById","allMessages","dir","fs","existsSync","mkdirSync","map","type","download","serverOptions","host","port","t","mime","extension","mimetype","getMessageById","messageId","chatId","user","getBatteryLevel","getHostDevice","phoneNumber","getWid","getPhoneNumber","getBlockList","blocked","split","deleteChat","results","deleteAllChats","chats","chat","clearChat","clearAllChats","archiveChat","value","archiveAllChats","deleteMessage","reactMessage","msgId","reaction","sendReactionToMessage","reply","text","messageid","forwardMessages","markUnseenMessage","blockContact","unblockContact","pinChat","state","setProfilePic","file","path","pathFile","unlinkAsync","getUnreadMessages","getChatIsOnline","getLastSeen","getListMutes","loadAndGetAllMessagesInChat","getMessages","count","direction","id","parseInt","toString","sendContactVcard","contactsId","sendMute","time","sendSeen","push","setChatState","chatstate","setTemporaryMessages","setTyping","startTyping","stopTyping","setRecording","duration","startRecording","stopRecoring","checkNumberStatus","getContact","getNumberProfile","getProfilePicFromServer","getStatus","setProfileStatus","rejectCall","callId","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"],"sources":["../../src/controller/deviceController.js"],"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/**\n * Depreciado em favor de getMessages\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 } = req.body;\n const session = req.session;\n\n try {\n let results = {};\n for (const contato of phone) {\n results[contato] = await req.client.deleteChat(contato);\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\nexport async function deleteAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.deleteChat(chat.chatId);\n }\n return res.status(200).json({ status: 'success' });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on delete all chats' });\n }\n}\n\nexport async function clearChat(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = {};\n for (const contato of phone) {\n results[contato] = await req.client.clearChat(contato);\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function clearAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.clearChat(`${chat.chatId}`);\n }\n return res.status(201).json({ status: 'success' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on clear all chats' });\n }\n}\n\nexport async function archiveChat(req, res) {\n const { phone, value = true } = req.body;\n\n try {\n let response;\n response = await req.client.archiveChat(`${phone}`, value);\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 archiveAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.archiveChat(`${chat.chatId}`, true);\n }\n return res.status(201).json({ status: 'success' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on archive all chats' });\n }\n}\n\nexport async function deleteMessage(req, res) {\n const { phone, messageId } = req.body;\n\n try {\n await req.client.deleteMessage(`${phone}`, [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}\nexport async function reactMessage(req, res) {\n const { msgId, reaction } = req.body;\n\n try {\n await req.client.sendReactionToMessage(msgId, reaction);\n\n return res.status(200).json({ status: 'success', response: { message: 'Reaction sended' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on send reaction to 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 } = req.body;\n\n try {\n await req.client.markUnseenMessage(`${phone}`);\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 getMessages(req, res) {\n const { phone } = req.params;\n const { count = 20, direction = 'before', id = null } = req.query;\n try {\n const response = await req.client.getMessages(`${phone}`, {\n count: parseInt(count),\n direction: direction.toString(),\n id: id,\n });\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 } = req.body;\n const session = req.session;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendSeen(contato));\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\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 setRecording(req, res) {\n const { phone, value = true, duration, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n if (value) response = await req.client.startRecording(contato, duration);\n else response = await req.client.stopRecoring(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 recording' });\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}\nexport async function rejectCall(req, res) {\n const { callId } = req.body;\n try {\n let response = await req.client.rejectCall(callId);\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 rejectCall' });\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"],"mappings":"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"}
|