@natyapp/meta 1.6.4 → 1.6.6
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/dist/interfaces/IConnection.d.ts +1 -1
- package/dist/interfaces/ILog.d.ts +1 -1
- package/dist/interfaces/IWebhook.d.ts +1 -1
- package/dist/routes/webhooks/methods/connection.js +11 -4
- package/dist/routes/webhooks/methods/messages.js +14 -7
- package/dist/services/mutations/connection.js +7 -7
- package/dist/services/mutations/logs.js +3 -3
- package/dist/services/mutations/messages.js +3 -3
- package/dist/services/mutations/webhooks.js +7 -7
- package/dist/useCases/message/whatsappResponse.d.ts +3 -3
- package/dist/useCases/message/whatsappResponse.js +43 -73
- package/dist/utils/parseError.d.ts +5 -0
- package/dist/utils/parseError.js +26 -0
- package/package.json +1 -1
|
@@ -10,4 +10,4 @@ export interface IConnection {
|
|
|
10
10
|
updateMany(connection: Partial<ConnectionEntity>[]): Promise<Either<connectionErrors, ConnectionEntity[]>>;
|
|
11
11
|
deleteOne(id: string): Promise<Either<connectionErrors, ConnectionEntity>>;
|
|
12
12
|
}
|
|
13
|
-
export type connectionErrors =
|
|
13
|
+
export type connectionErrors = string;
|
|
@@ -10,5 +10,5 @@ export interface IWebhook {
|
|
|
10
10
|
updateMany(connection: Partial<WebhooksEntity>[]): Promise<Either<webhookErrors, WebhooksEntity[]>>;
|
|
11
11
|
deleteOne(id: string): Promise<Either<webhookErrors, WebhooksEntity>>;
|
|
12
12
|
}
|
|
13
|
-
type webhookErrors =
|
|
13
|
+
type webhookErrors = string;
|
|
14
14
|
export {};
|
|
@@ -17,10 +17,13 @@ const connectionRouter = (naty) => {
|
|
|
17
17
|
if (message === "confirm_connection") {
|
|
18
18
|
try {
|
|
19
19
|
const connectionId = (_a = (data["hub.verify_token"] || data["verify_token"])) === null || _a === void 0 ? void 0 : _a.split("/")[0];
|
|
20
|
-
const getConnections = await services_1.connectionMutations.getAll({
|
|
20
|
+
const getConnections = await services_1.connectionMutations.getAll({
|
|
21
|
+
page: 0,
|
|
22
|
+
size: 1000,
|
|
23
|
+
});
|
|
21
24
|
if (getConnections.isError)
|
|
22
25
|
throw new Error("Não foi possível encontrar a instância");
|
|
23
|
-
const connectionInfo = (_b = getConnections.isSuccess) === null || _b === void 0 ? void 0 : _b.find(item => item._id === connectionId);
|
|
26
|
+
const connectionInfo = (_b = getConnections.isSuccess) === null || _b === void 0 ? void 0 : _b.find((item) => item._id === connectionId);
|
|
24
27
|
if (!connectionInfo)
|
|
25
28
|
throw new Error("Não foi possível encontrar Connection");
|
|
26
29
|
dataReturn.connection = connectionInfo;
|
|
@@ -29,13 +32,17 @@ const connectionRouter = (naty) => {
|
|
|
29
32
|
if (!accountInfo)
|
|
30
33
|
throw new Error("Não foi possível encontrar Account");
|
|
31
34
|
dataReturn.accountInfo = accountInfo;
|
|
35
|
+
naty.emit("connection", dataReturn);
|
|
36
|
+
res.json({ connection: req.body });
|
|
32
37
|
}
|
|
33
38
|
catch (err) {
|
|
34
39
|
console.log(err);
|
|
40
|
+
naty.emit("error", err);
|
|
41
|
+
res.status(500).json({
|
|
42
|
+
error: err.message,
|
|
43
|
+
});
|
|
35
44
|
}
|
|
36
45
|
}
|
|
37
|
-
naty.emit("connection", dataReturn);
|
|
38
|
-
res.json({ connection: req.body });
|
|
39
46
|
});
|
|
40
47
|
return router;
|
|
41
48
|
};
|
|
@@ -2,19 +2,26 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.messagesRouter = void 0;
|
|
4
4
|
const express_1 = require("express");
|
|
5
|
-
// import db from "../../mock/response.json";
|
|
6
5
|
const whatsappMessage_1 = require("../../../Entities/whatsappMessage");
|
|
7
6
|
const whatsappResponse_1 = require("../../../useCases/message/whatsappResponse");
|
|
8
7
|
const messagesRouter = (naty) => {
|
|
9
8
|
const router = (0, express_1.Router)();
|
|
10
9
|
router.post("/", (req, res) => {
|
|
11
10
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
try {
|
|
12
|
+
const { companyId, data } = req.body;
|
|
13
|
+
const phone_number_id = (_c = (_b = (_a = data.entry[0]) === null || _a === void 0 ? void 0 : _a.changes[0]) === null || _b === void 0 ? void 0 : _b.value.metadata) === null || _c === void 0 ? void 0 : _c.phone_number_id;
|
|
14
|
+
const clientNumber = (_g = (_f = (_e = (_d = data.entry[0]) === null || _d === void 0 ? void 0 : _d.changes[0]) === null || _e === void 0 ? void 0 : _e.value) === null || _f === void 0 ? void 0 : _f.contacts[0]) === null || _g === void 0 ? void 0 : _g.wa_id;
|
|
15
|
+
naty.emit("message", new whatsappResponse_1.WhatsappResponse(companyId, phone_number_id, clientNumber, new whatsappMessage_1.WhatsappMessage(data)));
|
|
16
|
+
res.json(true);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
console.log(err);
|
|
20
|
+
naty.emit("error", err);
|
|
21
|
+
res.status(500).json({
|
|
22
|
+
error: err.message,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
18
25
|
});
|
|
19
26
|
return router;
|
|
20
27
|
};
|
|
@@ -7,43 +7,43 @@ exports.connectionMutations = {
|
|
|
7
7
|
insert: async (connection) => {
|
|
8
8
|
const call = await axiosInstances_1.api.post(`/connections`, connection);
|
|
9
9
|
if (!call.data)
|
|
10
|
-
return (0, Either_1.throwError)("");
|
|
10
|
+
return (0, Either_1.throwError)("Erro ao inserir a conexão.");
|
|
11
11
|
return (0, Either_1.throwSuccess)(call.data);
|
|
12
12
|
},
|
|
13
13
|
getSingle: async (id) => {
|
|
14
14
|
const call = await axiosInstances_1.api.get(`/connections/${id}`);
|
|
15
15
|
if (!call.data)
|
|
16
|
-
return (0, Either_1.throwError)(
|
|
16
|
+
return (0, Either_1.throwError)(`Conexão com ID ${id} não encontrada.`);
|
|
17
17
|
return (0, Either_1.throwSuccess)(call.data);
|
|
18
18
|
},
|
|
19
19
|
SearchOne: async (key, value) => {
|
|
20
20
|
const call = await axiosInstances_1.api.get(`/connections`, { params: { key, value } });
|
|
21
21
|
if (!call.data)
|
|
22
|
-
return (0, Either_1.throwError)(
|
|
22
|
+
return (0, Either_1.throwError)(`Conexão com ${key} = ${value} não encontrada.`);
|
|
23
23
|
return (0, Either_1.throwSuccess)(call.data);
|
|
24
24
|
},
|
|
25
25
|
getAll: async (props) => {
|
|
26
26
|
const call = await axiosInstances_1.api.get(`/connections`, { params: props });
|
|
27
27
|
if (!call.data)
|
|
28
|
-
return (0, Either_1.throwError)("");
|
|
28
|
+
return (0, Either_1.throwError)("Erro ao buscar todas as conexões.");
|
|
29
29
|
return (0, Either_1.throwSuccess)(call.data);
|
|
30
30
|
},
|
|
31
31
|
update: async (id, connection) => {
|
|
32
32
|
const call = await axiosInstances_1.api.patch(`/connections/${id}`, connection);
|
|
33
33
|
if (!call.data)
|
|
34
|
-
return (0, Either_1.throwError)(
|
|
34
|
+
return (0, Either_1.throwError)(`Erro ao atualizar a conexão com ID ${id}.`);
|
|
35
35
|
return (0, Either_1.throwSuccess)(call.data);
|
|
36
36
|
},
|
|
37
37
|
updateMany: async (connection) => {
|
|
38
38
|
const call = await axiosInstances_1.api.patch(`/connections`, connection);
|
|
39
39
|
if (!call.data)
|
|
40
|
-
return (0, Either_1.throwError)("");
|
|
40
|
+
return (0, Either_1.throwError)("Erro ao atualizar múltiplas conexões.");
|
|
41
41
|
return (0, Either_1.throwSuccess)(call.data);
|
|
42
42
|
},
|
|
43
43
|
deleteOne: async (id) => {
|
|
44
44
|
const call = await axiosInstances_1.api.delete(`/connections/${id}`);
|
|
45
45
|
if (!call.data)
|
|
46
|
-
return (0, Either_1.throwError)(
|
|
46
|
+
return (0, Either_1.throwError)(`Erro ao deletar a conexão com ID ${id}.`);
|
|
47
47
|
return (0, Either_1.throwSuccess)(call.data);
|
|
48
48
|
},
|
|
49
49
|
};
|
|
@@ -7,19 +7,19 @@ exports.logsMutations = {
|
|
|
7
7
|
getSingle: async (id) => {
|
|
8
8
|
const call = await axiosInstances_1.api.get(`/logs/${id}`);
|
|
9
9
|
if (!call.data)
|
|
10
|
-
return (0, Either_1.throwError)("");
|
|
10
|
+
return (0, Either_1.throwError)("Erro ao buscar log pelo ID.");
|
|
11
11
|
return (0, Either_1.throwSuccess)(call.data);
|
|
12
12
|
},
|
|
13
13
|
searchOne: async (key, value) => {
|
|
14
14
|
const call = await axiosInstances_1.api.get(`/logs`, { params: { key, value } });
|
|
15
15
|
if (!call.data)
|
|
16
|
-
return (0, Either_1.throwError)("");
|
|
16
|
+
return (0, Either_1.throwError)("Erro ao buscar log com os parâmetros fornecidos.");
|
|
17
17
|
return (0, Either_1.throwSuccess)(call.data);
|
|
18
18
|
},
|
|
19
19
|
getAll: async (props) => {
|
|
20
20
|
const call = await axiosInstances_1.api.get(`/logs`, { params: props });
|
|
21
21
|
if (!call.data)
|
|
22
|
-
return (0, Either_1.throwError)("");
|
|
22
|
+
return (0, Either_1.throwError)("Erro ao listar os logs.");
|
|
23
23
|
return (0, Either_1.throwSuccess)(call.data);
|
|
24
24
|
},
|
|
25
25
|
};
|
|
@@ -7,19 +7,19 @@ exports.messagesMutations = {
|
|
|
7
7
|
getSingle: async (id) => {
|
|
8
8
|
const call = await axiosInstances_1.api.get(`/messages/${id}`);
|
|
9
9
|
if (!call.data)
|
|
10
|
-
return (0, Either_1.throwError)("");
|
|
10
|
+
return (0, Either_1.throwError)("Erro ao buscar mensagem pelo ID.");
|
|
11
11
|
return (0, Either_1.throwSuccess)(call.data);
|
|
12
12
|
},
|
|
13
13
|
searchOne: async (key, value) => {
|
|
14
14
|
const call = await axiosInstances_1.api.get(`/messages`, { params: { key, value } });
|
|
15
15
|
if (!call.data)
|
|
16
|
-
return (0, Either_1.throwError)("");
|
|
16
|
+
return (0, Either_1.throwError)("Erro ao buscar mensagem com os parâmetros fornecidos.");
|
|
17
17
|
return (0, Either_1.throwSuccess)(call.data);
|
|
18
18
|
},
|
|
19
19
|
getAll: async (props) => {
|
|
20
20
|
const call = await axiosInstances_1.api.get(`/messages`, { params: props });
|
|
21
21
|
if (!call.data)
|
|
22
|
-
return (0, Either_1.throwError)("");
|
|
22
|
+
return (0, Either_1.throwError)("Erro ao listar as mensagens.");
|
|
23
23
|
return (0, Either_1.throwSuccess)(call.data);
|
|
24
24
|
},
|
|
25
25
|
};
|
|
@@ -7,43 +7,43 @@ exports.webhooksMutations = {
|
|
|
7
7
|
insert: async (connection) => {
|
|
8
8
|
const call = await axiosInstances_1.api.post(`/webhooks`, connection);
|
|
9
9
|
if (!call.data)
|
|
10
|
-
return (0, Either_1.throwError)("");
|
|
10
|
+
return (0, Either_1.throwError)("Erro ao inserir o webhook.");
|
|
11
11
|
return (0, Either_1.throwSuccess)(call.data);
|
|
12
12
|
},
|
|
13
13
|
getSingle: async (id) => {
|
|
14
14
|
const call = await axiosInstances_1.api.get(`/webhooks/${id}`);
|
|
15
15
|
if (!call.data)
|
|
16
|
-
return (0, Either_1.throwError)("");
|
|
16
|
+
return (0, Either_1.throwError)("Erro ao buscar webhook pelo ID.");
|
|
17
17
|
return (0, Either_1.throwSuccess)(call.data);
|
|
18
18
|
},
|
|
19
19
|
searchOne: async (key, value) => {
|
|
20
20
|
const call = await axiosInstances_1.api.get(`/webhooks`, { params: { key, value } });
|
|
21
21
|
if (!call.data)
|
|
22
|
-
return (0, Either_1.throwError)("");
|
|
22
|
+
return (0, Either_1.throwError)("Erro ao buscar webhook com os parâmetros fornecidos.");
|
|
23
23
|
return (0, Either_1.throwSuccess)(call.data);
|
|
24
24
|
},
|
|
25
25
|
getAll: async (props) => {
|
|
26
26
|
const call = await axiosInstances_1.api.get(`/webhooks`, { params: props });
|
|
27
27
|
if (!call.data)
|
|
28
|
-
return (0, Either_1.throwError)("");
|
|
28
|
+
return (0, Either_1.throwError)("Erro ao listar os webhooks.");
|
|
29
29
|
return (0, Either_1.throwSuccess)(call.data);
|
|
30
30
|
},
|
|
31
31
|
update: async (id, connection) => {
|
|
32
32
|
const call = await axiosInstances_1.api.patch(`/webhooks/${id}`, connection);
|
|
33
33
|
if (!call.data)
|
|
34
|
-
return (0, Either_1.throwError)("");
|
|
34
|
+
return (0, Either_1.throwError)("Erro ao atualizar o webhook.");
|
|
35
35
|
return (0, Either_1.throwSuccess)(call.data);
|
|
36
36
|
},
|
|
37
37
|
updateMany: async (connection) => {
|
|
38
38
|
const call = await axiosInstances_1.api.patch(`/webhooks`, connection);
|
|
39
39
|
if (!call.data)
|
|
40
|
-
return (0, Either_1.throwError)("");
|
|
40
|
+
return (0, Either_1.throwError)("Erro ao atualizar múltiplos webhooks.");
|
|
41
41
|
return (0, Either_1.throwSuccess)(call.data);
|
|
42
42
|
},
|
|
43
43
|
deleteOne: async (id) => {
|
|
44
44
|
const call = await axiosInstances_1.api.delete(`/webhooks/${id}`);
|
|
45
45
|
if (!call.data)
|
|
46
|
-
return (0, Either_1.throwError)("");
|
|
46
|
+
return (0, Either_1.throwError)("Erro ao deletar o webhook.");
|
|
47
47
|
return (0, Either_1.throwSuccess)(call.data);
|
|
48
48
|
},
|
|
49
49
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { MessageEntity } from "../../Entities/messages";
|
|
1
2
|
import { WhatsappMessage } from "../../Entities/whatsappMessage";
|
|
2
3
|
import { Button } from "../../elements/button";
|
|
3
4
|
import { List } from "../../elements/list";
|
|
4
|
-
import {
|
|
5
|
+
import { ISendMessageReturn } from "../../interfaces";
|
|
5
6
|
import { getAllReturn } from "../../types";
|
|
6
|
-
import {
|
|
7
|
+
import { contactType } from "../../types/whatsappTypes";
|
|
7
8
|
import { connectionEvent } from "../events/NatyEvents";
|
|
8
|
-
import { ISendMessageReturn } from "../../interfaces";
|
|
9
9
|
export declare class WhatsappResponse {
|
|
10
10
|
companyId: string;
|
|
11
11
|
phone_number_id: string;
|
|
@@ -5,10 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.WhatsappResponse = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const
|
|
8
|
+
const elements_1 = require("../../elements");
|
|
9
9
|
const text_1 = require("../../elements/text");
|
|
10
|
+
const services_1 = require("../../services");
|
|
11
|
+
const parseError_1 = require("../../utils/parseError");
|
|
10
12
|
const messages_1 = __importDefault(require("../messages"));
|
|
11
|
-
const elements_1 = require("../../elements");
|
|
12
13
|
class WhatsappResponse {
|
|
13
14
|
constructor(companyId, phone_number_id, clientNumber = "", message) {
|
|
14
15
|
var _a, _b, _c;
|
|
@@ -20,12 +21,15 @@ class WhatsappResponse {
|
|
|
20
21
|
this.getApiInstanceToken();
|
|
21
22
|
}
|
|
22
23
|
async getApiInstanceToken() {
|
|
23
|
-
const getConnections = await services_1.connectionMutations.getAll({
|
|
24
|
+
const getConnections = await services_1.connectionMutations.getAll({
|
|
25
|
+
page: 0,
|
|
26
|
+
size: 1000,
|
|
27
|
+
});
|
|
24
28
|
if (getConnections.isError)
|
|
25
29
|
throw new Error("Não foi possível encontrar a instância");
|
|
26
30
|
if (!getConnections.isSuccess)
|
|
27
31
|
throw new Error("Não foi possível encontrar a instância");
|
|
28
|
-
const connection = getConnections.isSuccess.find(item => item.phoneNumberId === this.phone_number_id);
|
|
32
|
+
const connection = getConnections.isSuccess.find((item) => item.phoneNumberId === this.phone_number_id);
|
|
29
33
|
if (!connection)
|
|
30
34
|
throw new Error("Não foi possível encontrar a instância");
|
|
31
35
|
const longLivedToken = await this.update_long_lived_token(connection.appId, connection.appSecret, connection.accessToken);
|
|
@@ -51,8 +55,7 @@ class WhatsappResponse {
|
|
|
51
55
|
return getAccount.data;
|
|
52
56
|
}
|
|
53
57
|
catch (err) {
|
|
54
|
-
|
|
55
|
-
console.log(err.response.data.error);
|
|
58
|
+
(0, parseError_1.throwParsedError)(err, "Não foi possível requisitar informações da conta");
|
|
56
59
|
return null;
|
|
57
60
|
}
|
|
58
61
|
}
|
|
@@ -66,23 +69,17 @@ class WhatsappResponse {
|
|
|
66
69
|
return getOldMessages.isSuccess;
|
|
67
70
|
}
|
|
68
71
|
catch (err) {
|
|
69
|
-
|
|
70
|
-
console.log(err.response.data.error);
|
|
71
|
-
return null;
|
|
72
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível carregar mensagens");
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
async send_text_message(text) {
|
|
75
76
|
try {
|
|
76
|
-
console.log("phone_number_id", this.phone_number_id, "", this.token);
|
|
77
77
|
if (!this.apiCall)
|
|
78
78
|
await this.getApiInstanceToken();
|
|
79
79
|
return await this.apiCall.post("/messages", new text_1.Text({ to: this.clientNumber, text }));
|
|
80
80
|
}
|
|
81
81
|
catch (err) {
|
|
82
|
-
|
|
83
|
-
console.log("Não foi possível criar mensagem de texto");
|
|
84
|
-
console.log(err.response.data.error);
|
|
85
|
-
return null;
|
|
82
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar mensagem de texto");
|
|
86
83
|
}
|
|
87
84
|
}
|
|
88
85
|
async send_button(btn) {
|
|
@@ -98,9 +95,7 @@ class WhatsappResponse {
|
|
|
98
95
|
});
|
|
99
96
|
}
|
|
100
97
|
catch (err) {
|
|
101
|
-
|
|
102
|
-
console.log(err.response.data.error);
|
|
103
|
-
return null;
|
|
98
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar botão");
|
|
104
99
|
}
|
|
105
100
|
}
|
|
106
101
|
async send_list(list) {
|
|
@@ -116,9 +111,7 @@ class WhatsappResponse {
|
|
|
116
111
|
});
|
|
117
112
|
}
|
|
118
113
|
catch (err) {
|
|
119
|
-
|
|
120
|
-
console.log(err.response.data.error);
|
|
121
|
-
return null;
|
|
114
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar lista");
|
|
122
115
|
}
|
|
123
116
|
}
|
|
124
117
|
async reply({ type, toReply, messageToReply, }) {
|
|
@@ -141,9 +134,7 @@ class WhatsappResponse {
|
|
|
141
134
|
} }, toResponse));
|
|
142
135
|
}
|
|
143
136
|
catch (err) {
|
|
144
|
-
|
|
145
|
-
console.log(err.response.data.error);
|
|
146
|
-
return null;
|
|
137
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar um reply");
|
|
147
138
|
}
|
|
148
139
|
}
|
|
149
140
|
async mark_as_read() {
|
|
@@ -158,8 +149,7 @@ class WhatsappResponse {
|
|
|
158
149
|
return true;
|
|
159
150
|
}
|
|
160
151
|
catch (err) {
|
|
161
|
-
|
|
162
|
-
console.log(err.response.data.error);
|
|
152
|
+
(0, parseError_1.throwParsedError)(err, "Não foi possível marcar como lido");
|
|
163
153
|
return false;
|
|
164
154
|
}
|
|
165
155
|
}
|
|
@@ -179,9 +169,7 @@ class WhatsappResponse {
|
|
|
179
169
|
});
|
|
180
170
|
}
|
|
181
171
|
catch (err) {
|
|
182
|
-
|
|
183
|
-
console.log(err.response.data.error);
|
|
184
|
-
return null;
|
|
172
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar reação");
|
|
185
173
|
}
|
|
186
174
|
}
|
|
187
175
|
async send_location({ long, lat, name, address, }) {
|
|
@@ -201,9 +189,7 @@ class WhatsappResponse {
|
|
|
201
189
|
});
|
|
202
190
|
}
|
|
203
191
|
catch (err) {
|
|
204
|
-
|
|
205
|
-
console.log(err.response.data.error);
|
|
206
|
-
return null;
|
|
192
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar localização");
|
|
207
193
|
}
|
|
208
194
|
}
|
|
209
195
|
async send_contacts(contacts) {
|
|
@@ -218,22 +204,25 @@ class WhatsappResponse {
|
|
|
218
204
|
});
|
|
219
205
|
}
|
|
220
206
|
catch (err) {
|
|
221
|
-
|
|
222
|
-
console.log(err.response.data.error);
|
|
223
|
-
return null;
|
|
207
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar contato");
|
|
224
208
|
}
|
|
225
209
|
}
|
|
226
210
|
async createMedia(stream, fileType) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
211
|
+
try {
|
|
212
|
+
if (!this.apiCall)
|
|
213
|
+
await this.getApiInstanceToken();
|
|
214
|
+
const newMedia = new FormData();
|
|
215
|
+
newMedia.append("file", stream);
|
|
216
|
+
newMedia.append("type", fileType);
|
|
217
|
+
newMedia.append("messaging_product", "whatsapp");
|
|
218
|
+
const { data } = await this.apiCall.post(`/media`, newMedia, {
|
|
219
|
+
headers: { "Content-Type": "multipart/form-data" },
|
|
220
|
+
});
|
|
221
|
+
return data;
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar mídia");
|
|
225
|
+
}
|
|
237
226
|
}
|
|
238
227
|
async sendLink(link, linkType, linkData = {}) {
|
|
239
228
|
try {
|
|
@@ -247,9 +236,7 @@ class WhatsappResponse {
|
|
|
247
236
|
});
|
|
248
237
|
}
|
|
249
238
|
catch (err) {
|
|
250
|
-
|
|
251
|
-
console.log(err.response.data.error);
|
|
252
|
-
return null;
|
|
239
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar link");
|
|
253
240
|
}
|
|
254
241
|
}
|
|
255
242
|
async send_image(stream, filetype, fileData) {
|
|
@@ -272,9 +259,7 @@ class WhatsappResponse {
|
|
|
272
259
|
});
|
|
273
260
|
}
|
|
274
261
|
catch (err) {
|
|
275
|
-
|
|
276
|
-
console.log(err.response.data.error);
|
|
277
|
-
return null;
|
|
262
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar imagem");
|
|
278
263
|
}
|
|
279
264
|
}
|
|
280
265
|
async send_document(stream, filetype, fileData) {
|
|
@@ -299,9 +284,7 @@ class WhatsappResponse {
|
|
|
299
284
|
});
|
|
300
285
|
}
|
|
301
286
|
catch (err) {
|
|
302
|
-
|
|
303
|
-
console.log(err.response.data.error);
|
|
304
|
-
return null;
|
|
287
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar documento");
|
|
305
288
|
}
|
|
306
289
|
}
|
|
307
290
|
async send_video(stream, filetype, fileData) {
|
|
@@ -324,9 +307,7 @@ class WhatsappResponse {
|
|
|
324
307
|
});
|
|
325
308
|
}
|
|
326
309
|
catch (err) {
|
|
327
|
-
|
|
328
|
-
console.log(err.response.data.error);
|
|
329
|
-
return null;
|
|
310
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar video");
|
|
330
311
|
}
|
|
331
312
|
}
|
|
332
313
|
async send_sticker(stream, filetype) {
|
|
@@ -346,9 +327,7 @@ class WhatsappResponse {
|
|
|
346
327
|
});
|
|
347
328
|
}
|
|
348
329
|
catch (err) {
|
|
349
|
-
|
|
350
|
-
console.log(err.response.data.error);
|
|
351
|
-
return null;
|
|
330
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar sticker");
|
|
352
331
|
}
|
|
353
332
|
}
|
|
354
333
|
async send_audio(stream, filetype) {
|
|
@@ -368,9 +347,7 @@ class WhatsappResponse {
|
|
|
368
347
|
});
|
|
369
348
|
}
|
|
370
349
|
catch (err) {
|
|
371
|
-
|
|
372
|
-
console.log(err.response.data.error);
|
|
373
|
-
return null;
|
|
350
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar sticker");
|
|
374
351
|
}
|
|
375
352
|
}
|
|
376
353
|
async download_media(url, mimetype) {
|
|
@@ -387,8 +364,7 @@ class WhatsappResponse {
|
|
|
387
364
|
return data;
|
|
388
365
|
}
|
|
389
366
|
catch (err) {
|
|
390
|
-
|
|
391
|
-
console.log(err.response.data.error);
|
|
367
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível baixar mídia");
|
|
392
368
|
}
|
|
393
369
|
}
|
|
394
370
|
async get_media_url(media_id) {
|
|
@@ -403,8 +379,7 @@ class WhatsappResponse {
|
|
|
403
379
|
return data;
|
|
404
380
|
}
|
|
405
381
|
catch (err) {
|
|
406
|
-
|
|
407
|
-
console.log(err.response.data.error);
|
|
382
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível baixar mídia");
|
|
408
383
|
}
|
|
409
384
|
}
|
|
410
385
|
async update_long_lived_token(client_id, client_secret, fb_exchange_token) {
|
|
@@ -421,14 +396,12 @@ class WhatsappResponse {
|
|
|
421
396
|
return getLongLivedToken.data.access_token;
|
|
422
397
|
}
|
|
423
398
|
catch (err) {
|
|
424
|
-
|
|
425
|
-
console.log(err.response.data.error);
|
|
399
|
+
(0, parseError_1.throwParsedError)(err, "Não foi possível requisitar o token de vida longa");
|
|
426
400
|
return undefined;
|
|
427
401
|
}
|
|
428
402
|
}
|
|
429
403
|
async send_template_text_message(template, language) {
|
|
430
404
|
try {
|
|
431
|
-
console.log("phone_number_id", this.phone_number_id, "", this.token);
|
|
432
405
|
if (!this.apiCall)
|
|
433
406
|
await this.getApiInstanceToken();
|
|
434
407
|
return await this.apiCall.post("/messages", new elements_1.TextTemplate({
|
|
@@ -438,10 +411,7 @@ class WhatsappResponse {
|
|
|
438
411
|
}));
|
|
439
412
|
}
|
|
440
413
|
catch (err) {
|
|
441
|
-
|
|
442
|
-
console.log("Não foi possível criar mensagem de texto");
|
|
443
|
-
console.log(err.response.data.error);
|
|
444
|
-
return null;
|
|
414
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar mensagem de texto");
|
|
445
415
|
}
|
|
446
416
|
}
|
|
447
417
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.throwParsedError = exports.parseError = void 0;
|
|
4
|
+
const Errors_1 = require("../Errors");
|
|
5
|
+
const parseError = (err, fallbackMessage = "Erro inesperado") => {
|
|
6
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
7
|
+
const details = ((_d = (_c = (_b = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c.error_data) === null || _d === void 0 ? void 0 : _d.details) ||
|
|
8
|
+
((_g = (_f = (_e = err === null || err === void 0 ? void 0 : err.response) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.error) === null || _g === void 0 ? void 0 : _g.message) ||
|
|
9
|
+
(err === null || err === void 0 ? void 0 : err.message) ||
|
|
10
|
+
fallbackMessage;
|
|
11
|
+
const code = ((_h = err === null || err === void 0 ? void 0 : err.response) === null || _h === void 0 ? void 0 : _h.status) ||
|
|
12
|
+
((_j = err === null || err === void 0 ? void 0 : err.response) === null || _j === void 0 ? void 0 : _j.code) ||
|
|
13
|
+
((_l = (_k = err === null || err === void 0 ? void 0 : err.response) === null || _k === void 0 ? void 0 : _k.data) === null || _l === void 0 ? void 0 : _l.code) ||
|
|
14
|
+
(err === null || err === void 0 ? void 0 : err.code) ||
|
|
15
|
+
500;
|
|
16
|
+
return {
|
|
17
|
+
message: String(details),
|
|
18
|
+
code,
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
exports.parseError = parseError;
|
|
22
|
+
const throwParsedError = (err, contextMessage) => {
|
|
23
|
+
const { message, code } = (0, exports.parseError)(err);
|
|
24
|
+
throw (0, Errors_1.ErrorHandling)(`${contextMessage ? contextMessage + ": " : ""}${message}`, code);
|
|
25
|
+
};
|
|
26
|
+
exports.throwParsedError = throwParsedError;
|