@tiledesk/tiledesk-server 2.4.36 → 2.4.38
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +33 -0
- package/app.js +5 -3
- package/channels/channelManager.js +1 -1
- package/jobs.js +11 -3
- package/jobsManager.js +9 -1
- package/models/faq.js +4 -1
- package/package.json +2 -1
- package/pubmodules/activities/activityArchiver.js +9 -8
- package/pubmodules/queue/reconnect.js +29 -3
- package/pubmodules/s/index.js +2 -0
- package/pubmodules/s/models/subscription-payment.js +2 -0
- package/pubmodules/s/stripe/index.js +2 -0
- package/routes/email.js +4 -1
- package/routes/faq.js +59 -0
- package/services/emailService.js +72 -71
- package/services/modulesManager.js +3 -2
- package/services/subscriptionNotifier.js +101 -59
- package/services/subscriptionNotifierQueued.js +124 -0
- package/test/faqRoute.js +73 -16
- package/test/faqkbRoute.js +2 -2
@@ -202,18 +202,23 @@ class SubscriptionNotifier {
|
|
202
202
|
return 0;
|
203
203
|
}
|
204
204
|
|
205
|
+
// queued
|
206
|
+
// var messageCreateKey = 'message.create';
|
207
|
+
// if (messageEvent.queueEnabled) {
|
208
|
+
// messageCreateKey = 'message.create.queue';
|
209
|
+
// }
|
210
|
+
// messageEvent.on(messageCreateKey, function(message) { //queued tested
|
211
|
+
// setImmediate(() => {
|
212
|
+
// winston.info('SubscriptionNotifier message.create');
|
213
|
+
// subscriptionNotifier.subscribe('message.create', message);
|
214
|
+
// });
|
215
|
+
// });
|
205
216
|
|
206
|
-
|
207
|
-
setImmediate(() => {
|
208
|
-
subscriptionNotifier.subscribe('message.create', message);
|
209
|
-
});
|
210
|
-
});
|
211
|
-
|
212
|
-
message2Event.on('message.create.**.channel.*', function(message) {
|
217
|
+
message2Event.on('message.create.**.channel.*', function(message) { //notqueued high
|
213
218
|
// message2Event.on('message.create.request.channel.*', function(message) {
|
214
219
|
winston.debug("message2Event: "+this.event, message);
|
215
220
|
subscriptionNotifier.subscribe(this.event, message);
|
216
|
-
|
221
|
+
}, {async: true});
|
217
222
|
|
218
223
|
|
219
224
|
|
@@ -235,72 +240,103 @@ class SubscriptionNotifier {
|
|
235
240
|
// });
|
236
241
|
|
237
242
|
|
238
|
-
requestEvent.on('request.create', function(request) {
|
239
|
-
setImmediate(() => {
|
240
|
-
subscriptionNotifier.subscribe('request.create', request);
|
241
|
-
});
|
242
|
-
});
|
243
243
|
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
}
|
244
|
+
// queued
|
245
|
+
// var requestCreateKey = 'request.create';
|
246
|
+
// if (requestEvent.queueEnabled) {
|
247
|
+
// requestCreateKey = 'request.create.queue';
|
248
|
+
// }
|
249
|
+
// requestEvent.on(requestCreateKey, function(request) { //queued tested
|
250
|
+
// setImmediate(() => {
|
251
|
+
// winston.info('SubscriptionNotifier request.create');
|
252
|
+
// subscriptionNotifier.subscribe('request.create', request);
|
253
|
+
// });
|
254
|
+
// });
|
249
255
|
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
256
|
+
|
257
|
+
// queued
|
258
|
+
// var requestUpdateKey = 'request.update';
|
259
|
+
// if (requestEvent.queueEnabled) {
|
260
|
+
// requestUpdateKey = 'request.update.queue';
|
261
|
+
// }
|
262
|
+
// requestEvent.on(requestUpdateKey, function(request) { //queued tested
|
263
|
+
// setImmediate(() => {
|
264
|
+
// winston.info('SubscriptionNotifier request.update');
|
265
|
+
// subscriptionNotifier.subscribe('request.update', request);
|
266
|
+
// });
|
267
|
+
// });
|
259
268
|
|
260
269
|
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
270
|
+
// queued
|
271
|
+
// var requestCloseKey = 'request.close'; //request.close event here queued under job
|
272
|
+
// if (requestEvent.queueEnabled) {
|
273
|
+
// requestCloseKey = 'request.close.queue';
|
274
|
+
// }
|
275
|
+
// requestEvent.on(requestCloseKey, function(request) { //request.close event here noqueued //queued tested
|
276
|
+
// winston.info('SubscriptionNotifier request.close');
|
277
|
+
// winston.info("request.close event here 1")
|
278
|
+
// setImmediate(() => {
|
279
|
+
// Message.find({recipient: request.request_id, id_project: request.id_project}).sort({updatedAt: 'asc'}).exec(function(err, messages) {
|
280
|
+
// var requestJson = request;
|
281
|
+
// if (request.toJSON) {
|
282
|
+
// requestJson = request.toJSON();
|
283
|
+
// }
|
284
|
+
|
285
|
+
// requestJson.messages = messages;
|
286
|
+
// subscriptionNotifier.subscribe('request.close', requestJson);
|
287
|
+
// });
|
288
|
+
// });
|
289
|
+
// });
|
266
290
|
|
267
291
|
|
268
|
-
|
292
|
+
// queued
|
293
|
+
// var leadCreateKey = 'lead.create'; //request.close event here queued under job
|
294
|
+
// if (leadEvent.queueEnabled) {
|
295
|
+
// leadCreateKey = 'lead.create.queue';
|
296
|
+
// }
|
297
|
+
// leadEvent.on(leadCreateKey, function(lead) { //notqueued high
|
298
|
+
// setImmediate(() => {
|
299
|
+
// subscriptionNotifier.subscribe('lead.create', lead);
|
300
|
+
// });
|
301
|
+
// });
|
302
|
+
|
303
|
+
|
304
|
+
botEvent.on('faqbot.create', function(faqBot) { //notqueued
|
269
305
|
setImmediate(() => {
|
270
306
|
subscriptionNotifier.subscribe('faqbot.create', faqBot);
|
271
307
|
});
|
272
308
|
});
|
273
309
|
|
274
|
-
botEvent.on('faqbot.update', function(faqBot) {
|
310
|
+
botEvent.on('faqbot.update', function(faqBot) { //queued
|
275
311
|
setImmediate(() => {
|
276
312
|
subscriptionNotifier.subscribe('faqbot.update', faqBot);
|
277
313
|
});
|
278
314
|
});
|
279
315
|
|
280
|
-
botEvent.on('faqbot.delete', function(faqBot) {
|
316
|
+
botEvent.on('faqbot.delete', function(faqBot) { //notqueued
|
281
317
|
setImmediate(() => {
|
282
318
|
subscriptionNotifier.subscribe('faqbot.delete', faqBot);
|
283
319
|
});
|
284
320
|
});
|
285
321
|
|
286
|
-
faqBotEvent.on('faq.create', function(faq) {
|
322
|
+
faqBotEvent.on('faq.create', function(faq) { //notqueued
|
287
323
|
setImmediate(() => {
|
288
324
|
subscriptionNotifier.subscribe('faq.create', faq);
|
289
325
|
});
|
290
326
|
});
|
291
327
|
|
292
|
-
faqBotEvent.on('faq.update', function(faq) {
|
328
|
+
faqBotEvent.on('faq.update', function(faq) { //notqueued
|
293
329
|
setImmediate(() => {
|
294
330
|
subscriptionNotifier.subscribe('faq.update', faq);
|
295
331
|
});
|
296
332
|
});
|
297
|
-
faqBotEvent.on('faq.delete', function(faq) {
|
333
|
+
faqBotEvent.on('faq.delete', function(faq) { //notqueued
|
298
334
|
setImmediate(() => {
|
299
335
|
subscriptionNotifier.subscribe('faq.delete', faq);
|
300
336
|
});
|
301
337
|
});
|
302
338
|
|
303
|
-
authEvent.on('user.signup', function(event) {
|
339
|
+
authEvent.on('user.signup', function(event) { //notqueued
|
304
340
|
setImmediate(() => {
|
305
341
|
var user = event.savedUser;
|
306
342
|
delete user.password;
|
@@ -312,7 +348,7 @@ class SubscriptionNotifier {
|
|
312
348
|
|
313
349
|
// authEvent.emit('project_user.invite', {req:req, savedProject_userPopulated: savedProject_userPopulated});
|
314
350
|
|
315
|
-
authEvent.on('project_user.invite', function(event) {
|
351
|
+
authEvent.on('project_user.invite', function(event) { //notqueued
|
316
352
|
setImmediate(() => {
|
317
353
|
subscriptionNotifier.subscribe('project_user.invite', event.savedProject_userPopulated);
|
318
354
|
});
|
@@ -320,15 +356,21 @@ class SubscriptionNotifier {
|
|
320
356
|
|
321
357
|
// authEvent.emit('project_user.update', {updatedProject_userPopulated:updatedProject_userPopulated, req: req});
|
322
358
|
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
359
|
+
|
360
|
+
// queued
|
361
|
+
// var authProjectUserUpdateKey = 'project_user.update';
|
362
|
+
// if (authEvent.queueEnabled) {
|
363
|
+
// authProjectUserUpdateKey = 'project_user.update.queue';
|
364
|
+
// }
|
365
|
+
// authEvent.on(authProjectUserUpdateKey, function(event) { //notqueued high
|
366
|
+
// setImmediate(() => {
|
367
|
+
// subscriptionNotifier.subscribe('project_user.update', event.updatedProject_userPopulated);
|
368
|
+
// });
|
369
|
+
// });
|
328
370
|
|
329
371
|
// authEvent.emit('project_user.delete', {req: req, project_userPopulated: project_userPopulated});
|
330
372
|
|
331
|
-
authEvent.on('project_user.delete', function(event) {
|
373
|
+
authEvent.on('project_user.delete', function(event) { //notqueued
|
332
374
|
setImmediate(() => {
|
333
375
|
subscriptionNotifier.subscribe('project_user.delete', event.project_userPopulated);
|
334
376
|
});
|
@@ -337,7 +379,7 @@ class SubscriptionNotifier {
|
|
337
379
|
|
338
380
|
//TODO lanciare user.signin in questo modo uno esternamente con webhook può creare proactive greetings
|
339
381
|
|
340
|
-
departmentEvent.on('operator.select', function(result) {
|
382
|
+
departmentEvent.on('operator.select', function(result) { //notqueued
|
341
383
|
winston.debug("departmentEvent.on(operator.select");
|
342
384
|
|
343
385
|
var operatorSelectedEvent = result.result;
|
@@ -376,53 +418,53 @@ class SubscriptionNotifier {
|
|
376
418
|
});
|
377
419
|
|
378
420
|
|
379
|
-
departmentEvent.on('department.create', function(department) {
|
421
|
+
departmentEvent.on('department.create', function(department) { //notqueued
|
380
422
|
setImmediate(() => {
|
381
423
|
subscriptionNotifier.subscribe('department.create', department);
|
382
424
|
});
|
383
425
|
});
|
384
426
|
|
385
427
|
|
386
|
-
departmentEvent.on('department.update', function(department) {
|
428
|
+
departmentEvent.on('department.update', function(department) { //notqueued
|
387
429
|
setImmediate(() => {
|
388
430
|
subscriptionNotifier.subscribe('department.update', department);
|
389
431
|
});
|
390
432
|
});
|
391
433
|
|
392
|
-
departmentEvent.on('department.delete', function(department) {
|
434
|
+
departmentEvent.on('department.delete', function(department) { //notqueued
|
393
435
|
setImmediate(() => {
|
394
436
|
subscriptionNotifier.subscribe('department.delete', department);
|
395
437
|
});
|
396
438
|
});
|
397
439
|
|
398
440
|
|
399
|
-
groupEvent.on('group.create', function(group) {
|
441
|
+
groupEvent.on('group.create', function(group) { //notqueued
|
400
442
|
setImmediate(() => {
|
401
443
|
subscriptionNotifier.subscribe('group.create', group);
|
402
444
|
});
|
403
445
|
});
|
404
446
|
|
405
447
|
|
406
|
-
groupEvent.on('group.update', function(group) {
|
448
|
+
groupEvent.on('group.update', function(group) { //notqueued
|
407
449
|
setImmediate(() => {
|
408
450
|
subscriptionNotifier.subscribe('group.update', group);
|
409
451
|
});
|
410
452
|
});
|
411
453
|
|
412
|
-
groupEvent.on('group.delete', function(group) {
|
454
|
+
groupEvent.on('group.delete', function(group) { //notqueued
|
413
455
|
setImmediate(() => {
|
414
456
|
subscriptionNotifier.subscribe('group.delete', group);
|
415
457
|
});
|
416
458
|
});
|
417
459
|
|
418
|
-
eventEvent.on('event.emit', function(event) {
|
460
|
+
eventEvent.on('event.emit', function(event) { //notqueued
|
419
461
|
setImmediate(() => {
|
420
462
|
subscriptionNotifier.subscribe('event.emit', event);
|
421
463
|
});
|
422
464
|
});
|
423
465
|
|
424
466
|
// event2Event.on(name, savedEventPopulated);
|
425
|
-
event2Event.on('**', function(savedEventPopulated) {
|
467
|
+
event2Event.on('**', function(savedEventPopulated) { //notqueued
|
426
468
|
setImmediate(() => {
|
427
469
|
winston.debug("eventname",this.event);
|
428
470
|
subscriptionNotifier.subscribe('event.emit.'+this.event, savedEventPopulated);
|
@@ -430,7 +472,7 @@ class SubscriptionNotifier {
|
|
430
472
|
});
|
431
473
|
|
432
474
|
|
433
|
-
projectEvent.on('project.create', function(project) {
|
475
|
+
projectEvent.on('project.create', function(project) { //notqueued
|
434
476
|
setImmediate(() => {
|
435
477
|
var projectJson = project.toJSON();
|
436
478
|
projectJson.id_project = projectJson._id;
|
@@ -438,7 +480,7 @@ class SubscriptionNotifier {
|
|
438
480
|
});
|
439
481
|
});
|
440
482
|
|
441
|
-
projectEvent.on('project.update', function(project) {
|
483
|
+
projectEvent.on('project.update', function(project) { //notqueued
|
442
484
|
setImmediate(() => {
|
443
485
|
var projectJson = project.toJSON();
|
444
486
|
projectJson.id_project = projectJson._id;
|
@@ -446,7 +488,7 @@ class SubscriptionNotifier {
|
|
446
488
|
});
|
447
489
|
});
|
448
490
|
|
449
|
-
projectEvent.on('project.downgrade', function(project) {
|
491
|
+
projectEvent.on('project.downgrade', function(project) { //notqueued
|
450
492
|
setImmediate(() => {
|
451
493
|
var projectJson = project.toJSON();
|
452
494
|
projectJson.id_project = projectJson._id;
|
@@ -454,7 +496,7 @@ class SubscriptionNotifier {
|
|
454
496
|
});
|
455
497
|
});
|
456
498
|
|
457
|
-
projectEvent.on('project.delete', function(project) {
|
499
|
+
projectEvent.on('project.delete', function(project) { //notqueued
|
458
500
|
setImmediate(() => {
|
459
501
|
var projectJson = project.toJSON();
|
460
502
|
projectJson.id_project = projectJson._id;
|
@@ -0,0 +1,124 @@
|
|
1
|
+
const requestEvent = require('../event/requestEvent');
|
2
|
+
const messageEvent = require('../event/messageEvent');
|
3
|
+
const leadEvent = require('../event/leadEvent');
|
4
|
+
const authEvent = require('../event/authEvent');
|
5
|
+
|
6
|
+
var Message = require("../models/message");
|
7
|
+
var winston = require('../config/winston');
|
8
|
+
var subscriptionNotifier = require('../services/subscriptionNotifier');
|
9
|
+
|
10
|
+
class SubscriptionNotifierQueued {
|
11
|
+
|
12
|
+
start() {
|
13
|
+
winston.debug('SubscriptionNotifierQueued start');
|
14
|
+
|
15
|
+
var enabled = process.env.RESTHOOK_ENABLED || "false";
|
16
|
+
winston.debug('SubscriptionNotifierQueued enabled:'+enabled);
|
17
|
+
|
18
|
+
if (enabled==="true") {
|
19
|
+
winston.debug('SubscriptionNotifierQueued enabled');
|
20
|
+
}else {
|
21
|
+
winston.info('Resthook Queued disabled');
|
22
|
+
return 0;
|
23
|
+
}
|
24
|
+
|
25
|
+
|
26
|
+
var messageCreateKey = 'message.create';
|
27
|
+
if (messageEvent.queueEnabled) {
|
28
|
+
messageCreateKey = 'message.create.queue';
|
29
|
+
}
|
30
|
+
messageEvent.on(messageCreateKey, function(message) { //queued tested
|
31
|
+
setImmediate(() => {
|
32
|
+
winston.debug('SubscriptionNotifier message.create');
|
33
|
+
subscriptionNotifier.subscribe('message.create', message);
|
34
|
+
winston.debug('SubscriptionNotifier message.create sent');
|
35
|
+
});
|
36
|
+
});
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
var requestCreateKey = 'request.create';
|
41
|
+
if (requestEvent.queueEnabled) {
|
42
|
+
requestCreateKey = 'request.create.queue';
|
43
|
+
}
|
44
|
+
requestEvent.on(requestCreateKey, function(request) { //queued tested
|
45
|
+
setImmediate(() => {
|
46
|
+
winston.debug('SubscriptionNotifier request.create');
|
47
|
+
subscriptionNotifier.subscribe('request.create', request);
|
48
|
+
winston.debug('SubscriptionNotifier request.create sent');
|
49
|
+
});
|
50
|
+
});
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
var requestUpdateKey = 'request.update';
|
55
|
+
if (requestEvent.queueEnabled) {
|
56
|
+
requestUpdateKey = 'request.update.queue';
|
57
|
+
}
|
58
|
+
requestEvent.on(requestUpdateKey, function(request) { //queued tested
|
59
|
+
setImmediate(() => {
|
60
|
+
winston.debug('SubscriptionNotifier request.update');
|
61
|
+
subscriptionNotifier.subscribe('request.update', request);
|
62
|
+
winston.debug('SubscriptionNotifier request.update sent');
|
63
|
+
|
64
|
+
});
|
65
|
+
});
|
66
|
+
|
67
|
+
|
68
|
+
var requestCloseKey = 'request.close'; //request.close event here queued under job
|
69
|
+
if (requestEvent.queueEnabled) {
|
70
|
+
requestCloseKey = 'request.close.queue';
|
71
|
+
}
|
72
|
+
requestEvent.on(requestCloseKey, function(request) { //request.close event here noqueued //queued tested
|
73
|
+
winston.debug('SubscriptionNotifier request.close');
|
74
|
+
winston.debug("request.close event here 1")
|
75
|
+
setImmediate(() => {
|
76
|
+
Message.find({recipient: request.request_id, id_project: request.id_project}).sort({updatedAt: 'asc'}).exec(function(err, messages) {
|
77
|
+
var requestJson = request;
|
78
|
+
if (request.toJSON) {
|
79
|
+
requestJson = request.toJSON();
|
80
|
+
}
|
81
|
+
|
82
|
+
requestJson.messages = messages;
|
83
|
+
subscriptionNotifier.subscribe('request.close', requestJson);
|
84
|
+
winston.debug('SubscriptionNotifier request.close sent');
|
85
|
+
|
86
|
+
});
|
87
|
+
});
|
88
|
+
});
|
89
|
+
|
90
|
+
|
91
|
+
var leadCreateKey = 'lead.create'; //lead.create event here queued under job
|
92
|
+
if (leadEvent.queueEnabled) {
|
93
|
+
leadCreateKey = 'lead.create.queue';
|
94
|
+
}
|
95
|
+
leadEvent.on(leadCreateKey, function(lead) { //notqueued high
|
96
|
+
setImmediate(() => {
|
97
|
+
subscriptionNotifier.subscribe('lead.create', lead);
|
98
|
+
winston.debug('SubscriptionNotifier lead.create sent');
|
99
|
+
});
|
100
|
+
});
|
101
|
+
|
102
|
+
var authProjectUserUpdateKey = 'project_user.update';
|
103
|
+
if (authEvent.queueEnabled) {
|
104
|
+
authProjectUserUpdateKey = 'project_user.update.queue';
|
105
|
+
}
|
106
|
+
authEvent.on(authProjectUserUpdateKey, function(event) { //notqueued high
|
107
|
+
setImmediate(() => {
|
108
|
+
subscriptionNotifier.subscribe('project_user.update', event.updatedProject_userPopulated);
|
109
|
+
winston.debug('SubscriptionNotifier project_user.update sent');
|
110
|
+
});
|
111
|
+
});
|
112
|
+
|
113
|
+
winston.info('SubscriptionNotifierQueued started');
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
};
|
120
|
+
|
121
|
+
var subscriptionNotifierQueued = new SubscriptionNotifierQueued();
|
122
|
+
|
123
|
+
|
124
|
+
module.exports = subscriptionNotifierQueued;
|
package/test/faqRoute.js
CHANGED
@@ -53,7 +53,7 @@ describe('FaqKBRoute', () => {
|
|
53
53
|
chai.request(server)
|
54
54
|
.post('/' + savedProject._id + '/faq')
|
55
55
|
.auth(email, pwd)
|
56
|
-
.send({ id_faq_kb: id_faq_kb, question: "question1", answer: "answer1" })
|
56
|
+
.send({ id_faq_kb: id_faq_kb, question: "question1", answer: "answer1", attributes: { attr1: { one: "one", two: "two"}, attr2: {three: "three"}} })
|
57
57
|
.end((err, res) => {
|
58
58
|
//console.log("res", res);
|
59
59
|
console.log("res.body", res.body);
|
@@ -141,8 +141,6 @@ describe('FaqKBRoute', () => {
|
|
141
141
|
|
142
142
|
}).timeout(20000);
|
143
143
|
|
144
|
-
|
145
|
-
|
146
144
|
it('createWithLanguage', (done) => {
|
147
145
|
|
148
146
|
|
@@ -192,11 +190,6 @@ describe('FaqKBRoute', () => {
|
|
192
190
|
|
193
191
|
});
|
194
192
|
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
193
|
it('createWithIntentDisplayNameAndWebhookEnalbed', (done) => {
|
201
194
|
|
202
195
|
|
@@ -246,10 +239,6 @@ describe('FaqKBRoute', () => {
|
|
246
239
|
|
247
240
|
});
|
248
241
|
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
242
|
it('update', (done) => {
|
254
243
|
|
255
244
|
|
@@ -275,7 +264,7 @@ describe('FaqKBRoute', () => {
|
|
275
264
|
chai.request(server)
|
276
265
|
.post('/' + savedProject._id + '/faq')
|
277
266
|
.auth(email, pwd)
|
278
|
-
.send({ id_faq_kb: id_faq_kb, question: "question1", answer: "answer1" })
|
267
|
+
.send({ id_faq_kb: id_faq_kb, question: "question1", answer: "answer1", attributes: { attr1: {one: "one", two: "two"}} })
|
279
268
|
.end((err, res) => {
|
280
269
|
//console.log("res", res);
|
281
270
|
console.log("res.body", res.body);
|
@@ -290,7 +279,7 @@ describe('FaqKBRoute', () => {
|
|
290
279
|
chai.request(server)
|
291
280
|
.put('/' + savedProject._id + '/faq/' + res.body._id)
|
292
281
|
.auth(email, pwd)
|
293
|
-
.send({ id_faq_kb: id_faq_kb, question: "question2", answer: "answer2", webhook_enabled: true })
|
282
|
+
.send({ id_faq_kb: id_faq_kb, question: "question2", answer: "answer2", webhook_enabled: true, attributes: { two: "twooo" } })
|
294
283
|
.end((err, res) => {
|
295
284
|
//console.log("res", res);
|
296
285
|
console.log("res.body", res.body);
|
@@ -315,6 +304,74 @@ describe('FaqKBRoute', () => {
|
|
315
304
|
|
316
305
|
});
|
317
306
|
|
307
|
+
it('update attributes', (done) => {
|
308
|
+
|
309
|
+
console.log("update attributes test start... ");
|
310
|
+
|
311
|
+
var email = "test-signup-" + Date.now() + "@email.com";
|
312
|
+
var pwd = "pwd";
|
313
|
+
|
314
|
+
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
|
315
|
+
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
|
316
|
+
chai.request(server)
|
317
|
+
.post('/' + savedProject._id + '/faq_kb')
|
318
|
+
.auth(email, pwd)
|
319
|
+
.send({ "name": "testbot", type: "internal" })
|
320
|
+
.end((err, res) => {
|
321
|
+
//console.log("res", res);
|
322
|
+
console.log("res.body", res.body);
|
323
|
+
res.should.have.status(200);
|
324
|
+
res.body.should.be.a('object');
|
325
|
+
expect(res.body.name).to.equal("testbot");
|
326
|
+
var id_faq_kb = res.body._id;
|
327
|
+
|
328
|
+
chai.request(server)
|
329
|
+
.post('/' + savedProject._id + '/faq')
|
330
|
+
.auth(email, pwd)
|
331
|
+
.send({ id_faq_kb: id_faq_kb, question: "question1", answer: "answer1" })
|
332
|
+
.end((err, res) => {
|
333
|
+
//console.log("res", res);
|
334
|
+
console.log("res.body", res.body);
|
335
|
+
res.should.have.status(200);
|
336
|
+
res.body.should.be.a('object');
|
337
|
+
expect(res.body.id_faq_kb).to.equal(id_faq_kb);
|
338
|
+
expect(res.body.question).to.equal("question1");
|
339
|
+
expect(res.body.answer).to.equal("answer1");
|
340
|
+
expect(res.body.intent_display_name).to.not.equal(undefined);
|
341
|
+
expect(res.body.webhook_enabled).to.equal(false);
|
342
|
+
|
343
|
+
chai.request(server)
|
344
|
+
.patch('/' + savedProject._id + '/faq/' + res.body._id + '/attributes')
|
345
|
+
.auth(email, pwd)
|
346
|
+
.send({
|
347
|
+
"first_parameter": {
|
348
|
+
"x": "first",
|
349
|
+
"y": "second"
|
350
|
+
},
|
351
|
+
"color": {
|
352
|
+
"first": "first",
|
353
|
+
}
|
354
|
+
})
|
355
|
+
.end((err, res) => {
|
356
|
+
//console.log("res", res);
|
357
|
+
console.log("res.body attributes", res.body);
|
358
|
+
console.log("res.body attributes", res.body.attributes);
|
359
|
+
res.should.have.status(200);
|
360
|
+
res.body.should.be.a('object');
|
361
|
+
expect(res.body.attributes).to.not.equal(undefined);
|
362
|
+
|
363
|
+
done();
|
364
|
+
});
|
365
|
+
|
366
|
+
});
|
367
|
+
|
368
|
+
});
|
369
|
+
|
370
|
+
|
371
|
+
});
|
372
|
+
});
|
373
|
+
})
|
374
|
+
|
318
375
|
|
319
376
|
it('uploadcsv', (done) => {
|
320
377
|
|
@@ -425,7 +482,7 @@ describe('FaqKBRoute', () => {
|
|
425
482
|
|
426
483
|
userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
|
427
484
|
projectService.create("test-search-faqs", savedUser._id).then((savedProject) => {
|
428
|
-
|
485
|
+
|
429
486
|
chai.request(server)
|
430
487
|
.post('/' + savedProject._id + '/faq_kb')
|
431
488
|
.auth(email, pwd)
|
@@ -467,7 +524,7 @@ describe('FaqKBRoute', () => {
|
|
467
524
|
|
468
525
|
userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
|
469
526
|
projectService.create("test-search-faqs", savedUser._id).then((savedProject) => {
|
470
|
-
|
527
|
+
|
471
528
|
chai.request(server)
|
472
529
|
.post('/' + savedProject._id + '/faq_kb')
|
473
530
|
.auth(email, pwd)
|
package/test/faqkbRoute.js
CHANGED
@@ -313,7 +313,7 @@ describe('FaqKBRoute', () => {
|
|
313
313
|
})
|
314
314
|
})
|
315
315
|
|
316
|
-
it('create bot and import json
|
316
|
+
it('create bot and import json', (done) => {
|
317
317
|
|
318
318
|
var email = "test-signup-" + Date.now() + "@email.com";
|
319
319
|
var pwd = "pwd";
|
@@ -357,7 +357,7 @@ describe('FaqKBRoute', () => {
|
|
357
357
|
|
358
358
|
})
|
359
359
|
|
360
|
-
it('import json in an existing bot
|
360
|
+
it('import json in an existing bot', (done) => {
|
361
361
|
|
362
362
|
var email = "test-signup-" + Date.now() + "@email.com";
|
363
363
|
var pwd = "pwd";
|