@natyapp/meta 1.6.3 → 1.6.5
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/elements/index.d.ts +1 -0
- package/dist/elements/index.js +1 -0
- package/dist/elements/text.d.ts +1 -0
- package/dist/elements/text.js +1 -0
- package/dist/elements/textTemplate.d.ts +17 -0
- package/dist/elements/textTemplate.js +18 -0
- 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 +6 -3
- package/dist/routes/webhooks/methods/messages.js +0 -2
- 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 +4 -3
- package/dist/useCases/message/whatsappResponse.js +56 -67
- package/dist/utils/parseError.d.ts +5 -0
- package/dist/utils/parseError.js +26 -0
- package/package.json +1 -1
package/dist/elements/index.d.ts
CHANGED
package/dist/elements/index.js
CHANGED
package/dist/elements/text.d.ts
CHANGED
package/dist/elements/text.js
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare class TextTemplate {
|
|
2
|
+
messaging_product: string;
|
|
3
|
+
recipient_type: string;
|
|
4
|
+
to: string;
|
|
5
|
+
type: string;
|
|
6
|
+
template: {
|
|
7
|
+
name: string;
|
|
8
|
+
language: {
|
|
9
|
+
code: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
constructor({ template, language, to }: {
|
|
13
|
+
template: string;
|
|
14
|
+
to: string;
|
|
15
|
+
language: string;
|
|
16
|
+
});
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TextTemplate = void 0;
|
|
4
|
+
class TextTemplate {
|
|
5
|
+
constructor({ template, language, to }) {
|
|
6
|
+
this.messaging_product = "whatsapp";
|
|
7
|
+
this.recipient_type = "individual";
|
|
8
|
+
this.to = to;
|
|
9
|
+
this.type = "template";
|
|
10
|
+
this.template = {
|
|
11
|
+
name: template,
|
|
12
|
+
language: {
|
|
13
|
+
code: language,
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.TextTemplate = TextTemplate;
|
|
@@ -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;
|
|
@@ -31,7 +34,7 @@ const connectionRouter = (naty) => {
|
|
|
31
34
|
dataReturn.accountInfo = accountInfo;
|
|
32
35
|
}
|
|
33
36
|
catch (err) {
|
|
34
|
-
|
|
37
|
+
throw new Error(err);
|
|
35
38
|
}
|
|
36
39
|
}
|
|
37
40
|
naty.emit("connection", dataReturn);
|
|
@@ -2,7 +2,6 @@
|
|
|
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) => {
|
|
@@ -10,7 +9,6 @@ const messagesRouter = (naty) => {
|
|
|
10
9
|
router.post("/", (req, res) => {
|
|
11
10
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
12
11
|
const { companyId, data } = req.body;
|
|
13
|
-
// console.log({ messageValue });
|
|
14
12
|
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;
|
|
15
13
|
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;
|
|
16
14
|
naty.emit("message", new whatsappResponse_1.WhatsappResponse(companyId, phone_number_id, clientNumber, new whatsappMessage_1.WhatsappMessage(data)));
|
|
@@ -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;
|
|
@@ -60,4 +60,5 @@ export declare class WhatsappResponse {
|
|
|
60
60
|
download_media(url: string, mimetype: string): Promise<any>;
|
|
61
61
|
get_media_url(media_id: string): Promise<any>;
|
|
62
62
|
update_long_lived_token(client_id: string, client_secret: string, fb_exchange_token: string): Promise<string | undefined>;
|
|
63
|
+
send_template_text_message(template: string, language: string): Promise<ISendMessageReturn | null>;
|
|
63
64
|
}
|
|
@@ -5,8 +5,10 @@ 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
13
|
class WhatsappResponse {
|
|
12
14
|
constructor(companyId, phone_number_id, clientNumber = "", message) {
|
|
@@ -19,12 +21,15 @@ class WhatsappResponse {
|
|
|
19
21
|
this.getApiInstanceToken();
|
|
20
22
|
}
|
|
21
23
|
async getApiInstanceToken() {
|
|
22
|
-
const getConnections = await services_1.connectionMutations.getAll({
|
|
24
|
+
const getConnections = await services_1.connectionMutations.getAll({
|
|
25
|
+
page: 0,
|
|
26
|
+
size: 1000,
|
|
27
|
+
});
|
|
23
28
|
if (getConnections.isError)
|
|
24
29
|
throw new Error("Não foi possível encontrar a instância");
|
|
25
30
|
if (!getConnections.isSuccess)
|
|
26
31
|
throw new Error("Não foi possível encontrar a instância");
|
|
27
|
-
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);
|
|
28
33
|
if (!connection)
|
|
29
34
|
throw new Error("Não foi possível encontrar a instância");
|
|
30
35
|
const longLivedToken = await this.update_long_lived_token(connection.appId, connection.appSecret, connection.accessToken);
|
|
@@ -50,8 +55,7 @@ class WhatsappResponse {
|
|
|
50
55
|
return getAccount.data;
|
|
51
56
|
}
|
|
52
57
|
catch (err) {
|
|
53
|
-
|
|
54
|
-
console.log(err.response.data.error);
|
|
58
|
+
(0, parseError_1.throwParsedError)(err, "Não foi possível requisitar informações da conta");
|
|
55
59
|
return null;
|
|
56
60
|
}
|
|
57
61
|
}
|
|
@@ -65,23 +69,17 @@ class WhatsappResponse {
|
|
|
65
69
|
return getOldMessages.isSuccess;
|
|
66
70
|
}
|
|
67
71
|
catch (err) {
|
|
68
|
-
|
|
69
|
-
console.log(err.response.data.error);
|
|
70
|
-
return null;
|
|
72
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível carregar mensagens");
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
async send_text_message(text) {
|
|
74
76
|
try {
|
|
75
|
-
console.log("phone_number_id", this.phone_number_id, "", this.token);
|
|
76
77
|
if (!this.apiCall)
|
|
77
78
|
await this.getApiInstanceToken();
|
|
78
79
|
return await this.apiCall.post("/messages", new text_1.Text({ to: this.clientNumber, text }));
|
|
79
80
|
}
|
|
80
81
|
catch (err) {
|
|
81
|
-
|
|
82
|
-
console.log("Não foi possível criar mensagem de texto");
|
|
83
|
-
console.log(err.response.data.error);
|
|
84
|
-
return null;
|
|
82
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar mensagem de texto");
|
|
85
83
|
}
|
|
86
84
|
}
|
|
87
85
|
async send_button(btn) {
|
|
@@ -97,9 +95,7 @@ class WhatsappResponse {
|
|
|
97
95
|
});
|
|
98
96
|
}
|
|
99
97
|
catch (err) {
|
|
100
|
-
|
|
101
|
-
console.log(err.response.data.error);
|
|
102
|
-
return null;
|
|
98
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar botão");
|
|
103
99
|
}
|
|
104
100
|
}
|
|
105
101
|
async send_list(list) {
|
|
@@ -115,9 +111,7 @@ class WhatsappResponse {
|
|
|
115
111
|
});
|
|
116
112
|
}
|
|
117
113
|
catch (err) {
|
|
118
|
-
|
|
119
|
-
console.log(err.response.data.error);
|
|
120
|
-
return null;
|
|
114
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar lista");
|
|
121
115
|
}
|
|
122
116
|
}
|
|
123
117
|
async reply({ type, toReply, messageToReply, }) {
|
|
@@ -140,9 +134,7 @@ class WhatsappResponse {
|
|
|
140
134
|
} }, toResponse));
|
|
141
135
|
}
|
|
142
136
|
catch (err) {
|
|
143
|
-
|
|
144
|
-
console.log(err.response.data.error);
|
|
145
|
-
return null;
|
|
137
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar um reply");
|
|
146
138
|
}
|
|
147
139
|
}
|
|
148
140
|
async mark_as_read() {
|
|
@@ -157,8 +149,7 @@ class WhatsappResponse {
|
|
|
157
149
|
return true;
|
|
158
150
|
}
|
|
159
151
|
catch (err) {
|
|
160
|
-
|
|
161
|
-
console.log(err.response.data.error);
|
|
152
|
+
(0, parseError_1.throwParsedError)(err, "Não foi possível marcar como lido");
|
|
162
153
|
return false;
|
|
163
154
|
}
|
|
164
155
|
}
|
|
@@ -178,9 +169,7 @@ class WhatsappResponse {
|
|
|
178
169
|
});
|
|
179
170
|
}
|
|
180
171
|
catch (err) {
|
|
181
|
-
|
|
182
|
-
console.log(err.response.data.error);
|
|
183
|
-
return null;
|
|
172
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar reação");
|
|
184
173
|
}
|
|
185
174
|
}
|
|
186
175
|
async send_location({ long, lat, name, address, }) {
|
|
@@ -200,9 +189,7 @@ class WhatsappResponse {
|
|
|
200
189
|
});
|
|
201
190
|
}
|
|
202
191
|
catch (err) {
|
|
203
|
-
|
|
204
|
-
console.log(err.response.data.error);
|
|
205
|
-
return null;
|
|
192
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar localização");
|
|
206
193
|
}
|
|
207
194
|
}
|
|
208
195
|
async send_contacts(contacts) {
|
|
@@ -217,22 +204,25 @@ class WhatsappResponse {
|
|
|
217
204
|
});
|
|
218
205
|
}
|
|
219
206
|
catch (err) {
|
|
220
|
-
|
|
221
|
-
console.log(err.response.data.error);
|
|
222
|
-
return null;
|
|
207
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar contato");
|
|
223
208
|
}
|
|
224
209
|
}
|
|
225
210
|
async createMedia(stream, fileType) {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
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
|
+
}
|
|
236
226
|
}
|
|
237
227
|
async sendLink(link, linkType, linkData = {}) {
|
|
238
228
|
try {
|
|
@@ -246,9 +236,7 @@ class WhatsappResponse {
|
|
|
246
236
|
});
|
|
247
237
|
}
|
|
248
238
|
catch (err) {
|
|
249
|
-
|
|
250
|
-
console.log(err.response.data.error);
|
|
251
|
-
return null;
|
|
239
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar link");
|
|
252
240
|
}
|
|
253
241
|
}
|
|
254
242
|
async send_image(stream, filetype, fileData) {
|
|
@@ -271,9 +259,7 @@ class WhatsappResponse {
|
|
|
271
259
|
});
|
|
272
260
|
}
|
|
273
261
|
catch (err) {
|
|
274
|
-
|
|
275
|
-
console.log(err.response.data.error);
|
|
276
|
-
return null;
|
|
262
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar imagem");
|
|
277
263
|
}
|
|
278
264
|
}
|
|
279
265
|
async send_document(stream, filetype, fileData) {
|
|
@@ -298,9 +284,7 @@ class WhatsappResponse {
|
|
|
298
284
|
});
|
|
299
285
|
}
|
|
300
286
|
catch (err) {
|
|
301
|
-
|
|
302
|
-
console.log(err.response.data.error);
|
|
303
|
-
return null;
|
|
287
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar documento");
|
|
304
288
|
}
|
|
305
289
|
}
|
|
306
290
|
async send_video(stream, filetype, fileData) {
|
|
@@ -323,9 +307,7 @@ class WhatsappResponse {
|
|
|
323
307
|
});
|
|
324
308
|
}
|
|
325
309
|
catch (err) {
|
|
326
|
-
|
|
327
|
-
console.log(err.response.data.error);
|
|
328
|
-
return null;
|
|
310
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar video");
|
|
329
311
|
}
|
|
330
312
|
}
|
|
331
313
|
async send_sticker(stream, filetype) {
|
|
@@ -345,9 +327,7 @@ class WhatsappResponse {
|
|
|
345
327
|
});
|
|
346
328
|
}
|
|
347
329
|
catch (err) {
|
|
348
|
-
|
|
349
|
-
console.log(err.response.data.error);
|
|
350
|
-
return null;
|
|
330
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar sticker");
|
|
351
331
|
}
|
|
352
332
|
}
|
|
353
333
|
async send_audio(stream, filetype) {
|
|
@@ -367,9 +347,7 @@ class WhatsappResponse {
|
|
|
367
347
|
});
|
|
368
348
|
}
|
|
369
349
|
catch (err) {
|
|
370
|
-
|
|
371
|
-
console.log(err.response.data.error);
|
|
372
|
-
return null;
|
|
350
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível enviar sticker");
|
|
373
351
|
}
|
|
374
352
|
}
|
|
375
353
|
async download_media(url, mimetype) {
|
|
@@ -386,8 +364,7 @@ class WhatsappResponse {
|
|
|
386
364
|
return data;
|
|
387
365
|
}
|
|
388
366
|
catch (err) {
|
|
389
|
-
|
|
390
|
-
console.log(err.response.data.error);
|
|
367
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível baixar mídia");
|
|
391
368
|
}
|
|
392
369
|
}
|
|
393
370
|
async get_media_url(media_id) {
|
|
@@ -402,8 +379,7 @@ class WhatsappResponse {
|
|
|
402
379
|
return data;
|
|
403
380
|
}
|
|
404
381
|
catch (err) {
|
|
405
|
-
|
|
406
|
-
console.log(err.response.data.error);
|
|
382
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível baixar mídia");
|
|
407
383
|
}
|
|
408
384
|
}
|
|
409
385
|
async update_long_lived_token(client_id, client_secret, fb_exchange_token) {
|
|
@@ -420,10 +396,23 @@ class WhatsappResponse {
|
|
|
420
396
|
return getLongLivedToken.data.access_token;
|
|
421
397
|
}
|
|
422
398
|
catch (err) {
|
|
423
|
-
|
|
424
|
-
console.log(err.response.data.error);
|
|
399
|
+
(0, parseError_1.throwParsedError)(err, "Não foi possível requisitar o token de vida longa");
|
|
425
400
|
return undefined;
|
|
426
401
|
}
|
|
427
402
|
}
|
|
403
|
+
async send_template_text_message(template, language) {
|
|
404
|
+
try {
|
|
405
|
+
if (!this.apiCall)
|
|
406
|
+
await this.getApiInstanceToken();
|
|
407
|
+
return await this.apiCall.post("/messages", new elements_1.TextTemplate({
|
|
408
|
+
to: this.clientNumber,
|
|
409
|
+
template: template,
|
|
410
|
+
language: language,
|
|
411
|
+
}));
|
|
412
|
+
}
|
|
413
|
+
catch (err) {
|
|
414
|
+
return (0, parseError_1.throwParsedError)(err, "Não foi possível criar mensagem de texto");
|
|
415
|
+
}
|
|
416
|
+
}
|
|
428
417
|
}
|
|
429
418
|
exports.WhatsappResponse = WhatsappResponse;
|
|
@@ -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;
|