@tiledesk/tiledesk-tybot-connector 2.0.8-rc1 → 2.0.8

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/CHANGELOG.md CHANGED
@@ -5,17 +5,16 @@
5
5
  available on:
6
6
  ▶️ https://www.npmjs.com/package/@tiledesk/tiledesk-tybot-connector
7
7
 
8
+ # 2.0.8
9
+
10
+ # 2.0.8-rc2
11
+ - added: check on preloaded_request_id in /block
12
+
8
13
  # 2.0.8-rc1
9
14
  - removed: TILEBOT_LOG var
10
15
 
11
- # 0.5.1-rc1
12
- - added json_buttons
13
- - added winston log with code refactoring
14
-
15
16
  # v0.5.0
16
17
  - added: AI_ENDPOINT env var
17
-
18
- # v0.5.0-rc1
19
18
  - added: ability to get 'none' as bodytype in webresponse
20
19
 
21
20
  # v0.4.2
@@ -30,19 +29,6 @@ available on:
30
29
  - changed: refactoring of DIrWebRequestv2
31
30
  - bug-fixed: erro while parsing webrequestv2 body
32
31
 
33
- # v0.3.5-rc4
34
- - added: webhook action (same as intent one)
35
-
36
- # v0.3.5-rc3
37
- - bug-fixed: jsonBody parse error in web-request-v2
38
-
39
- # v0.3.5-rc2
40
- - bug-fixed: cannot set status of undefined reading res.status in DirAssistant
41
-
42
- # v0.3.5-rc1
43
- - changed: refactoring web-request-v2
44
- - bug-fixed: jsonBody parse error in web-request-v2
45
-
46
32
  # v0.3.4
47
33
  -bug-fixed: slit is undefined in TiledeskChatbotUtils
48
34
 
@@ -52,18 +38,6 @@ available on:
52
38
  # v0.3.2
53
39
  - bug-fixed: minor improvement
54
40
 
55
- # v0.2.153-rc9
56
- - changed: updated tiledesk-multi-worker to 0.2.1-rc2
57
-
58
- # v0.2.153-rc8
59
- - added: fixToken function in TiledeskService utils class
60
-
61
- # v0.2.153-rc4
62
- - log added
63
-
64
- # v0.2.153-rc3
65
- - added: specchToText function to transcript audio file
66
-
67
41
  # v0.2.153-rc1
68
42
  - changed: context for gpt-40 and gpt-40-mini
69
43
 
package/Logger.js CHANGED
@@ -2,18 +2,13 @@ let { Publisher } = require("@tiledesk/tiledesk-multi-worker");
2
2
 
3
3
  const FLOW_LOGS_ENABLED = process.env.FLOW_LOGS_ENABLED;
4
4
  const AMQP_MANAGER_URL = process.env.AMQP_MANAGER_URL;
5
- const LOGS_BASE_ROUTING_KEY = process.env.LOGS_BASE_ROUTING_KEY || "apps.tilechat.logs";
6
-
7
- const levels = { error: 0, warn: 1, info: 2, debug: 3 };
8
-
9
5
  let publisher = new Publisher(AMQP_MANAGER_URL, {
10
6
  debug: false,
11
7
  queueName: "logs_queue",
12
- exchange: "amq.topic"
8
+ exchange: "tiledesk-multi",
9
+ topic: "logs",
13
10
  })
14
11
 
