@andrey4emk/npm-app-back-b24 0.5.19 → 0.5.21
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/bitrix24/b24.js +14 -33
- package/package.json +1 -1
- package/sendMessage/chatApp.js +0 -3
- package/sendMessage/smsgold.js +2 -9
package/bitrix24/b24.js
CHANGED
|
@@ -13,63 +13,44 @@ const APP_B24_CLIENT_SECRET_DEV = process.env.APP_B24_CLIENT_SECRET_DEV;
|
|
|
13
13
|
const APP_B24_CLIENT_SECRET = process.env.APP_B24_CLIENT_SECRET;
|
|
14
14
|
const APP_NAME = process.env.APP_NAME;
|
|
15
15
|
|
|
16
|
-
async function makeAuthParams(
|
|
17
|
-
let authSql = await AuthB24Model.findOne({
|
|
18
|
-
where: {
|
|
19
|
-
name: `${APP_B24_DOMEN}_${APP_ENV}`,
|
|
20
|
-
},
|
|
21
|
-
raw: true,
|
|
22
|
-
});
|
|
23
|
-
if (!authSql) {
|
|
24
|
-
// Явно выбрасываем ошибку — caller может её поймать и вернуть понятный ответ
|
|
25
|
-
throw new Error(`Auth record not found for domain: ${APP_B24_DOMEN}`);
|
|
26
|
-
}
|
|
16
|
+
async function makeAuthParams(authParamB24, secretParamB24) {
|
|
27
17
|
// Формируем параметры авторизации для SDK
|
|
28
18
|
let AuthParams = {
|
|
29
19
|
applicationToken: "", // если нет — можно '' (см. примечание ниже)
|
|
30
20
|
userId: 0, // если неизвестен — 0
|
|
31
|
-
memberId:
|
|
32
|
-
accessToken:
|
|
33
|
-
refreshToken:
|
|
34
|
-
expires:
|
|
21
|
+
memberId: authParamB24.member_id,
|
|
22
|
+
accessToken: authParamB24.access_token,
|
|
23
|
+
refreshToken: authParamB24.refresh_token,
|
|
24
|
+
expires: authParamB24.expires_in,
|
|
35
25
|
expiresIn: 1800,
|
|
36
26
|
scope: "", // если нет строки scope — оставьте пусто
|
|
37
|
-
domain:
|
|
38
|
-
clientEndpoint: `https://${
|
|
27
|
+
domain: authParamB24.domain,
|
|
28
|
+
clientEndpoint: `https://${authParamB24.domain}/rest/`,
|
|
39
29
|
serverEndpoint: "https://oauth.bitrix.info/rest/",
|
|
40
30
|
status: "L", // Local — для локальных приложений; подставьте свой вариант
|
|
41
31
|
issuer: "store", // опционально
|
|
42
32
|
};
|
|
43
33
|
let secret = {
|
|
44
|
-
clientId:
|
|
45
|
-
clientSecret:
|
|
34
|
+
clientId: secretParamB24.clientId,
|
|
35
|
+
clientSecret: secretParamB24.clientSecret,
|
|
46
36
|
};
|
|
47
37
|
return { AuthParams, secret };
|
|
48
38
|
}
|
|
49
39
|
|
|
50
|
-
export async function create(
|
|
51
|
-
let { AuthParams, secret } = await makeAuthParams(
|
|
40
|
+
export async function create(authParamB24, secretParamB24) {
|
|
41
|
+
let { AuthParams, secret } = await makeAuthParams(authParamB24, secretParamB24);
|
|
52
42
|
return new B24OAuth(AuthParams, secret);
|
|
53
43
|
}
|
|
54
44
|
|
|
55
45
|
// Функция продления токена битрикс24 и сохранения в БД
|
|
56
|
-
export async function refresh(
|
|
46
|
+
export async function refresh(authParamB24, secretParamB24) {
|
|
57
47
|
try {
|
|
58
|
-
let { AuthParams, secret } = await makeAuthParams(
|
|
48
|
+
let { AuthParams, secret } = await makeAuthParams(authParamB24, secretParamB24);
|
|
59
49
|
let newToken = await new AuthOAuthManager(AuthParams, secret).refreshAuth();
|
|
60
50
|
if (!newToken) {
|
|
61
51
|
return { error: true, message: "В refresh не получили токен" };
|
|
62
52
|
}
|
|
63
|
-
|
|
64
|
-
await AuthB24Model.upsert({
|
|
65
|
-
access_token: newToken.access_token,
|
|
66
|
-
refresh_token: newToken.refresh_token,
|
|
67
|
-
domain: newToken.domain,
|
|
68
|
-
expires_in: newToken.expires,
|
|
69
|
-
member_id: newToken.member_id,
|
|
70
|
-
name: `${newToken.domain}_${APP_ENV}`,
|
|
71
|
-
});
|
|
72
|
-
return { error: false, message: "Токены битрикс24 успешно обновлены." };
|
|
53
|
+
return { error: false, message: "Токены битрикс24 успешно обновлены.", data: newToken };
|
|
73
54
|
} catch (error) {
|
|
74
55
|
return { error: true, message: "Не удалось продлить авторизацию." };
|
|
75
56
|
}
|
package/package.json
CHANGED
package/sendMessage/chatApp.js
CHANGED
package/sendMessage/smsgold.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import dotEnv from "dotenv";
|
|
2
|
-
|
|
3
|
-
dotEnv.config();
|
|
4
|
-
|
|
5
1
|
export class Smsgold {
|
|
6
2
|
constructor(authParam, b24 = null) {
|
|
7
3
|
this.user = authParam.user;
|
|
@@ -42,7 +38,6 @@ export class Smsgold {
|
|
|
42
38
|
});
|
|
43
39
|
publicLink = publicLink.getData().result;
|
|
44
40
|
} catch (error) {
|
|
45
|
-
logs.add(`Ошибка при получении публичной ссылки на файл: ${error.message}`, "error");
|
|
46
41
|
return { error: true, message: `Ошибка при получении публичной ссылки на файл: ${error.message}` };
|
|
47
42
|
}
|
|
48
43
|
}
|
|
@@ -51,7 +46,7 @@ export class Smsgold {
|
|
|
51
46
|
user: this.user,
|
|
52
47
|
pass: this.pass,
|
|
53
48
|
action: "send",
|
|
54
|
-
text: message + (publicLink ? `\n${publicLink}` : ""),
|
|
49
|
+
text: message + (publicLink ? `\n\n${publicLink}` : ""),
|
|
55
50
|
number: phone,
|
|
56
51
|
sender: "potolkiRepa",
|
|
57
52
|
}).toString();
|
|
@@ -91,11 +86,10 @@ export class Smsgold {
|
|
|
91
86
|
|
|
92
87
|
// Функция для закачивания файла в папку битрикс24. Используем метод disk.folder.uploadfile
|
|
93
88
|
async uploadFileInFolderB24(fileBuffer, fileName) {
|
|
94
|
-
console.log(`Запустили uploadFileInFolderB24()`);
|
|
95
89
|
try {
|
|
96
90
|
let base64File = await fileBuffer.toString("base64");
|
|
97
91
|
// Используем метод disk.folder.uploadfile
|
|
98
|
-
let res = await b24.callMethod("disk.folder.uploadfile", {
|
|
92
|
+
let res = await this.b24.callMethod("disk.folder.uploadfile", {
|
|
99
93
|
id: 2792881, // Id папки "contract_company" из проекта "Документы и договора" https://repacheb.bitrix24.ru/workgroups/group/193/disk/path/
|
|
100
94
|
data: {
|
|
101
95
|
NAME: fileName,
|
|
@@ -105,7 +99,6 @@ export class Smsgold {
|
|
|
105
99
|
const data = await res.getData().result;
|
|
106
100
|
return { error: false, data: data };
|
|
107
101
|
} catch (error) {
|
|
108
|
-
logs.add(`Ошибка при загрузке файла в папку битрикс24: ${error.message}`, "error");
|
|
109
102
|
return { error: true, message: `Ошибка при загрузке файла в папку битрикс24: ${error.message}` };
|
|
110
103
|
}
|
|
111
104
|
}
|