@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.
@@ -1,3 +1,4 @@
1
1
  export * from "./button";
2
2
  export * from "./list";
3
3
  export * from "./text";
4
+ export * from "./textTemplate";
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./button"), exports);
18
18
  __exportStar(require("./list"), exports);
19
19
  __exportStar(require("./text"), exports);
20
+ __exportStar(require("./textTemplate"), exports);
@@ -1,6 +1,7 @@
1
1
  export declare class Text {
2
2
  type: string;
3
3
  messaging_product: string;
4
+ recipient_type: string;
4
5
  to: string;
5
6
  text: {
6
7
  body: string;
@@ -5,6 +5,7 @@ class Text {
5
5
  constructor({ text, to }) {
6
6
  this.type = "text";
7
7
  this.messaging_product = "whatsapp";
8
+ this.recipient_type = "individual";
8
9
  this.text = { body: "" };
9
10
  this.text.body = text;
10
11
  this.to = to;
@@ -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;
@@ -6,5 +6,5 @@ export interface ILog {
6
6
  getAll(props: getAllProps): Promise<Either<logErrors, getAllReturn<LogsEntity>>>;
7
7
  searchOne(key: keyof LogsEntity, value: string): Promise<Either<logErrors, LogsEntity>>;
8
8
  }
9
- type logErrors = "";
9
+ type logErrors = string;
10
10
  export {};
@@ -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({ page: 0, size: 1000 });
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
- console.log(err);
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 { contactType } from "../../types/whatsappTypes";
5
+ import { ISendMessageReturn } from "../../interfaces";
5
6
  import { getAllReturn } from "../../types";
6
- import { MessageEntity } from "../../Entities/messages";
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 services_1 = require("../../services");
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({ page: 0, size: 1000 });
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
- console.log("Não foi possível requisitar informações da conta");
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
- console.log("Não foi possível carregar mensagens");
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
- console.log("phone_number_id", this.phone_number_id, "", this.token);
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
- console.log("Não foi possível criar botão");
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
- console.log("Não foi possível criar lista");
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
- console.log("Não foi possível criar um reply");
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
- console.log("Não foi possível marcar como lido");
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
- console.log("Não foi possível enviar reação");
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
- console.log("Não foi possível enviar localização");
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
- console.log("Não foi possível enviar contato");
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
- if (!this.apiCall)
227
- await this.getApiInstanceToken();
228
- const newMedia = new FormData();
229
- newMedia.append("file", stream);
230
- newMedia.append("type", fileType);
231
- newMedia.append("messaging_product", "whatsapp");
232
- const { data } = await this.apiCall.post(`/media`, newMedia, {
233
- headers: { "Content-Type": "multipart/form-data" },
234
- });
235
- return data;
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
- console.log("Não foi possível enviar link");
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
- console.log("Não foi possível enviar imagem");
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
- console.log("Não foi possível enviar documento");
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
- console.log("Não foi possível enviar video");
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
- console.log("Não foi possível enviar sticker");
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
- console.log("Não foi possível enviar sticker");
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
- console.log("Não foi possível baixar media");
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
- console.log("Não foi possível baixar media");
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
- console.log("Não foi possível requisitar o token de vida longa");
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,5 @@
1
+ export declare const parseError: (err: any, fallbackMessage?: string) => {
2
+ message: string;
3
+ code: any;
4
+ };
5
+ export declare const throwParsedError: (err: any, contextMessage?: string) => never;
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@natyapp/meta",
3
- "version": "1.6.3",
3
+ "version": "1.6.5",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",