15
- console.log("LOGGER publisher: ", publisher);
16
-
17
12
  class Logger {
18
13
 
19
14
  constructor(config) {
@@ -38,15 +33,10 @@ class Logger {
38
33
  }
39
34
 
40
35
  this.request_id = config.request_id;
41
- console.log("LOGGER for request ", this.request_id);
42
-
43
36
  this.dev = false;
44
- console.log("LOGGER is dev conversation ? ", config.dev);
45
- // if (config.dev && config.dev === true) {
46
- // this.dev = true;
47
- // } else {
48
- // this._disableDebugMethods()
49
- // }
37
+ if (config.dev && config.dev === true) {
38
+ this.dev = true;
39
+ }
50
40
 
51
41
  // if (!AMQP_MANAGER_URL) {
52
42
  // console.error('AMQP_MANAGER_URL is undefined. Logger not available...');
@@ -78,29 +68,27 @@ class Logger {
78
68
 
79
69
  base(level, text) {
80
70
  if (!this.request_id || !publisher) {
81
- console.log("Return because request or publisher is undefined", this.request_id, publisher);
71
+ //console.log("Return because request or publisher is undefined", this.request_id, publisher);
82
72
  return;
83
73
  }
84
74
 
85
75
  let data = {
86
76
  request_id: this.request_id,
87
- id_project: this.request_id.split("-")[2],
88
77
  text: text,
89
78
  level: level,
90
- nlevel: levels[level],
91
79
  timestamp: new Date(),
92
80
  dev: this.dev
93
81
  }
94
82
 
95
- let topic = LOGS_BASE_ROUTING_KEY + `.${this.request_id}`;
96
- console.log("LOGGER publishing on topic ", topic)
97
- publisher.publish(data, topic);
98
- return;
83
+ publisher.publish(data, (err, ok) => {
84
+ if (err) console.warn("publish log fail: ", err);
85
+ return;
86
+ })
99
87
  }
100
88
 
101
89
  formatLog(args) {
102
90
  return args
103
- .map(arg => (typeof arg === "object" ? JSON.stringify(arg, null, 2) : arg))
91
+ .map(arg => (typeof arg === "object" ? JSON.stringify(arg, null, 2) : arg ))
104
92
  .join(" ")
105
93
  }
106
94
 
@@ -108,14 +96,9 @@ class Logger {
108
96
  _disableMethods() {
109
97
  const methods = ['error', 'warn', 'info', 'debug'];
110
98
  methods.forEach(method => {
111
- this[method] = () => { };
99
+ this[method] = () => {};
112
100
  });
113
- }
114
-
115
- _disableDebugMethods() {
116
- const method = 'debug';
117
- this[method] = () => { };
118
- }
101
+ }
119
102
 
120
103
  }
121
104
 
@@ -0,0 +1,242 @@
1
+ const redis = require('redis');
2
+
3
+ class TdCache {
4
+
5
+ constructor(config) {
6
+ this.redis_host = config.host;
7
+ this.redis_port = config.port;
8
+ this.redis_password = config.password;
9
+ this.client = null;
10
+ }
11
+
12
+ async connect(callback) {
13
+ // client = redis.createClient();
14
+ return new Promise( async (resolve, reject) => {
15
+ this.client = redis.createClient(
16
+ {
17
+ host: this.redis_host,
18
+ port: this.redis_port,
19
+ password: this.redis_password
20
+ });
21
+ this.client.on('error', err => {
22
+ reject(err);
23
+ if (callback) {
24
+ callback(err);
25
+ }
26
+ });
27
+ // this.client.on('connect', function() {
28
+ // console.log('Redis Connected!');
29
+ // });
30
+ this.client.on('ready',function() {
31
+ console.log("connected")
32
+ resolve();
33
+ if (callback) {
34
+ callback();
35
+ }
36
+ //console.log("Redis is ready.");
37
+ });
38
+ });
39
+ }
40
+
41
+ async set(key, value, options) {
42
+ //console.log("setting key value", key, value)
43
+ if (!options) {
44
+ options = {EX: 86400}
45
+ }
46
+ return new Promise( async (resolve, reject) => {
47
+ if (options && options.EX) {
48
+ //console.log("expires:", options.EX)
49
+ try {
50
+ await this.client.set(
51
+ key,
52
+ value,
53
+ 'EX', options.EX);
54
+ }
55
+ catch(error) {
56
+ reject(error)
57
+ }
58
+ }
59
+ else {
60
+ try {
61
+ //console.log("setting here...key", key, value)
62
+ await this.client.set(
63
+ key,
64
+ value);
65
+ }
66
+ catch(error) {
67
+ console.error("Error", error);
68
+ reject(error)
69
+ }
70
+ }
71
+ if (options && options.callback) {
72
+ options.callback();
73
+ }
74
+ //console.log("resolving...", key);
75
+ return resolve();
76
+ });
77
+ }
78
+
79
+ async incr(key) {
80
+ // console.log("incr key:", key)
81
+ return new Promise( async (resolve, reject) => {
82
+ try {
83
+ // console.log("incr here...key", key)
84
+ await this.client.incr(key);
85
+ }
86
+ catch(error) {
87
+ console.error("Error on incr:", error);
88
+ reject(error)
89
+ }
90
+ return resolve();
91
+ });
92
+ }
93
+
94
+ async hset(dict_key, key, value, options) {
95
+ //console.log("hsetting dict_key key value", dict_key, key, value)
96
+ return new Promise( async (resolve, reject) => {
97
+ if (options && options.EX) {
98
+ //console.log("expires:", options.EX)
99
+ try {
100
+ await this.client.hset(
101
+ dict_key,
102
+ key,
103
+ value,
104
+ 'EX', options.EX);
105
+ }
106
+ catch(error) {
107
+ reject(error)
108
+ }
109
+ }
110
+ else {
111
+ try {
112
+ //console.log("setting here...key", key, value)
113
+ await this.client.hset(
114
+ dict_key,
115
+ key,
116
+ value);
117
+ }
118
+ catch(error) {
119
+ console.error("Error", error);
120
+ reject(error)
121
+ }
122
+ }
123
+ if (options && options.callback) {
124
+ options.callback();
125
+ }
126
+ return resolve();
127
+ });
128
+ }
129
+
130
+ async hdel(dict_key, key, options) {
131
+ //console.log("hsetting dict_key key value", dict_key, key, value)
132
+ return new Promise( async (resolve, reject) => {
133
+ if (options && options.EX) {
134
+ //console.log("expires:", options.EX)
135
+ try {
136
+ await this.client.hdel(
137
+ dict_key,
138
+ key,
139
+ 'EX', options.EX);
140
+ }
141
+ catch(error) {
142
+ reject(error)
143
+ }
144
+ }
145
+ else {
146
+ try {
147
+ //console.log("setting here...key", key, value)
148
+ await this.client.hdel(
149
+ dict_key,
150
+ key);
151
+ }
152
+ catch(error) {
153
+ console.error("Error", error);
154
+ reject(error);
155
+ }
156
+ }
157
+ if (options && options.callback) {
158
+ options.callback();
159
+ }
160
+ return resolve();
161
+ });
162
+ }
163
+
164
+ async setJSON(key, value, options) {
165
+ const _string = JSON.stringify(value);
166
+ return await this.set(key, _string, options);
167
+ }
168
+
169
+ async get(key, callback) {
170
+ //console.log("getting key", key)
171
+ return new Promise( async (resolve, reject) => {
172
+ this.client.get(key, (err, value) => {
173
+ if (err) {
174
+ reject(err);
175
+ }
176
+ else {
177
+ if (callback) {
178
+ callback(value);
179
+ }
180
+ return resolve(value);
181
+ }
182
+ });
183
+ });
184
+ }
185
+
186
+ async hgetall(dict_key, callback) {
187
+ //console.log("hgetting dics", dict_key);
188
+ return new Promise( async (resolve, reject) => {
189
+ this.client.hgetall(dict_key, (err, value) => {
190
+ if (err) {
191
+ reject(err);
192
+ if (callback) {
193
+ callback(err, null);
194
+ }
195
+ }
196
+ else {
197
+ if (callback) {
198
+ callback(null, value);
199
+ }
200
+ resolve(value);
201
+ }
202
+ });
203
+ });
204
+ }
205
+
206
+ async hget(dict_key, key, callback) {
207
+ //console.log("hgetting dics", dict_key);
208
+ return new Promise( async (resolve, reject) => {
209
+ this.client.hget(dict_key, key, (err, value) => {
210
+ if (err) {
211
+ reject(err);
212
+ if (callback) {
213
+ callback(err, null);
214
+ }
215
+ }
216
+ else {
217
+ if (callback) {
218
+ callback(null, value);
219
+ }
220
+ resolve(value);
221
+ }
222
+ });
223
+ });
224
+ }
225
+
226
+ async getJSON(key, callback) {
227
+ const value = await this.get(key);
228
+ return JSON.parse(value);
229
+ }
230
+
231
+ async del(key, callback) {
232
+ return new Promise( async (resolve, reject) => {
233
+ await this.client.del(key);
234
+ if (callback) {
235
+ callback();
236
+ }
237
+ return resolve();
238
+ })
239
+ }
240
+ }
241
+
242
+ module.exports = { TdCache };
@@ -24,7 +24,8 @@ class MockBotsDataSource {
24
24
  }catch(err){
25
25
  reject(err);
26
26
  }
27
- })
27
+
28
+ })
28
29
  }
29
30
 
30
31
  async getBotByIdCache(botId, tdcache) {
package/index.js CHANGED
@@ -112,9 +112,6 @@ router.post('/ext/:botid', async (req, res) => {
112
112
  Promise.reject(err);
113
113
  return;
114
114
  });
115
-
116
- winston.debug("(tybotRoute) Bot found: ", bot)
117
-
118
115
 
119
116
  let intentsMachine;
120
117
  let backupMachine;