@andrey4emk/npm-app-back-b24 1.0.4 → 1.0.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/sendMessage/chatApp.js +12 -12
- package/dist/sendMessage/smsgold.js +5 -5
- package/dist/sendMessage/wappi.d.ts +3 -1
- package/dist/sendMessage/wappi.d.ts.map +1 -1
- package/dist/sendMessage/wappi.js +18 -18
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -17,14 +17,14 @@ export class ChatApp {
|
|
|
17
17
|
async sendMessageChatApp(messangerType, messageData) {
|
|
18
18
|
// Проверяем что верно указан messangerType и в messageData есть phone и message
|
|
19
19
|
if (!["whatsApp", "telegram"].includes(messangerType)) {
|
|
20
|
-
return { error: true, message: "Неверный тип мессенджера"
|
|
20
|
+
return { error: true, message: "Неверный тип мессенджера" };
|
|
21
21
|
}
|
|
22
22
|
if (!messageData.phone || !messageData.message) {
|
|
23
|
-
return { error: true, message: "Отсутствует phone или message"
|
|
23
|
+
return { error: true, message: "Отсутствует phone или message" };
|
|
24
24
|
}
|
|
25
25
|
const check = await this.checkTokenChatApp();
|
|
26
26
|
if (check.error) {
|
|
27
|
-
return { error: true, message: `Ошибка с токеном ChatApp в функции sendMessageChatApp класса ChatApp\n${check.message}
|
|
27
|
+
return { error: true, message: `Ошибка с токеном ChatApp в функции sendMessageChatApp класса ChatApp\n${check.message}` };
|
|
28
28
|
}
|
|
29
29
|
const phone = messageData.phone;
|
|
30
30
|
const message = messageData.message;
|
|
@@ -65,14 +65,14 @@ export class ChatApp {
|
|
|
65
65
|
async sendFileChatApp(messangerType, messageData) {
|
|
66
66
|
// Проверяем что верно указан messangerType и в messageData есть phone и message
|
|
67
67
|
if (!["whatsApp", "telegram"].includes(messangerType)) {
|
|
68
|
-
return { error: true, message: "Неверный тип мессенджера"
|
|
68
|
+
return { error: true, message: "Неверный тип мессенджера" };
|
|
69
69
|
}
|
|
70
70
|
if (!messageData.phone || !messageData.message) {
|
|
71
|
-
return { error: true, message: "Отсутствует phone или message"
|
|
71
|
+
return { error: true, message: "Отсутствует phone или message" };
|
|
72
72
|
}
|
|
73
73
|
const check = await this.checkTokenChatApp();
|
|
74
74
|
if (check.error) {
|
|
75
|
-
return { error: true, message: `Ошибка с токеном ChatApp в функции sendMessageChatApp класса ChatApp\n${check.message}
|
|
75
|
+
return { error: true, message: `Ошибка с токеном ChatApp в функции sendMessageChatApp класса ChatApp\n${check.message}` };
|
|
76
76
|
}
|
|
77
77
|
const phone = messageData.phone;
|
|
78
78
|
const caption = messageData.message;
|
|
@@ -116,7 +116,7 @@ export class ChatApp {
|
|
|
116
116
|
}
|
|
117
117
|
async phoneCheckChatApp(messangerType, phone) {
|
|
118
118
|
if (!["whatsApp", "telegram"].includes(messangerType)) {
|
|
119
|
-
return { error: true, message: "Неверный тип мессенджера"
|
|
119
|
+
return { error: true, message: "Неверный тип мессенджера" };
|
|
120
120
|
}
|
|
121
121
|
const check = await this.checkTokenChatApp();
|
|
122
122
|
if (check.error) {
|
|
@@ -174,7 +174,7 @@ export class ChatApp {
|
|
|
174
174
|
}
|
|
175
175
|
catch (error) {
|
|
176
176
|
const err = error;
|
|
177
|
-
return { error: true, message: err.message
|
|
177
|
+
return { error: true, message: err.message };
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
async makeTokenChatApp() {
|
|
@@ -208,7 +208,7 @@ export class ChatApp {
|
|
|
208
208
|
}
|
|
209
209
|
catch (error) {
|
|
210
210
|
const err = error;
|
|
211
|
-
return { error: true, message: err.message
|
|
211
|
+
return { error: true, message: err.message };
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
async refreshTokenChatApp() {
|
|
@@ -245,7 +245,7 @@ export class ChatApp {
|
|
|
245
245
|
}
|
|
246
246
|
catch (error) {
|
|
247
247
|
const err = error;
|
|
248
|
-
return { error: true, message: err.message
|
|
248
|
+
return { error: true, message: err.message };
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
async getLicensesChatApp() {
|
|
@@ -260,7 +260,7 @@ export class ChatApp {
|
|
|
260
260
|
});
|
|
261
261
|
const data = (await response.json());
|
|
262
262
|
if (!data.success) {
|
|
263
|
-
return { error: true, message: "Не удалось получить лицензии ChatApp"
|
|
263
|
+
return { error: true, message: "Не удалось получить лицензии ChatApp" };
|
|
264
264
|
}
|
|
265
265
|
else {
|
|
266
266
|
return { error: false, message: "Лицензии успешно получены", data: data.licenses };
|
|
@@ -268,7 +268,7 @@ export class ChatApp {
|
|
|
268
268
|
}
|
|
269
269
|
catch (error) {
|
|
270
270
|
const err = error;
|
|
271
|
-
return { error: true, message: err.message
|
|
271
|
+
return { error: true, message: err.message };
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
274
|
}
|
|
@@ -11,10 +11,10 @@ export class Smsgold {
|
|
|
11
11
|
const { phone, message } = messageData;
|
|
12
12
|
// Проверяем наличие необходимых данных
|
|
13
13
|
if (!this.user || !this.pass) {
|
|
14
|
-
return { error: true, message: "Отсутствуют учетные данные SMSGold"
|
|
14
|
+
return { error: true, message: "Отсутствуют учетные данные SMSGold" };
|
|
15
15
|
}
|
|
16
16
|
if (!phone || !message) {
|
|
17
|
-
return { error: true, message: "Отсутствуют номер телефона или текст сообщения"
|
|
17
|
+
return { error: true, message: "Отсутствуют номер телефона или текст сообщения" };
|
|
18
18
|
}
|
|
19
19
|
// Проверяем нужно ли отправить файл
|
|
20
20
|
let publicLink = "";
|
|
@@ -67,13 +67,13 @@ export class Smsgold {
|
|
|
67
67
|
statusText: result.statusText,
|
|
68
68
|
errorText: errorText,
|
|
69
69
|
};
|
|
70
|
-
return { error: true, message: `API ошибка: ${result.status}`,
|
|
70
|
+
return { error: true, message: `API ошибка: ${result.status}`, data: messageErr };
|
|
71
71
|
}
|
|
72
72
|
const responseData = await result.text();
|
|
73
73
|
return {
|
|
74
74
|
error: false,
|
|
75
75
|
message: "SMS отправлено успешно",
|
|
76
|
-
|
|
76
|
+
data: {
|
|
77
77
|
status: result.status,
|
|
78
78
|
statusText: result.statusText,
|
|
79
79
|
data: responseData,
|
|
@@ -82,7 +82,7 @@ export class Smsgold {
|
|
|
82
82
|
}
|
|
83
83
|
catch (error) {
|
|
84
84
|
const err = error;
|
|
85
|
-
return { error: true, message: err.message
|
|
85
|
+
return { error: true, message: err.message };
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
// Функция для закачивания файла в папку битрикс24. Используем метод disk.folder.uploadfile
|
|
@@ -29,7 +29,9 @@ export declare class Wappi {
|
|
|
29
29
|
phoneCheckWappi(messangerType: MessengerType, phone: string): Promise<ApiResult<WappiResponse>>;
|
|
30
30
|
getContactTelegramWappi(phone: string): Promise<ApiResult<WappiResponse>>;
|
|
31
31
|
addContactTelegramWappi(phone: string): Promise<ApiResult<WappiResponse>>;
|
|
32
|
-
convertToBase64(fileUrl: string): Promise<ApiResult<
|
|
32
|
+
convertToBase64(fileUrl: string): Promise<ApiResult<{
|
|
33
|
+
base64: string;
|
|
34
|
+
}>>;
|
|
33
35
|
}
|
|
34
36
|
export {};
|
|
35
37
|
//# sourceMappingURL=wappi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wappi.d.ts","sourceRoot":"","sources":["../../src/sendMessage/wappi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE1F,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,KAAK;IACd,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,YAAY,CAAY;gBAEpB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;IAOxE,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAuD3G,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAqGxG,eAAe,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAuE/F,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAkCzE,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAyCzE,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"wappi.d.ts","sourceRoot":"","sources":["../../src/sendMessage/wappi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE1F,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,KAAK;IACd,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,YAAY,CAAY;gBAEpB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;IAOxE,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAuD3G,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAqGxG,eAAe,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAuE/F,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAkCzE,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAyCzE,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAgBjF"}
|
|
@@ -21,10 +21,10 @@ export class Wappi {
|
|
|
21
21
|
// bot_id=1 нужно чтобы сообщение отображалось в открытой линии Битрикс24
|
|
22
22
|
async sendMessageWappi(messangerType, messageData) {
|
|
23
23
|
if (!["whatsApp", "telegram", "max"].includes(messangerType)) {
|
|
24
|
-
return { error: true, message: "Неверный тип мессенджера"
|
|
24
|
+
return { error: true, message: "Неверный тип мессенджера" };
|
|
25
25
|
}
|
|
26
26
|
if (!messageData.phone || !messageData.message) {
|
|
27
|
-
return { error: true, message: "Отсутствует phone или message"
|
|
27
|
+
return { error: true, message: "Отсутствует phone или message" };
|
|
28
28
|
}
|
|
29
29
|
const phone = messageData.phone;
|
|
30
30
|
const message = messageData.message;
|
|
@@ -70,13 +70,13 @@ export class Wappi {
|
|
|
70
70
|
}
|
|
71
71
|
async sendFileWappi(messangerType, messageData) {
|
|
72
72
|
if (!["whatsApp", "telegram", "max"].includes(messangerType)) {
|
|
73
|
-
return { error: true, message: "Неверный тип мессенджера"
|
|
73
|
+
return { error: true, message: "Неверный тип мессенджера" };
|
|
74
74
|
}
|
|
75
75
|
if (!messageData.phone || !messageData.message) {
|
|
76
|
-
return { error: true, message: "Отсутствует phone или message"
|
|
76
|
+
return { error: true, message: "Отсутствует phone или message" };
|
|
77
77
|
}
|
|
78
78
|
if (!messageData.fileUrl || !messageData.fileName) {
|
|
79
|
-
return { error: true, message: "Отсутствует fileUrl или fileName"
|
|
79
|
+
return { error: true, message: "Отсутствует fileUrl или fileName" };
|
|
80
80
|
}
|
|
81
81
|
const phone = messageData.phone;
|
|
82
82
|
const message = messageData.message;
|
|
@@ -94,11 +94,11 @@ export class Wappi {
|
|
|
94
94
|
profile_id = this.whatsAppAuth.profile_id;
|
|
95
95
|
// скачивам файл и конвертируем в base64
|
|
96
96
|
const resConvert = await this.convertToBase64(fileUrl);
|
|
97
|
-
if (resConvert.error) {
|
|
98
|
-
return { error: true, message: `Ошибка при конвертации файла в base64 для WhatsApp: ${resConvert.message}
|
|
97
|
+
if (resConvert.error || !resConvert.data) {
|
|
98
|
+
return { error: true, message: `Ошибка при конвертации файла в base64 для WhatsApp: ${resConvert.message}` };
|
|
99
99
|
}
|
|
100
100
|
else {
|
|
101
|
-
base64 = resConvert.data
|
|
101
|
+
base64 = resConvert.data.base64;
|
|
102
102
|
}
|
|
103
103
|
if (fileName.includes(".pdf")) {
|
|
104
104
|
url = `https://wappi.pro/api/async/message/document/send?${sendOpenLine}profile_id=${profile_id}`;
|
|
@@ -113,11 +113,11 @@ export class Wappi {
|
|
|
113
113
|
profile_id = this.telegaAuth.profile_id;
|
|
114
114
|
// скачивам файл и конвертируем в base64
|
|
115
115
|
const resConvert = await this.convertToBase64(fileUrl);
|
|
116
|
-
if (resConvert.error) {
|
|
117
|
-
return { error: true, message: `Ошибка при конвертации файла в base64 для Telegram: ${resConvert.message}
|
|
116
|
+
if (resConvert.error || !resConvert.data) {
|
|
117
|
+
return { error: true, message: `Ошибка при конвертации файла в base64 для Telegram: ${resConvert.message}` };
|
|
118
118
|
}
|
|
119
119
|
else {
|
|
120
|
-
base64 = resConvert.data
|
|
120
|
+
base64 = resConvert.data.base64;
|
|
121
121
|
}
|
|
122
122
|
if (fileName.includes(".pdf")) {
|
|
123
123
|
url = `https://wappi.pro/tapi/sync/message/document/send?${sendOpenLine}profile_id=${profile_id}`;
|
|
@@ -160,10 +160,10 @@ export class Wappi {
|
|
|
160
160
|
}
|
|
161
161
|
async phoneCheckWappi(messangerType, phone) {
|
|
162
162
|
if (!["whatsApp", "telegram", "max"].includes(messangerType)) {
|
|
163
|
-
return { error: true, message: "Неверный тип мессенджера"
|
|
163
|
+
return { error: true, message: "Неверный тип мессенджера" };
|
|
164
164
|
}
|
|
165
165
|
if (!phone) {
|
|
166
|
-
return { error: true, message: "Отсутствует phone "
|
|
166
|
+
return { error: true, message: "Отсутствует phone " };
|
|
167
167
|
}
|
|
168
168
|
let url = "";
|
|
169
169
|
let token = "";
|
|
@@ -222,7 +222,7 @@ export class Wappi {
|
|
|
222
222
|
}
|
|
223
223
|
async getContactTelegramWappi(phone) {
|
|
224
224
|
if (!phone) {
|
|
225
|
-
return { error: true, message: "Отсутствует phone"
|
|
225
|
+
return { error: true, message: "Отсутствует phone" };
|
|
226
226
|
}
|
|
227
227
|
const token = this.telegaAuth.token;
|
|
228
228
|
const profile_id = this.telegaAuth.profile_id;
|
|
@@ -247,12 +247,12 @@ export class Wappi {
|
|
|
247
247
|
}
|
|
248
248
|
catch (error) {
|
|
249
249
|
const err = error;
|
|
250
|
-
return { error: true, message: `Ошибка при запросе контакта: ${err.message}
|
|
250
|
+
return { error: true, message: `Ошибка при запросе контакта: ${err.message}` };
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
async addContactTelegramWappi(phone) {
|
|
254
254
|
if (!phone) {
|
|
255
|
-
return { error: true, message: "Отсутствует phone"
|
|
255
|
+
return { error: true, message: "Отсутствует phone" };
|
|
256
256
|
}
|
|
257
257
|
// Генерируем случайную строку из четырех символов
|
|
258
258
|
const randomString = Math.random().toString(36).substring(2, 6).toUpperCase();
|
|
@@ -283,7 +283,7 @@ export class Wappi {
|
|
|
283
283
|
}
|
|
284
284
|
catch (error) {
|
|
285
285
|
const err = error;
|
|
286
|
-
return { error: true, message: `Ошибка при создании контакта: ${err.message}
|
|
286
|
+
return { error: true, message: `Ошибка при создании контакта: ${err.message}` };
|
|
287
287
|
}
|
|
288
288
|
}
|
|
289
289
|
// Скачиваем файл по ссылке и конвертируем в base64
|
|
@@ -296,7 +296,7 @@ export class Wappi {
|
|
|
296
296
|
const arrayBuffer = await response.arrayBuffer();
|
|
297
297
|
const buffer = Buffer.from(arrayBuffer);
|
|
298
298
|
const base64String = buffer.toString("base64");
|
|
299
|
-
return { error: false,
|
|
299
|
+
return { error: false, message: "Файл конвертирован в base64.", data: { base64: base64String } };
|
|
300
300
|
}
|
|
301
301
|
catch (error) {
|
|
302
302
|
const err = error;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|