@tiledesk/tiledesk-server 2.2.13 → 2.2.17
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 +47 -0
- package/README.md +1 -1
- package/app.js +6 -3
- package/config/labels/widget.json +2 -2
- package/models/request.js +1 -1
- package/package.json +4 -4
- package/public/samples/bot/external/searcher/parse +10 -0
- package/pubmodules/messageTransformer/index.js +4 -1
- package/pubmodules/messageTransformer/messageHandlebarsTransformerInterceptor.js +83 -0
- package/pubmodules/pubModulesManager.js +1 -0
- package/routes/auth.js +5 -1
- package/routes/email.js +32 -0
- package/routes/faq.js +49 -26
- package/routes/faq_kb.js +102 -0
- package/routes/project.js +108 -1
- package/routes/request.js +10 -4
- package/routes/user-request.js +3 -1
- package/services/emailService.js +14 -12
- package/services/faqBotHandler.js +142 -16
- package/services/faqBotSupport copy.js_consplit +453 -0
- package/services/faqBotSupport.js +5 -5
- package/services/faqService.js +1 -0
- package/services/messageService.js +1 -1
- package/services/requestService.js +36 -19
- package/test/departmentService.js +10 -9
- package/test/faqRoute.js +112 -4
- package/test/faqkbRoute.js +57 -1
- package/test/messageRoute.js +4 -4
- package/test/requestRoute.js +26 -16
- package/test/requestService.js +90 -74
- package/test-int/bot.js +95 -1
- package/utils/httpUtil.js +42 -0
package/test/requestService.js
CHANGED
@@ -49,15 +49,15 @@ describe('RequestService', function () {
|
|
49
49
|
var savedProject = savedProjectAndPU.project;
|
50
50
|
|
51
51
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
52
|
-
|
52
|
+
var now = Date.now();
|
53
53
|
var request = {
|
54
|
-
request_id:"
|
54
|
+
request_id:"request_id-createObjSimple-"+now, project_user_id:savedProjectAndPU.project_user._id, lead_id:createdLead._id,
|
55
55
|
id_project:savedProject._id, first_text: "first_text",
|
56
56
|
lead:createdLead, requester: savedProjectAndPU.project_user };
|
57
57
|
|
58
58
|
requestService.create(request).then(function(savedRequest) {
|
59
59
|
winston.info("resolve", savedRequest.toObject());
|
60
|
-
expect(savedRequest.request_id).to.equal("
|
60
|
+
expect(savedRequest.request_id).to.equal("request_id-createObjSimple-"+now);
|
61
61
|
expect(savedRequest.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
62
62
|
expect(savedRequest.first_text).to.equal("first_text");
|
63
63
|
expect(savedRequest.department).to.not.equal(null);
|
@@ -96,10 +96,10 @@ describe('RequestService', function () {
|
|
96
96
|
requestService.create(request).then(function(savedRequest) {
|
97
97
|
// assert.isNotOk('No duplicate check index');
|
98
98
|
console.log("no index check ???");
|
99
|
-
done();
|
99
|
+
// done();
|
100
100
|
}).catch(function(err) {
|
101
101
|
console.log("ok duplicate check index ", err);
|
102
|
-
|
102
|
+
done();
|
103
103
|
});
|
104
104
|
}).catch(function(err) {
|
105
105
|
console.log("test reject",err);
|
@@ -128,15 +128,15 @@ describe('RequestService', function () {
|
|
128
128
|
var savedProject = savedProjectAndPU.project;
|
129
129
|
|
130
130
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
131
|
-
|
131
|
+
var now = Date.now();
|
132
132
|
var request = {
|
133
|
-
request_id:"
|
133
|
+
request_id:"request_idcreateObjSimpleUpdateLeadUpdateSnapshot-"+now, project_user_id:savedProjectAndPU.project_user._id, lead_id:createdLead._id,
|
134
134
|
id_project:savedProject._id, first_text: "first_text",
|
135
135
|
lead:createdLead, requester: savedProjectAndPU.project_user };
|
136
136
|
|
137
137
|
requestService.create(request).then(function(savedRequest) {
|
138
138
|
winston.info("resolve", savedRequest.toObject());
|
139
|
-
expect(savedRequest.request_id).to.equal("
|
139
|
+
expect(savedRequest.request_id).to.equal("request_idcreateObjSimpleUpdateLeadUpdateSnapshot-"+now);
|
140
140
|
expect(savedRequest.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
141
141
|
expect(savedRequest.first_text).to.equal("first_text");
|
142
142
|
expect(savedRequest.department).to.not.equal(null);
|
@@ -179,7 +179,7 @@ describe('RequestService', function () {
|
|
179
179
|
|
180
180
|
Request.findById(savedRequest._id, function(err, request) {
|
181
181
|
console.log("err",err);
|
182
|
-
expect(request.request_id).to.equal("
|
182
|
+
expect(request.request_id).to.equal("request_idcreateObjSimpleUpdateLeadUpdateSnapshot-"+now);
|
183
183
|
expect(request.snapshot.lead.fullname).to.equal("fullname2");
|
184
184
|
done();
|
185
185
|
});
|
@@ -218,16 +218,16 @@ describe('RequestService', function () {
|
|
218
218
|
var savedProject = savedProjectAndPU.project;
|
219
219
|
|
220
220
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
221
|
-
|
221
|
+
var now = Date.now();
|
222
222
|
var request = {
|
223
|
-
request_id:"
|
223
|
+
request_id:"request_id-createObjParticipantsAgent-"+now, project_user_id:savedProjectAndPU.project_user._id, lead_id:createdLead._id,
|
224
224
|
id_project:savedProject._id, first_text: "first_text",
|
225
225
|
lead:createdLead, requester: savedProjectAndPU.project_user,
|
226
226
|
participants: [userid.toString()] };
|
227
227
|
|
228
228
|
requestService.create(request).then(function(savedRequest) {
|
229
229
|
winston.debug("resolve", savedRequest.toObject());
|
230
|
-
expect(savedRequest.request_id).to.equal("
|
230
|
+
expect(savedRequest.request_id).to.equal("request_id-createObjParticipantsAgent-"+now);
|
231
231
|
expect(savedRequest.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
232
232
|
expect(savedRequest.first_text).to.equal("first_text");
|
233
233
|
expect(savedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -289,16 +289,16 @@ describe('RequestService', function () {
|
|
289
289
|
var savedProject = savedProjectAndPU.project;
|
290
290
|
|
291
291
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
292
|
-
|
292
|
+
var now = Date.now();
|
293
293
|
var request = {
|
294
|
-
request_id:"
|
294
|
+
request_id:"request_id-createObjTemp-"+now, project_user_id:savedProjectAndPU.project_user._id, lead_id:createdLead._id,
|
295
295
|
id_project:savedProject._id, first_text: "first_text",
|
296
296
|
lead:createdLead, requester: savedProjectAndPU.project_user,
|
297
297
|
status:50 };
|
298
298
|
|
299
299
|
requestService.create(request).then(function(savedRequest) {
|
300
300
|
winston.debug("resolve", savedRequest.toObject());
|
301
|
-
expect(savedRequest.request_id).to.equal("
|
301
|
+
expect(savedRequest.request_id).to.equal("request_id-createObjTemp-"+now);
|
302
302
|
expect(savedRequest.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
303
303
|
expect(savedRequest.first_text).to.equal("first_text");
|
304
304
|
expect(savedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -349,9 +349,10 @@ describe('RequestService', function () {
|
|
349
349
|
var savedProject = savedProjectAndPU.project;
|
350
350
|
|
351
351
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
352
|
-
|
352
|
+
var now = Date.now();
|
353
|
+
requestService.createWithIdAndRequester("request_id-createWithIdAndCreateNewLead-"+now, savedProjectAndPU.project_user._id, createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
|
353
354
|
winston.debug("resolve", savedRequest.toObject());
|
354
|
-
expect(savedRequest.request_id).to.equal("
|
355
|
+
expect(savedRequest.request_id).to.equal("request_id-createWithIdAndCreateNewLead-"+now);
|
355
356
|
expect(savedRequest.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
356
357
|
expect(savedRequest.first_text).to.equal("first_text");
|
357
358
|
expect(savedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -404,18 +405,18 @@ describe('RequestService', function () {
|
|
404
405
|
|
405
406
|
projectService.createAndReturnProjectAndProjectUser("createWithId", userid).then(function(savedProjectAndPU) {
|
406
407
|
var savedProject = savedProjectAndPU.project;
|
407
|
-
|
408
|
+
var now = Date.now();
|
408
409
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
409
410
|
|
410
411
|
requestEvent.on('request.create', function(savedRequest) {
|
411
412
|
|
412
|
-
if (savedRequest.request_id === "createWithIdAndCreateNewLeadAndCheckRequestEvent" ) {
|
413
|
+
if (savedRequest.request_id === "createWithIdAndCreateNewLeadAndCheckRequestEvent-"+now ) {
|
413
414
|
|
414
415
|
|
415
416
|
console.log("savedRequest",savedRequest.toJSON());
|
416
417
|
|
417
418
|
winston.debug("resolve", savedRequest.toObject());
|
418
|
-
expect(savedRequest.request_id).to.equal("createWithIdAndCreateNewLeadAndCheckRequestEvent");
|
419
|
+
expect(savedRequest.request_id).to.equal("createWithIdAndCreateNewLeadAndCheckRequestEvent-"+now);
|
419
420
|
expect(savedRequest.requester._id.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
420
421
|
expect(savedRequest.first_text).to.equal("first_text");
|
421
422
|
expect(savedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -445,7 +446,7 @@ describe('RequestService', function () {
|
|
445
446
|
}
|
446
447
|
|
447
448
|
});
|
448
|
-
|
449
|
+
requestService.createWithIdAndRequester("createWithIdAndCreateNewLeadAndCheckRequestEvent-"+now, savedProjectAndPU.project_user._id, createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
|
449
450
|
|
450
451
|
}).catch(function(err) {
|
451
452
|
console.log("test reject",err);
|
@@ -512,10 +513,11 @@ describe('RequestService', function () {
|
|
512
513
|
var userid = savedUser.id;
|
513
514
|
projectService.createAndReturnProjectAndProjectUser("createWithIdAndCreatedBy", userid).then(function(savedProjectAndPU) {
|
514
515
|
var savedProject = savedProjectAndPU.project;
|
516
|
+
var now = Date.now();
|
515
517
|
// createWithIdAndRequester(request_id, project_user_id, lead_id, id_project, first_text, departmentid, sourcePage, language, userAgent, status, createdBy, attributes) {
|
516
|
-
|
518
|
+
requestService.createWithIdAndRequester("request_id-createWithIdAndCreatedBy-"+now,savedProjectAndPU.project_user._id, null, savedProject._id, "first_text", null, null, null,null,null, "user1").then(function(savedRequest) {
|
517
519
|
console.log("test resolve");
|
518
|
-
expect(savedRequest.request_id).to.equal("
|
520
|
+
expect(savedRequest.request_id).to.equal("request_id-createWithIdAndCreatedBy-"+now);
|
519
521
|
expect(savedRequest.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
520
522
|
expect(savedRequest.first_text).to.equal("first_text");
|
521
523
|
expect(savedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -558,8 +560,9 @@ describe('RequestService', function () {
|
|
558
560
|
var userid = savedUser.id;
|
559
561
|
projectService.createAndReturnProjectAndProjectUser("createWithWrongDepartmentId", userid).then(function(savedProjectAndPU) {
|
560
562
|
var savedProject = savedProjectAndPU.project;
|
563
|
+
var now = Date.now();
|
561
564
|
// createWithIdAndRequester(request_id, project_user_id, lead_id, id_project, first_text, departmentid, sourcePage, language, userAgent, status, createdBy, attributes) {
|
562
|
-
requestService.createWithIdAndRequester("
|
565
|
+
requestService.createWithIdAndRequester("request_idcreateWithWrongDepartmentId-"+now, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text", "5ebd890b3f2702001915c89e", null, null,null,null, "user1").then(function(savedRequest) {
|
563
566
|
|
564
567
|
})
|
565
568
|
.catch(function(err) {
|
@@ -584,9 +587,10 @@ describe('RequestService', function () {
|
|
584
587
|
projectService.createAndReturnProjectAndProjectUser("createWithIdWithPooledDepartment", userid).then(function(savedProjectAndPU) {
|
585
588
|
var savedProject = savedProjectAndPU.project;
|
586
589
|
departmentService.create("PooledDepartment-for-createWithIdWith-createWithIdWithPooledDepartment", savedProject._id, 'pooled', userid).then(function(createdDepartment) {
|
587
|
-
|
590
|
+
var now = Date.now();
|
591
|
+
requestService.createWithIdAndRequester("request_id-createWithIdWithPooledDepartment-"+now,savedProjectAndPU.project_user._id, null, savedProject._id, "first_text", createdDepartment._id).then(function(savedRequest) {
|
588
592
|
winston.debug("resolve savedRequest");
|
589
|
-
expect(savedRequest.request_id).to.equal("
|
593
|
+
expect(savedRequest.request_id).to.equal("request_id-createWithIdWithPooledDepartment-"+now);
|
590
594
|
expect(savedRequest.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
591
595
|
expect(savedRequest.first_text).to.equal("first_text");
|
592
596
|
expect(savedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -621,7 +625,8 @@ describe('RequestService', function () {
|
|
621
625
|
var messageSender = "5badfe5d553d1844ad654072";
|
622
626
|
projectService.createAndReturnProjectAndProjectUser("test1", userid).then(function(savedProjectAndPU) {
|
623
627
|
var savedProject = savedProjectAndPU.project;
|
624
|
-
|
628
|
+
var now = Date.now();
|
629
|
+
requestService.createWithIdAndRequester("request_id-waitingTimeRequest-"+now, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
625
630
|
setTimeout(function () {
|
626
631
|
Promise.all([
|
627
632
|
messageService.create(messageSender, "test sender", savedRequest.request_id, "hello1",
|
@@ -674,7 +679,8 @@ describe('RequestService', function () {
|
|
674
679
|
|
675
680
|
projectService.createAndReturnProjectAndProjectUser("test1", userid).then(function(savedProjectAndPU) {
|
676
681
|
var savedProject = savedProjectAndPU.project;
|
677
|
-
|
682
|
+
var now = Date.now();
|
683
|
+
requestService.createWithIdAndRequester("request_id-closeRequest-"+now, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
678
684
|
Promise.all([
|
679
685
|
messageService.create("5badfe5d553d1844ad654072", "test sender", savedRequest.request_id, "hello1",
|
680
686
|
savedProject._id, "5badfe5d553d1844ad654072"),
|
@@ -714,7 +720,8 @@ describe('RequestService', function () {
|
|
714
720
|
var savedProject = savedProjectAndPU.project;
|
715
721
|
|
716
722
|
leadService.createIfNotExists("leadfullname", "andrea.leo@frontiere21.it", savedProject._id).then(function(createdLead) {
|
717
|
-
|
723
|
+
var now = Date.now();
|
724
|
+
requestService.createWithIdAndRequester("request_id-closeRequestAndSendTranscript-"+now, savedProjectAndPU.project_user._id, createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
|
718
725
|
Promise.all([
|
719
726
|
messageService.create("5badfe5d553d1844ad654072", "test sender", savedRequest.request_id, "hello1",
|
720
727
|
savedProject._id, "5badfe5d553d1844ad654072"),
|
@@ -753,8 +760,9 @@ describe('RequestService', function () {
|
|
753
760
|
|
754
761
|
projectService.createAndReturnProjectAndProjectUser("test1", userid).then(function(savedProjectAndPU) {
|
755
762
|
var savedProject = savedProjectAndPU.project;
|
763
|
+
var now = Date.now();
|
756
764
|
|
757
|
-
requestService.createWithIdAndRequester("request_id-reopenRequest", savedProjectAndPU.project_user._id, null,savedProject._id, "first_text").then(function(savedRequest) {
|
765
|
+
requestService.createWithIdAndRequester("request_id-reopenRequest-"+now, savedProjectAndPU.project_user._id, null,savedProject._id, "first_text").then(function(savedRequest) {
|
758
766
|
|
759
767
|
requestService.closeRequestByRequestId(savedRequest.request_id, savedProject._id).then(function(closedRequest) {
|
760
768
|
requestService.reopenRequestByRequestId(savedRequest.request_id, savedProject._id).then(function(reopenedRequest) {
|
@@ -820,8 +828,8 @@ describe('RequestService', function () {
|
|
820
828
|
console.log("err",err)
|
821
829
|
}
|
822
830
|
|
823
|
-
|
824
|
-
|
831
|
+
var now = Date.now();
|
832
|
+
requestService.createWithIdAndRequester("request_id-addparticipant-"+now, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
825
833
|
// inserisci id valido
|
826
834
|
// var member = 'agent1';
|
827
835
|
var member = savedUser2._id.toString();
|
@@ -829,7 +837,7 @@ describe('RequestService', function () {
|
|
829
837
|
// addParticipantByRequestId(request_id, id_project, member) {
|
830
838
|
requestService.addParticipantByRequestId(savedRequest.request_id, savedProject._id, member).then(function(savedRequestParticipant) {
|
831
839
|
winston.info("resolve addParticipantByRequestId", savedRequestParticipant.toObject());
|
832
|
-
expect(savedRequestParticipant.request_id).to.equal("
|
840
|
+
expect(savedRequestParticipant.request_id).to.equal("request_id-addparticipant-"+now);
|
833
841
|
|
834
842
|
winston.info("savedProjectAndPU.project_user._id.toString():"+savedProjectAndPU.project_user._id.toString());
|
835
843
|
expect(savedRequestParticipant.requester._id.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
@@ -903,9 +911,9 @@ projectService.createAndReturnProjectAndProjectUser("setParticipantsByRequestId-
|
|
903
911
|
if (err) {
|
904
912
|
console.log("err",err)
|
905
913
|
}
|
914
|
+
var now = Date.now();
|
906
915
|
|
907
|
-
|
908
|
-
requestService.createWithIdAndRequester("request_id1-setParticipantsByRequestId", savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
916
|
+
requestService.createWithIdAndRequester("request_id1-setParticipantsByRequestId-"+now,savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
909
917
|
expect(savedRequest.participants).to.contains(userid);
|
910
918
|
expect(savedRequest.participantsAgents).to.contains(userid);
|
911
919
|
|
@@ -916,7 +924,7 @@ projectService.createAndReturnProjectAndProjectUser("setParticipantsByRequestId-
|
|
916
924
|
// setParticipantsByRequestId(request_id, id_project, newparticipants) {
|
917
925
|
requestService.setParticipantsByRequestId(savedRequest.request_id, savedProject._id, [member]).then(function(savedRequestParticipant) {
|
918
926
|
winston.info("resolve setParticipantsByRequestId", savedRequestParticipant.toObject());
|
919
|
-
expect(savedRequestParticipant.request_id).to.equal("request_id1-setParticipantsByRequestId");
|
927
|
+
expect(savedRequestParticipant.request_id).to.equal("request_id1-setParticipantsByRequestId-"+now);
|
920
928
|
|
921
929
|
winston.info("savedProjectAndPU.project_user._id.toString():"+savedProjectAndPU.project_user._id.toString());
|
922
930
|
expect(savedRequestParticipant.requester._id.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
@@ -963,8 +971,8 @@ it('removeparticipant', function (done) {
|
|
963
971
|
|
964
972
|
projectService.createAndReturnProjectAndProjectUser("removeparticipant-project", userid).then(function(savedProjectAndPU) {
|
965
973
|
var savedProject = savedProjectAndPU.project;
|
966
|
-
|
967
|
-
|
974
|
+
var now = Date.now();
|
975
|
+
requestService.createWithIdAndRequester("request_id-removeparticipant-"+now, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
968
976
|
requestService.removeParticipantByRequestId(savedRequest.request_id, savedProject._id, userid).then(function(savedRequestParticipant) {
|
969
977
|
winston.info("resolve", savedRequestParticipant.toObject());
|
970
978
|
|
@@ -972,7 +980,7 @@ it('removeparticipant', function (done) {
|
|
972
980
|
expect(savedRequest.status).to.equal(200);
|
973
981
|
|
974
982
|
//savedRequestParticipant is UNASSIGNED -> 100
|
975
|
-
expect(savedRequestParticipant.request_id).to.equal("
|
983
|
+
expect(savedRequestParticipant.request_id).to.equal("request_id-removeparticipant-"+now);
|
976
984
|
// expect(savedRequestParticipant.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
977
985
|
expect(savedRequestParticipant.first_text).to.equal("first_text");
|
978
986
|
// expect(savedRequestParticipant.snapshot.agents).to.have.lengthOf(1);
|
@@ -1012,10 +1020,10 @@ it('removeparticipant', function (done) {
|
|
1012
1020
|
|
1013
1021
|
projectService.createAndReturnProjectAndProjectUser("routeDepartmentSameAgentSameDepartmentSkipUpdate", userid).then(function(savedProjectAndPU) {
|
1014
1022
|
var savedProject = savedProjectAndPU.project;
|
1015
|
-
|
1016
|
-
requestService.createWithIdAndRequester("routeDepartmentSameAgentSameDepartmentSkipUpdate", savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
1023
|
+
var now = Date.now();
|
1024
|
+
requestService.createWithIdAndRequester("routeDepartmentSameAgentSameDepartmentSkipUpdate-"+now, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
1017
1025
|
winston.debug("resolve savedRequest");
|
1018
|
-
expect(savedRequest.request_id).to.equal("routeDepartmentSameAgentSameDepartmentSkipUpdate");
|
1026
|
+
expect(savedRequest.request_id).to.equal("routeDepartmentSameAgentSameDepartmentSkipUpdate-"+now);
|
1019
1027
|
expect(savedRequest.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
1020
1028
|
expect(savedRequest.first_text).to.equal("first_text");
|
1021
1029
|
expect(savedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -1033,9 +1041,9 @@ it('removeparticipant', function (done) {
|
|
1033
1041
|
let dep = savedRequest.department;
|
1034
1042
|
|
1035
1043
|
// route(request_id, departmentid, id_project, nobot, no_populate) {
|
1036
|
-
requestService.route("routeDepartmentSameAgentSameDepartmentSkipUpdate", dep, savedProject._id, false).then(function(routedRequest) {
|
1044
|
+
requestService.route("routeDepartmentSameAgentSameDepartmentSkipUpdate-"+now, dep, savedProject._id, false).then(function(routedRequest) {
|
1037
1045
|
|
1038
|
-
expect(routedRequest.request_id).to.equal("routeDepartmentSameAgentSameDepartmentSkipUpdate");
|
1046
|
+
expect(routedRequest.request_id).to.equal("routeDepartmentSameAgentSameDepartmentSkipUpdate-"+now);
|
1039
1047
|
expect(routedRequest.requester._id.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
1040
1048
|
expect(routedRequest.first_text).to.equal("first_text");
|
1041
1049
|
expect(routedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -1077,10 +1085,11 @@ it('routeDepartmentSameAgentDifferentDepartment', function (done) {
|
|
1077
1085
|
|
1078
1086
|
projectService.createAndReturnProjectAndProjectUser("routeDepartmentSameAgentDifferentDepartment", userid).then(function(savedProjectAndPU) {
|
1079
1087
|
var savedProject = savedProjectAndPU.project;
|
1088
|
+
var now = Date.now();
|
1080
1089
|
|
1081
|
-
requestService.createWithIdAndRequester("routeDepartmentSameAgentDifferentDepartment", savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
1090
|
+
requestService.createWithIdAndRequester("routeDepartmentSameAgentDifferentDepartment-"+now, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
1082
1091
|
winston.debug("resolve savedRequest");
|
1083
|
-
expect(savedRequest.request_id).to.equal("routeDepartmentSameAgentDifferentDepartment");
|
1092
|
+
expect(savedRequest.request_id).to.equal("routeDepartmentSameAgentDifferentDepartment-"+now);
|
1084
1093
|
expect(savedRequest.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
1085
1094
|
expect(savedRequest.first_text).to.equal("first_text");
|
1086
1095
|
expect(savedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -1097,9 +1106,9 @@ it('routeDepartmentSameAgentDifferentDepartment', function (done) {
|
|
1097
1106
|
departmentService.create("AssignedDepartment-for-routeDepartmentSameAgentDifferentDepartment", savedProject._id, 'assigned', userid).then(function(createdDepartment) {
|
1098
1107
|
|
1099
1108
|
// route(request_id, departmentid, id_project, nobot, no_populate) {
|
1100
|
-
requestService.route("routeDepartmentSameAgentDifferentDepartment", createdDepartment._id, savedProject._id, false).then(function(routedRequest) {
|
1109
|
+
requestService.route("routeDepartmentSameAgentDifferentDepartment-"+now, createdDepartment._id, savedProject._id, false).then(function(routedRequest) {
|
1101
1110
|
|
1102
|
-
expect(routedRequest.request_id).to.equal("routeDepartmentSameAgentDifferentDepartment");
|
1111
|
+
expect(routedRequest.request_id).to.equal("routeDepartmentSameAgentDifferentDepartment-"+now);
|
1103
1112
|
expect(routedRequest.requester._id.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
1104
1113
|
expect(routedRequest.first_text).to.equal("first_text");
|
1105
1114
|
expect(routedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -1169,10 +1178,11 @@ it('routeDepartmentSameAgentDifferentDepartment', function (done) {
|
|
1169
1178
|
if (err) {
|
1170
1179
|
console.log("err",err)
|
1171
1180
|
}
|
1172
|
-
|
1173
|
-
|
1181
|
+
var now = Date.now();
|
1182
|
+
|
1183
|
+
requestService.createWithIdAndRequester("routeDepartmentDifferentAgentDifferentDepartment-"+now, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
1174
1184
|
winston.debug("resolve savedRequest");
|
1175
|
-
expect(savedRequest.request_id).to.equal("routeDepartmentDifferentAgentDifferentDepartment");
|
1185
|
+
expect(savedRequest.request_id).to.equal("routeDepartmentDifferentAgentDifferentDepartment-"+now);
|
1176
1186
|
expect(savedRequest.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
1177
1187
|
expect(savedRequest.first_text).to.equal("first_text");
|
1178
1188
|
expect(savedRequest.snapshot.agents).to.have.lengthOf(2);
|
@@ -1210,9 +1220,9 @@ it('routeDepartmentSameAgentDifferentDepartment', function (done) {
|
|
1210
1220
|
|
1211
1221
|
|
1212
1222
|
// route(request_id, departmentid, id_project, nobot, no_populate) {
|
1213
|
-
requestService.route("routeDepartmentDifferentAgentDifferentDepartment", createdDepartment._id, savedProject._id, false).then(function(routedRequest) {
|
1223
|
+
requestService.route("routeDepartmentDifferentAgentDifferentDepartment-"+now, createdDepartment._id, savedProject._id, false).then(function(routedRequest) {
|
1214
1224
|
|
1215
|
-
expect(routedRequest.request_id).to.equal("routeDepartmentDifferentAgentDifferentDepartment");
|
1225
|
+
expect(routedRequest.request_id).to.equal("routeDepartmentDifferentAgentDifferentDepartment-"+now);
|
1216
1226
|
expect(routedRequest.requester._id.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
1217
1227
|
expect(routedRequest.first_text).to.equal("first_text");
|
1218
1228
|
expect(routedRequest.snapshot.agents).to.have.lengthOf(1);
|
@@ -1260,8 +1270,8 @@ it('reroute', function (done) {
|
|
1260
1270
|
|
1261
1271
|
projectService.createAndReturnProjectAndProjectUser("reroute-project", userid).then(function(savedProjectAndPU) {
|
1262
1272
|
var savedProject = savedProjectAndPU.project;
|
1263
|
-
|
1264
|
-
requestService.createWithIdAndRequester("request_id1-reroute", savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
1273
|
+
var now = Date.now();
|
1274
|
+
requestService.createWithIdAndRequester("request_id1-reroute-"+now, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
1265
1275
|
|
1266
1276
|
// reroute(request_id, id_project, nobot) {
|
1267
1277
|
requestService.reroute(savedRequest.request_id, savedProject._id, true).then(function(savedRequestParticipant) {
|
@@ -1271,7 +1281,7 @@ it('reroute', function (done) {
|
|
1271
1281
|
expect(savedRequest.status).to.equal(200);
|
1272
1282
|
|
1273
1283
|
//savedRequestParticipant is UNASSIGNED -> 100
|
1274
|
-
expect(savedRequestParticipant.request_id).to.equal("request_id1-reroute");
|
1284
|
+
expect(savedRequestParticipant.request_id).to.equal("request_id1-reroute-"+now);
|
1275
1285
|
// expect(savedRequestParticipant.requester.toString()).to.equal(savedProjectAndPU.project_user._id.toString());
|
1276
1286
|
expect(savedRequestParticipant.first_text).to.equal("first_text");
|
1277
1287
|
expect(savedRequestParticipant.snapshot.agents).to.have.lengthOf(1);
|
@@ -1313,8 +1323,8 @@ it('closeRequestAndRemoveParticipant', function (done) {
|
|
1313
1323
|
|
1314
1324
|
projectService.createAndReturnProjectAndProjectUser("test1", userid).then(function(savedProjectAndPU) {
|
1315
1325
|
var savedProject = savedProjectAndPU.project;
|
1316
|
-
|
1317
|
-
requestService.createWithIdAndRequester("request_id-closeRequestAndRemoveParticipant", savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
1326
|
+
var now = Date.now();
|
1327
|
+
requestService.createWithIdAndRequester("request_id-closeRequestAndRemoveParticipant-"+now, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function(savedRequest) {
|
1318
1328
|
Promise.all([
|
1319
1329
|
messageService.create("5badfe5d553d1844ad654072", "test sender", savedRequest.request_id, "hello1",
|
1320
1330
|
savedProject._id, "5badfe5d553d1844ad654072"),
|
@@ -1356,15 +1366,15 @@ it('addTag', function (done) {
|
|
1356
1366
|
var savedProject = savedProjectAndPU.project;
|
1357
1367
|
|
1358
1368
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
1359
|
-
|
1360
|
-
requestService.createWithIdAndRequester("request_id1-addTag", savedProjectAndPU.project_user._id, createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
|
1369
|
+
var now = Date.now();
|
1370
|
+
requestService.createWithIdAndRequester("request_id1-addTag-"+now, savedProjectAndPU.project_user._id, createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
|
1361
1371
|
winston.debug("resolve", savedRequest.toObject());
|
1362
|
-
expect(savedRequest.request_id).to.equal("request_id1-addTag");
|
1372
|
+
expect(savedRequest.request_id).to.equal("request_id1-addTag-"+now);
|
1363
1373
|
expect(savedRequest.tags.length).to.equal(0);
|
1364
1374
|
|
1365
1375
|
var tag = {tag:"tag1"};
|
1366
|
-
requestService.addTagByRequestId("request_id1-addTag", savedProject._id, tag).then(function(savedReqTag) {
|
1367
|
-
expect(savedReqTag.request_id).to.equal("request_id1-addTag");
|
1376
|
+
requestService.addTagByRequestId("request_id1-addTag-"+now, savedProject._id, tag).then(function(savedReqTag) {
|
1377
|
+
expect(savedReqTag.request_id).to.equal("request_id1-addTag-"+now);
|
1368
1378
|
expect(savedReqTag.tags.length).to.equal(1);
|
1369
1379
|
expect(savedReqTag.tags[0].tag).to.equal("tag1");
|
1370
1380
|
done();
|
@@ -1394,20 +1404,20 @@ it('removeTag', function (done) {
|
|
1394
1404
|
var savedProject = savedProjectAndPU.project;
|
1395
1405
|
|
1396
1406
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
1397
|
-
|
1398
|
-
requestService.createWithIdAndRequester("request_id1-addTag", savedProjectAndPU.project_user._id, createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
|
1407
|
+
var now = Date.now();
|
1408
|
+
requestService.createWithIdAndRequester("request_id1-addTag-"+now, savedProjectAndPU.project_user._id, createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
|
1399
1409
|
winston.debug("resolve", savedRequest.toObject());
|
1400
|
-
expect(savedRequest.request_id).to.equal("request_id1-addTag");
|
1410
|
+
expect(savedRequest.request_id).to.equal("request_id1-addTag-"+now);
|
1401
1411
|
expect(savedRequest.tags.length).to.equal(0);
|
1402
1412
|
|
1403
1413
|
var tag = {tag:"tag1"};
|
1404
|
-
requestService.addTagByRequestId("request_id1-addTag", savedProject._id, tag).then(function(savedReqTag) {
|
1405
|
-
expect(savedReqTag.request_id).to.equal("request_id1-addTag");
|
1414
|
+
requestService.addTagByRequestId("request_id1-addTag-"+now, savedProject._id, tag).then(function(savedReqTag) {
|
1415
|
+
expect(savedReqTag.request_id).to.equal("request_id1-addTag-"+now);
|
1406
1416
|
expect(savedReqTag.tags.length).to.equal(1);
|
1407
1417
|
expect(savedReqTag.tags[0].tag).to.equal("tag1");
|
1408
1418
|
|
1409
|
-
requestService.removeTagByRequestId("request_id1-addTag", savedProject._id, "tag1").then(function(savedReqTagRem) {
|
1410
|
-
expect(savedReqTagRem.request_id).to.equal("request_id1-addTag");
|
1419
|
+
requestService.removeTagByRequestId("request_id1-addTag-"+now, savedProject._id, "tag1").then(function(savedReqTagRem) {
|
1420
|
+
expect(savedReqTagRem.request_id).to.equal("request_id1-addTag-"+now);
|
1411
1421
|
expect(savedReqTagRem.tags.length).to.equal(0);
|
1412
1422
|
done();
|
1413
1423
|
});
|
@@ -1455,9 +1465,9 @@ it('removeTag', function (done) {
|
|
1455
1465
|
var savedProject = savedProjectAndPU.project;
|
1456
1466
|
|
1457
1467
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
1458
|
-
|
1468
|
+
var now = Date.now();
|
1459
1469
|
var request = {
|
1460
|
-
request_id:"
|
1470
|
+
request_id:"request_idcreateMessageMicroLanguageAttributes-"+now, project_user_id:savedProjectAndPU.project_user._id, lead_id:createdLead._id,
|
1461
1471
|
id_project:savedProject._id, first_text: "first_text",
|
1462
1472
|
participants: [userid],
|
1463
1473
|
lead:createdLead, requester: savedProjectAndPU.project_user };
|
@@ -1522,12 +1532,16 @@ it('removeTag', function (done) {
|
|
1522
1532
|
|
1523
1533
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
1524
1534
|
|
1535
|
+
var now = Date.now();
|
1536
|
+
|
1537
|
+
|
1525
1538
|
var request = {
|
1526
|
-
request_id:"
|
1539
|
+
request_id:"request_idcreateMessageMicroLanguageFromBot-"+now, project_user_id:savedProjectAndPU.project_user._id, lead_id:createdLead._id,
|
1527
1540
|
id_project:savedProject._id, first_text: "first_text",
|
1528
1541
|
participants: ["bot_"+userid],
|
1529
1542
|
lead:createdLead, requester: savedProjectAndPU.project_user };
|
1530
1543
|
|
1544
|
+
|
1531
1545
|
requestService.create(request).then(function(savedRequest) {
|
1532
1546
|
winston.info("resolve", savedRequest.toObject());
|
1533
1547
|
|
@@ -1572,8 +1586,10 @@ it('removeTag', function (done) {
|
|
1572
1586
|
|
1573
1587
|
leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function(createdLead) {
|
1574
1588
|
|
1589
|
+
var now = Date.now();
|
1590
|
+
|
1575
1591
|
var request = {
|
1576
|
-
request_id:"
|
1592
|
+
request_id:"request_idselectSnapshot-"+now, project_user_id:savedProjectAndPU.project_user._id, lead_id:createdLead._id,
|
1577
1593
|
id_project:savedProject._id, first_text: "first_text",
|
1578
1594
|
participants: ["bot_"+userid],
|
1579
1595
|
lead:createdLead, requester: savedProjectAndPU.project_user };
|
package/test-int/bot.js
CHANGED
@@ -372,6 +372,7 @@ describe('bot', () => {
|
|
372
372
|
|
373
373
|
|
374
374
|
|
375
|
+
|
375
376
|
// mocha test-int/bot.js --grep 'createSimpleFulltext'
|
376
377
|
it('createSimpleFulltext', (done) => {
|
377
378
|
|
@@ -383,7 +384,100 @@ describe('bot', () => {
|
|
383
384
|
userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
|
384
385
|
projectService.create("test-bot", savedUser._id).then(function(savedProject) {
|
385
386
|
// create(name, url, projectid, user_id, type)
|
386
|
-
faqService.create("testbot",
|
387
|
+
faqService.create("testbot", undefined, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
|
388
|
+
|
389
|
+
var newFaq = new Faq({
|
390
|
+
id_faq_kb: savedBot._id,
|
391
|
+
question: 'question number one',
|
392
|
+
answer: 'answer',
|
393
|
+
id_project: savedProject._id,
|
394
|
+
createdBy: savedUser._id,
|
395
|
+
updatedBy: savedUser._id
|
396
|
+
});
|
397
|
+
|
398
|
+
newFaq.save(function (err, savedFaq) {
|
399
|
+
|
400
|
+
|
401
|
+
Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
|
402
|
+
|
403
|
+
chai.request(server)
|
404
|
+
.post('/'+ savedProject._id + '/subscriptions')
|
405
|
+
.auth(email, pwd)
|
406
|
+
.set('content-type', 'application/json')
|
407
|
+
.send({"event":"message.create", "target":"http://localhost:3010/"})
|
408
|
+
.end((err, res) => {
|
409
|
+
console.log("res.body", JSON.stringify(res.body));
|
410
|
+
// console.dir("res.body 1", res.body);
|
411
|
+
console.log("res.headers", res.headers);
|
412
|
+
res.should.have.status(200);
|
413
|
+
res.body.should.be.a('object');
|
414
|
+
expect(res.body.event).to.equal("message.create");
|
415
|
+
var secret = res.body.secret;
|
416
|
+
expect(secret).to.not.equal(null);
|
417
|
+
expect(res.headers["x-hook-secret"]).to.equal(secret);
|
418
|
+
|
419
|
+
|
420
|
+
let messageReceived = 0;
|
421
|
+
var serverClient = express();
|
422
|
+
serverClient.use(bodyParser.json());
|
423
|
+
serverClient.post('/', function (req, res) {
|
424
|
+
console.log('serverClient req', JSON.stringify(req.body));
|
425
|
+
console.log("serverClient.headers", JSON.stringify(req.headers));
|
426
|
+
messageReceived = messageReceived+1;
|
427
|
+
expect(req.body.hook.event).to.equal("message.create");
|
428
|
+
expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-sending");
|
429
|
+
expect(req.body.payload.request.department).to.not.equal(null);
|
430
|
+
expect(req.body.payload.request.department.bot).to.not.equal(null);
|
431
|
+
expect(req.body.payload.request.department.bot.name).to.equal("testbot");
|
432
|
+
|
433
|
+
expect(req.headers["x-hook-secret"]).to.equal(secret);
|
434
|
+
res.send('POST request to the homepage');
|
435
|
+
expect(req.body.payload.text).to.equal("answer");
|
436
|
+
// console.log("savedFaq",savedFaq);
|
437
|
+
expect(req.body.payload.sender).to.equal("bot_"+savedBot.id);
|
438
|
+
expect(req.body.payload.recipient).to.equal("request_id-subscription-message-sending");
|
439
|
+
// expect(req.body.payload.attributes._answer._id.toString()).to.equal(savedFaq._id.toString());
|
440
|
+
expect(req.body.payload.attributes._answerid.toString()).to.equal(savedFaq._id.toString());
|
441
|
+
done();
|
442
|
+
|
443
|
+
|
444
|
+
|
445
|
+
|
446
|
+
});
|
447
|
+
var listener = serverClient.listen(3010, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
|
448
|
+
|
449
|
+
|
450
|
+
leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
|
451
|
+
requestService.createWithId("request_id-subscription-message-sending", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
|
452
|
+
messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
|
453
|
+
savedProject._id, savedUser._id).then(function(savedMessage){
|
454
|
+
expect(savedMessage.text).to.equal("question");
|
455
|
+
// expect(savedMessage.sender).to.equal("question");
|
456
|
+
});
|
457
|
+
});
|
458
|
+
});
|
459
|
+
});
|
460
|
+
});
|
461
|
+
});
|
462
|
+
});
|
463
|
+
|
464
|
+
});
|
465
|
+
});
|
466
|
+
}).timeout(20000);
|
467
|
+
|
468
|
+
|
469
|
+
// mocha test-int/bot.js --grep 'createSimpleExternalSearcherBot'
|
470
|
+
it('createSimpleExternalSearcherBot', (done) => {
|
471
|
+
|
472
|
+
var email = "test-bot-" + Date.now() + "@email.com";
|
473
|
+
var pwd = "pwd";
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
|
478
|
+
projectService.create("test-bot", savedUser._id).then(function(savedProject) {
|
479
|
+
// create(name, url, projectid, user_id, type)
|
480
|
+
faqService.create("testbot", "http://localhost:3001/samples/bot/external/searcher", savedProject._id, savedUser._id, "internal").then(function(savedBot) {
|
387
481
|
|
388
482
|
var newFaq = new Faq({
|
389
483
|
id_faq_kb: savedBot._id,
|
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
var request = require('retry-request', {
|
5
|
+
request: require('request')
|
6
|
+
});
|
7
|
+
|
8
|
+
|
9
|
+
class HttpUtil {
|
10
|
+
|
11
|
+
call(url, headers, json, method) {
|
12
|
+
return new Promise(function (resolve, reject) {
|
13
|
+
request({
|
14
|
+
url: url,
|
15
|
+
headers: headers,
|
16
|
+
json: json,
|
17
|
+
method: method
|
18
|
+
}, function(err, result, json){
|
19
|
+
//console.log("SENT notify for bot with url " + url + " with err " + err);
|
20
|
+
if (err) {
|
21
|
+
//console.log("Error sending notify for bot with url " + url + " with err " + err);
|
22
|
+
return reject(err);
|
23
|
+
}
|
24
|
+
return resolve(json);
|
25
|
+
});
|
26
|
+
});
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
|
31
|
+
var httpUtil = new HttpUtil();
|
32
|
+
|
33
|
+
/*
|
34
|
+
async function ciao() {
|
35
|
+
var res = await httpUtil.call("https://webhook.site/bd710929-9b43-4065-88db-78ee17f84aec", undefined, {c:1}, "POST")
|
36
|
+
console.log("res", res);
|
37
|
+
|
38
|
+
}
|
39
|
+
ciao();
|
40
|
+
*/
|
41
|
+
|
42
|
+
module.exports = httpUtil;
|