@tiledesk/tiledesk-server 2.10.79 → 2.10.80

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,6 +5,9 @@
5
5
  🚀 IN PRODUCTION 🚀
6
6
  (https://www.npmjs.com/package/@tiledesk/tiledesk-server/v/2.3.77)
7
7
 
8
+ # 2.10.80
9
+ - Updated tybot-connector to 2.0.9
10
+
8
11
  # 2.10.79
9
12
  - Updated tybot-connector to 2.0.8
10
13
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tiledesk/tiledesk-server",
3
3
  "description": "The Tiledesk server module",
4
- "version": "2.10.79",
4
+ "version": "2.10.80",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
@@ -47,7 +47,7 @@
47
47
  "@tiledesk/tiledesk-messenger-connector": "^0.1.23",
48
48
  "@tiledesk/tiledesk-rasa-connector": "^1.0.10",
49
49
  "@tiledesk/tiledesk-telegram-connector": "^0.1.14",
50
- "@tiledesk/tiledesk-tybot-connector": "^2.0.8",
50
+ "@tiledesk/tiledesk-tybot-connector": "^2.0.9",
51
51
  "@tiledesk/tiledesk-whatsapp-connector": "^0.1.81",
52
52
  "@tiledesk/tiledesk-whatsapp-jobworker": "^0.0.12",
53
53
  "@tiledesk/tiledesk-sms-connector": "^0.1.11",
package/routes/message.js CHANGED
@@ -49,7 +49,6 @@ async (req, res) => {
49
49
  winston.debug('req.params: ', req.params);
50
50
  winston.debug('req.params.request_id: ' + req.params.request_id);
51
51
 
52
-
53
52
  // const errors = validationResult(req);
54
53
  // if (!errors.isEmpty()) {
55
54
  // return res.status(422).json({ errors: errors.array() });
@@ -8,10 +8,12 @@ const messagePromiseEvent = require('../event/messagePromiseEvent');
8
8
  var winston = require('../config/winston');
9
9
  var cacheUtil = require("../utils/cacheUtil");
10
10
  var cacheEnabler = require("../services/cacheEnabler");
11
+ const fileUtils = require("../utils/fileUtils");
12
+ const Integration = require("../models/integrations");
13
+ const aiService = require("./aiService");
11
14
 
12
15
  class MessageService {
13
16
 
14
-
15
17
  send(sender, senderFullname, recipient, text, id_project, createdBy, attributes, type, metadata, language) {
16
18
  return this.create(sender, senderFullname, recipient, text, id_project, createdBy, MessageConstants.CHAT_MESSAGE_STATUS.SENDING, attributes, type, metadata, language);
17
19
  }
@@ -92,7 +94,7 @@ class MessageService {
92
94
 
93
95
 
94
96
 
95
- messagePromiseEvent.emit('message.create.simple.before', { beforeMessage: beforeMessage }).then(results => {
97
+ messagePromiseEvent.emit('message.create.simple.before', { beforeMessage: beforeMessage }).then(async (results) => {
96
98
  winston.debug('message.create.simple.before results', results);
97
99
  winston.debug('message.create.simple.before results prototype: ' + Object.prototype.toString.call(results));
98
100
 
@@ -109,6 +111,18 @@ class MessageService {
109
111
 
110
112
  winston.debug('messageToCreate', messageToCreate);
111
113
 
114
+ if (messageToCreate.type === "file" &&
115
+ messageToCreate.metadata &&
116
+ messageToCreate.metadata.type.startsWith('audio/')) {
117
+ try {
118
+ let audio_transcription = await that.getAudioTranscription(id_project, messageToCreate.metadata.src);
119
+ if (audio_transcription) {
120
+ messageToCreate.text = audio_transcription;
121
+ }
122
+ } catch(err) {
123
+ winston.error("Error on getAudioTranscription: ", err);
124
+ }
125
+ }
112
126
 
113
127
  // if (id_project) {
114
128
 
@@ -186,8 +200,6 @@ class MessageService {
186
200
 
187
201
  };
188
202
 
189
-
190
-
191
203
  emitMessage(message) {
192
204
  if (message.status === MessageConstants.CHAT_MESSAGE_STATUS.RECEIVED) {
193
205
  messageEvent.emit('message.received.simple', message);
@@ -231,8 +243,6 @@ class MessageService {
231
243
 
232
244
  }
233
245
 
234
-
235
-
236
246
  getTranscriptByRequestId(requestid, id_project) {
237
247
  winston.debug("requestid", requestid);
238
248
  winston.debug("id_project", id_project);
@@ -284,18 +294,49 @@ class MessageService {
284
294
  });
285
295
  }
286
296
 
297
+ getAudioTranscription(id_project, audio_url) {
298
+ return new Promise( async (resolve) => {
299
+ try {
287
300
 
301
+ if (process.env.NODE_ENV === 'test') {
302
+ resolve("This is a mock trancripted audio")
303
+ }
288
304
 
305
+ let file = await fileUtils.downloadFromUrl(audio_url);
306
+ let key;
307
+ let integration = await Integration.findOne({ id_project: id_project, name: 'openai' }).catch((err) => {
308
+ winston.error("Error finding integration for openai");
309
+ resolve(null);
289
310
 
311
+ })
290
312
 
313
+ if (!integration || !integration?.value?.apikey) {
314
+ winston.verbose("Integration for openai not found or apikey is undefined.")
315
+ key = process.env.GPTKEY;
316
+ } else {
317
+ key = integration.value.apikey;
318
+ }
291
319
 
320
+ if (!key) {
321
+ winston.verbose("No openai key provided");
322
+ resolve(null)
323
+ }
292
324
 
293
-
325
+ aiService.transcription(file, key).then((response) => {
326
+ resolve(response.data.text);
327
+ }).catch((err) => {
328
+ winston.error("Error getting audio transcription: ", err?.response?.data);
329
+ resolve(null)
330
+ })
331
+ } catch(err) {
332
+ winston.error("Error on audio transcription: ", err)
333
+ resolve(null);
334
+ }
335
+ })
336
+ }
294
337
 
295
338
  }
296
339
 
297
340
 
298
341
  var messageService = new MessageService();
299
-
300
-
301
342
  module.exports = messageService;
@@ -39,9 +39,10 @@ describe('MessageRoute', () => {
39
39
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
40
40
 
41
41
  var savedProject = savedProjectAndPU.project;
42
+ let request_id = "req_" + Date.now();
42
43
 
43
44
  chai.request(server)
44
- .post('/' + savedProject._id + '/requests/req123/messages')
45
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
45
46
  .auth(email, pwd)
46
47
  .set('content-type', 'application/json')
47
48
  .send({ "text": "text" })
@@ -49,19 +50,19 @@ describe('MessageRoute', () => {
49
50
 
50
51
  if (err) { console.error("err", err); }
51
52
  if (log) { console.log("res.body", res.body); }
52
-
53
+
53
54
  res.should.have.status(200);
54
55
  res.body.should.be.a('object');
55
56
 
56
57
  expect(res.body.sender).to.equal(savedUser._id.toString());
57
58
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
58
59
  // expect(res.body.senderFullname).to.equal("senderFullname");
59
- expect(res.body.recipient).to.equal("req123");
60
+ expect(res.body.recipient).to.equal(request_id);
60
61
  expect(res.body.text).to.equal("text");
61
62
  expect(res.body.id_project).to.equal(savedProject._id.toString());
62
63
  expect(res.body.createdBy).to.equal(savedUser._id.toString());
63
64
  expect(res.body.status).to.equal(0);
64
- expect(res.body.request.request_id).to.equal("req123");
65
+ expect(res.body.request.request_id).to.equal(request_id);
65
66
  expect(res.body.request.requester._id).to.equal(savedProjectAndPU.project_user._id.toString());
66
67
  // expect(res.body.request.requester_id).to.equal("sender");
67
68
  expect(res.body.request.first_text).to.equal("text");
@@ -94,9 +95,10 @@ describe('MessageRoute', () => {
94
95
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
95
96
 
96
97
  var savedProject = savedProjectAndPU.project;
98
+ let request_id = "req_" + Date.now();
97
99
 
98
100
  chai.request(server)
99
- .post('/' + savedProject._id + '/requests/req123/messages')
101
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
100
102
  .auth(email, pwd)
101
103
  .set('content-type', 'application/json')
102
104
  .send({ "text": "" })
@@ -123,9 +125,10 @@ describe('MessageRoute', () => {
123
125
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
124
126
 
125
127
  var savedProject = savedProjectAndPU.project;
128
+ let request_id = "req_" + Date.now();
126
129
 
127
130
  chai.request(server)
128
- .post('/' + savedProject._id + '/requests/req123/messages')
131
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
129
132
  .auth(email, pwd)
130
133
  .set('content-type', 'application/json')
131
134
  .send({})
@@ -152,9 +155,10 @@ describe('MessageRoute', () => {
152
155
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
153
156
 
154
157
  var savedProject = savedProjectAndPU.project;
158
+ let request_id = "req-createSimpleWithAttributes-" + Date.now();
155
159
 
156
160
  chai.request(server)
157
- .post('/' + savedProject._id + '/requests/req123-createSimpleWithAttributes/messages')
161
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
158
162
  .auth(email, pwd)
159
163
  .set('content-type', 'application/json')
160
164
  .send({ "text": "text", "attributes": { "a": "b" } })
@@ -168,13 +172,13 @@ describe('MessageRoute', () => {
168
172
  expect(res.body.sender).to.equal(savedUser._id.toString());
169
173
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
170
174
  // expect(res.body.senderFullname).to.equal("senderFullname");
171
- expect(res.body.recipient).to.equal("req123-createSimpleWithAttributes");
175
+ expect(res.body.recipient).to.equal(request_id);
172
176
  expect(res.body.text).to.equal("text");
173
177
  expect(res.body.id_project).to.equal(savedProject._id.toString());
174
178
  expect(res.body.createdBy).to.equal(savedUser._id.toString());
175
179
  expect(res.body.status).to.equal(0);
176
180
  expect(res.body.attributes.a).to.equal("b");
177
- expect(res.body.request.request_id).to.equal("req123-createSimpleWithAttributes");
181
+ expect(res.body.request.request_id).to.equal(request_id);
178
182
  expect(res.body.request.requester._id).to.equal(savedProjectAndPU.project_user._id.toString());
179
183
  // expect(res.body.request.requester_id).to.equal("sender");
180
184
  expect(res.body.request.first_text).to.equal("text");
@@ -226,8 +230,10 @@ describe('MessageRoute', () => {
226
230
  });
227
231
  pu2.save(function (err, savedProject_user2) {
228
232
 
233
+ let request_id = "req-createwithsender-" + Date.now();
234
+
229
235
  chai.request(server)
230
- .post('/' + savedProject._id + '/requests/req123-createwithsender/messages')
236
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
231
237
  .auth(email, pwd)
232
238
  .set('content-type', 'application/json')
233
239
  .send({ "text": "text", "sender": savedUser2._id.toString() })
@@ -241,12 +247,12 @@ describe('MessageRoute', () => {
241
247
  expect(res.body.sender).to.equal(savedUser2._id.toString());
242
248
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
243
249
  expect(res.body.senderFullname).to.equal("Test Firstname22 Test lastname22");
244
- expect(res.body.recipient).to.equal("req123-createwithsender");
250
+ expect(res.body.recipient).to.equal(request_id);
245
251
  expect(res.body.text).to.equal("text");
246
252
  expect(res.body.id_project).to.equal(savedProject._id.toString());
247
253
  expect(res.body.createdBy).to.equal(savedUser._id.toString());
248
254
  expect(res.body.status).to.equal(0);
249
- expect(res.body.request.request_id).to.equal("req123-createwithsender");
255
+ expect(res.body.request.request_id).to.equal(request_id);
250
256
  expect(res.body.request.requester._id).to.equal(savedProject_user2._id.toString());
251
257
  expect(res.body.request.requester.id_user.email).to.equal(email2);
252
258
  expect(res.body.request.requester.id_user.firstname).to.equal("Test Firstname22");
@@ -362,9 +368,10 @@ describe('MessageRoute', () => {
362
368
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
363
369
 
364
370
  var savedProject = savedProjectAndPU.project;
371
+ let request_id = "req-createWithLocation-" + Date.now();
365
372
 
366
373
  chai.request(server)
367
- .post('/' + savedProject._id + '/requests/req-createWithLocation/messages')
374
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
368
375
  .auth(email, pwd)
369
376
  .set('content-type', 'application/json')
370
377
  .send({ text: "text", location: { country: "Italy", streetAddress: "Via Roma, 767b", ipAddress: "192.168.1.1", geometry: { type: "Point", coordinates: [-109, 41] } } })
@@ -372,17 +379,17 @@ describe('MessageRoute', () => {
372
379
 
373
380
  if (err) { console.error("err", err); }
374
381
  if (log) { console.log("res.body", res.body); }
375
-
382
+
376
383
  res.should.have.status(200);
377
384
  res.body.should.be.a('object');
378
385
 
379
386
  expect(res.body.sender).to.equal(savedUser._id.toString());
380
387
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
381
388
  // expect(res.body.senderFullname).to.equal("senderFullname");
382
- expect(res.body.recipient).to.equal("req-createWithLocation");
389
+ expect(res.body.recipient).to.equal(request_id);
383
390
  expect(res.body.text).to.equal("text");
384
391
  expect(res.body.id_project).to.equal(savedProject._id.toString());
385
- expect(res.body.request.request_id).to.equal("req-createWithLocation");
392
+ expect(res.body.request.request_id).to.equal(request_id);
386
393
  expect(res.body.request.requester._id).to.equal(savedProjectAndPU.project_user._id.toString());
387
394
  // expect(res.body.request.requester_id).to.equal("sender");
388
395
  expect(res.body.request.first_text).to.equal("text");
@@ -410,9 +417,10 @@ describe('MessageRoute', () => {
410
417
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
411
418
 
412
419
  var savedProject = savedProjectAndPU.project;
420
+ let request_id = "req-createWithLocationAsAttributes-" + Date.now();
413
421
 
414
422
  chai.request(server)
415
- .post('/' + savedProject._id + '/requests/req-createWithLocationAsAttributes/messages')
423
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
416
424
  .auth(email, pwd)
417
425
  .set('content-type', 'application/json')
418
426
  .send({ text: "text", attributes: { ipAddress: "95.255.73.34" } })
@@ -427,17 +435,17 @@ describe('MessageRoute', () => {
427
435
  expect(res.body.sender).to.equal(savedUser._id.toString());
428
436
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
429
437
  // expect(res.body.senderFullname).to.equal("senderFullname");
430
- expect(res.body.recipient).to.equal("req-createWithLocationAsAttributes");
438
+ expect(res.body.recipient).to.equal(request_id);
431
439
  expect(res.body.text).to.equal("text");
432
440
  expect(res.body.id_project).to.equal(savedProject._id.toString());
433
- expect(res.body.request.request_id).to.equal("req-createWithLocationAsAttributes");
441
+ expect(res.body.request.request_id).to.equal(request_id);
434
442
  expect(res.body.request.requester._id).to.equal(savedProjectAndPU.project_user._id.toString());
435
443
  // expect(res.body.request.requester_id).to.equal("sender");
436
444
  expect(res.body.request.first_text).to.equal("text");
437
445
  expect(res.body.request.id_project).to.equal(savedProject._id.toString());
438
446
 
439
447
  chai.request(server)
440
- .get('/' + savedProject._id + '/requests/req-createWithLocationAsAttributes')
448
+ .get('/' + savedProject._id + '/requests/' + request_id)
441
449
  .auth(email, pwd)
442
450
  .set('content-type', 'application/json')
443
451
  .send()
@@ -448,7 +456,7 @@ describe('MessageRoute', () => {
448
456
 
449
457
  res.should.have.status(200);
450
458
  res.body.should.be.a('object');
451
- expect(res.body.request_id).to.equal("req-createWithLocationAsAttributes");
459
+ expect(res.body.request_id).to.equal(request_id);
452
460
  expect(res.body.location.country).to.equal("IT");
453
461
  expect(res.body.location.ipAddress).to.equal("95.255.73.34");
454
462
  expect(res.body.location.geometry.type).to.equal("Point");
@@ -471,9 +479,10 @@ describe('MessageRoute', () => {
471
479
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
472
480
 
473
481
  var savedProject = savedProjectAndPU.project;
482
+ let request_id = "req-channel1-" + Date.now();
474
483
 
475
484
  chai.request(server)
476
- .post('/' + savedProject._id + '/requests/req123-channel1/messages')
485
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
477
486
  .auth(email, pwd)
478
487
  .set('content-type', 'application/json')
479
488
  .send({ text: "text", channel: { name: "channel1" } })
@@ -487,12 +496,12 @@ describe('MessageRoute', () => {
487
496
  expect(res.body.sender).to.equal(savedUser._id.toString());
488
497
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
489
498
  // expect(res.body.senderFullname).to.equal("senderFullname");
490
- expect(res.body.recipient).to.equal("req123-channel1");
499
+ expect(res.body.recipient).to.equal(request_id);
491
500
  expect(res.body.text).to.equal("text");
492
501
  expect(res.body.id_project).to.equal(savedProject._id.toString());
493
502
  expect(res.body.createdBy).to.equal(savedUser._id.toString());
494
503
  expect(res.body.status).to.equal(0);
495
- expect(res.body.request.request_id).to.equal("req123-channel1");
504
+ expect(res.body.request.request_id).to.equal(request_id);
496
505
  expect(res.body.request.requester._id).to.equal(savedProjectAndPU.project_user._id.toString());
497
506
  // expect(res.body.request.requester_id).to.equal("sender");
498
507
  expect(res.body.request.first_text).to.equal("text");
@@ -525,9 +534,9 @@ describe('MessageRoute', () => {
525
534
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
526
535
 
527
536
  var savedProject = savedProjectAndPU.project;
528
-
537
+ let request_id = "req_createWithMessageStatus-" + Date.now();
529
538
  chai.request(server)
530
- .post('/' + savedProject._id + '/requests/req123-createWithMessageStatus/messages')
539
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
531
540
  .auth(email, pwd)
532
541
  .set('content-type', 'application/json')
533
542
  .send({ "text": "text", "status": 999 })
@@ -541,12 +550,12 @@ describe('MessageRoute', () => {
541
550
  expect(res.body.sender).to.equal(savedUser._id.toString());
542
551
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
543
552
  // expect(res.body.senderFullname).to.equal("senderFullname");
544
- expect(res.body.recipient).to.equal("req123-createWithMessageStatus");
553
+ expect(res.body.recipient).to.equal(request_id);
545
554
  expect(res.body.text).to.equal("text");
546
555
  expect(res.body.id_project).to.equal(savedProject._id.toString());
547
556
  expect(res.body.createdBy).to.equal(savedUser._id.toString());
548
557
  expect(res.body.status).to.equal(999);
549
- expect(res.body.request.request_id).to.equal("req123-createWithMessageStatus");
558
+ expect(res.body.request.request_id).to.equal(request_id);
550
559
  if (log) { console.log("res.body.request.requester", JSON.stringify(res.body.request.requester)); }
551
560
  expect(res.body.request.requester._id).to.equal(savedProjectAndPU.project_user._id.toString());
552
561
  // expect(res.body.request.requester_id).to.equal("sender");
@@ -580,9 +589,9 @@ describe('MessageRoute', () => {
580
589
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
581
590
 
582
591
  var savedProject = savedProjectAndPU.project;
583
-
592
+ let request_id = "req_createWithParticipants-" + Date.now();
584
593
  chai.request(server)
585
- .post('/' + savedProject._id + '/requests/req123-createWithParticipants/messages')
594
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
586
595
  .auth(email, pwd)
587
596
  .set('content-type', 'application/json')
588
597
  .send({ "text": "text", "participants": [savedUser._id] })
@@ -596,12 +605,12 @@ describe('MessageRoute', () => {
596
605
  expect(res.body.sender).to.equal(savedUser._id.toString());
597
606
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
598
607
  // expect(res.body.senderFullname).to.equal("senderFullname");
599
- expect(res.body.recipient).to.equal("req123-createWithParticipants");
608
+ expect(res.body.recipient).to.equal(request_id);
600
609
  expect(res.body.text).to.equal("text");
601
610
  expect(res.body.id_project).to.equal(savedProject._id.toString());
602
611
  expect(res.body.createdBy).to.equal(savedUser._id.toString());
603
612
  expect(res.body.status).to.equal(0);
604
- expect(res.body.request.request_id).to.equal("req123-createWithParticipants");
613
+ expect(res.body.request.request_id).to.equal(request_id);
605
614
  // expect(res.body.request.requester).to.equal(savedProjectAndPU.project_user._id.toString());
606
615
  // expect(res.body.request.requester_id).to.equal("sender");
607
616
  expect(res.body.request.first_text).to.equal("text");
@@ -694,9 +703,9 @@ describe('MessageRoute', () => {
694
703
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
695
704
 
696
705
  var savedProject = savedProjectAndPU.project;
697
-
706
+ let request_id = "req_createSimpleWithFollowers-" + Date.now();
698
707
  chai.request(server)
699
- .post('/' + savedProject._id + '/requests/req123-createSimpleWithFollowers/messages')
708
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
700
709
  .auth(email, pwd)
701
710
  .set('content-type', 'application/json')
702
711
  .send({ "text": "text", "followers": [savedProjectAndPU.project_user._id.toString()] })
@@ -710,12 +719,12 @@ describe('MessageRoute', () => {
710
719
  expect(res.body.sender).to.equal(savedUser._id.toString());
711
720
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
712
721
  // expect(res.body.senderFullname).to.equal("senderFullname");
713
- expect(res.body.recipient).to.equal("req123-createSimpleWithFollowers");
722
+ expect(res.body.recipient).to.equal(request_id);
714
723
  expect(res.body.text).to.equal("text");
715
724
  expect(res.body.id_project).to.equal(savedProject._id.toString());
716
725
  expect(res.body.createdBy).to.equal(savedUser._id.toString());
717
726
  expect(res.body.status).to.equal(0);
718
- expect(res.body.request.request_id).to.equal("req123-createSimpleWithFollowers");
727
+ expect(res.body.request.request_id).to.equal(request_id);
719
728
  expect(res.body.request.requester._id).to.equal(savedProjectAndPU.project_user._id.toString());
720
729
  // expect(res.body.request.requester_id).to.equal("sender");
721
730
  expect(res.body.request.first_text).to.equal("text");
@@ -1069,16 +1078,16 @@ describe('MessageRoute', () => {
1069
1078
  // projectService.create("message-create", savedUser._id).then(function(savedProject) {
1070
1079
  projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function (savedProjectAndPU) {
1071
1080
  var savedProject = savedProjectAndPU.project;
1072
-
1073
1081
  leadService.createIfNotExists("leadfullname-message-getall", "andrea.leo@-subscription-message-getall.it", savedProject._id).then(function (createdLead) {
1074
1082
  // requestService.createWithId("request_id-message-getall", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
1075
- requestService.createWithIdAndRequester("request_id-message-getall", savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function (savedRequest) {
1083
+ let request_id = "req_message-getall-" + Date.now();
1084
+ requestService.createWithIdAndRequester(request_id, savedProjectAndPU.project_user._id, null, savedProject._id, "first_text").then(function (savedRequest) {
1076
1085
  messageService.create(savedUser._id, "senderFullname", savedRequest.request_id, "hello",
1077
1086
  savedProject._id, savedUser._id).then(function (savedMessage) {
1078
1087
  expect(savedMessage.text).to.equal("hello");
1079
1088
 
1080
1089
  chai.request(server)
1081
- .get('/' + savedProject._id + '/requests/request_id-message-getall/messages')
1090
+ .get('/' + savedProject._id + '/requests/' + request_id + '/messages')
1082
1091
  .auth(email, pwd)
1083
1092
  .set('content-type', 'application/json')
1084
1093
  .end(function (err, res) {
@@ -1089,7 +1098,7 @@ describe('MessageRoute', () => {
1089
1098
 
1090
1099
  expect(res.body[0].sender).to.equal(savedUser._id.toString());
1091
1100
  expect(res.body[0].senderFullname).to.equal("senderFullname");
1092
- expect(res.body[0].recipient).to.equal("request_id-message-getall");
1101
+ expect(res.body[0].recipient).to.equal(request_id);
1093
1102
  expect(res.body[0].text).to.equal("hello");
1094
1103
  expect(res.body[0].id_project).to.equal(savedProject._id.toString());
1095
1104
  expect(res.body[0].createdBy).to.equal(savedUser._id.toString());
@@ -1171,8 +1180,9 @@ describe('MessageRoute', () => {
1171
1180
  expect(res.body.token).to.not.equal(undefined);
1172
1181
  expect(res.body.token).to.equal('JWT ' + jwtToken);
1173
1182
 
1183
+ let request_id = "req_customtoken-" + Date.now();
1174
1184
  chai.request(server)
1175
- .post('/' + savedProject._id + '/requests/sendMessageSigninWithCustomTokenOk/messages')
1185
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
1176
1186
  .set('Authorization', 'JWT ' + jwtToken)
1177
1187
  .set('content-type', 'application/json')
1178
1188
  .send({ "text": "text" })
@@ -1185,12 +1195,12 @@ describe('MessageRoute', () => {
1185
1195
  expect(res.body.sender).to.equal(externalUserId);
1186
1196
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
1187
1197
  // expect(res.body.senderFullname).to.equal("senderFullname");
1188
- expect(res.body.recipient).to.equal("sendMessageSigninWithCustomTokenOk");
1198
+ expect(res.body.recipient).to.equal(request_id);
1189
1199
  expect(res.body.text).to.equal("text");
1190
1200
  expect(res.body.id_project).to.equal(savedProject._id.toString());
1191
1201
  expect(res.body.createdBy).to.equal(externalUserId);
1192
1202
  expect(res.body.status).to.equal(0);
1193
- expect(res.body.request.request_id).to.equal("sendMessageSigninWithCustomTokenOk");
1203
+ expect(res.body.request.request_id).to.equal(request_id);
1194
1204
  expect(res.body.request.first_text).to.equal("text");
1195
1205
  expect(res.body.request.id_project).to.equal(savedProject._id.toString());
1196
1206
  expect(res.body.request.createdBy).to.equal(externalUserId);
@@ -1202,7 +1212,7 @@ describe('MessageRoute', () => {
1202
1212
  expect(res.body.request.lead).to.not.equal(null);
1203
1213
 
1204
1214
  chai.request(server)
1205
- .get('/' + savedProject._id + '/requests/sendMessageSigninWithCustomTokenOk')
1215
+ .get('/' + savedProject._id + '/requests/' + request_id)
1206
1216
  .auth(email, pwd)
1207
1217
  .set('content-type', 'application/json')
1208
1218
  .end(function (err, res) {
@@ -1281,8 +1291,9 @@ describe('MessageRoute', () => {
1281
1291
  expect(res.body.token).to.not.equal(undefined);
1282
1292
  expect(res.body.token).to.equal('JWT ' + jwtToken);
1283
1293
 
1294
+ let request_id = "req_customtokenmodified-" + Date.now();
1284
1295
  chai.request(server)
1285
- .post('/' + savedProject._id + '/requests/sendMessageSigninWithCustomTokenModified/messages')
1296
+ .post('/' + savedProject._id + '/requests/' + request_id + '/messages')
1286
1297
  .set('Authorization', 'JWT ' + jwtToken)
1287
1298
  .set('content-type', 'application/json')
1288
1299
  .send({ "text": "text" })
@@ -1295,12 +1306,12 @@ describe('MessageRoute', () => {
1295
1306
  expect(res.body.sender).to.equal(externalUserId);
1296
1307
  // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
1297
1308
  // expect(res.body.senderFullname).to.equal("senderFullname");
1298
- expect(res.body.recipient).to.equal("sendMessageSigninWithCustomTokenModified");
1309
+ expect(res.body.recipient).to.equal(request_id);
1299
1310
  expect(res.body.text).to.equal("text");
1300
1311
  expect(res.body.id_project).to.equal(savedProject._id.toString());
1301
1312
  expect(res.body.createdBy).to.equal(externalUserId);
1302
1313
  expect(res.body.status).to.equal(0);
1303
- expect(res.body.request.request_id).to.equal("sendMessageSigninWithCustomTokenModified");
1314
+ expect(res.body.request.request_id).to.equal(request_id);
1304
1315
  expect(res.body.request.first_text).to.equal("text");
1305
1316
  expect(res.body.request.id_project).to.equal(savedProject._id.toString());
1306
1317
  expect(res.body.request.createdBy).to.equal(externalUserId);
@@ -1313,7 +1324,7 @@ describe('MessageRoute', () => {
1313
1324
  expect(res.body.request.lead.email).to.equal("email2@email.com");
1314
1325
 
1315
1326
  chai.request(server)
1316
- .get('/' + savedProject._id + '/requests/sendMessageSigninWithCustomTokenModified')
1327
+ .get('/' + savedProject._id + '/requests/' + request_id)
1317
1328
  .auth(email, pwd)
1318
1329
  .set('content-type', 'application/json')
1319
1330
  .end(function (err, res) {
@@ -1345,8 +1356,10 @@ describe('MessageRoute', () => {
1345
1356
  expect(res.body.user.email).to.equal("email33@email.com");
1346
1357
  expect(res.body.user.firstname).to.equal("andrea");
1347
1358
 
1359
+ let request2_id = "req_customtokenmodified2-" + Date.now();
1360
+
1348
1361
  chai.request(server)
1349
- .post('/' + savedProject._id + '/requests/sendMessageSigninWithCustomTokenModified33/messages')
1362
+ .post('/' + savedProject._id + '/requests/' + request2_id + '/messages')
1350
1363
  .set('Authorization', 'JWT ' + jwtToken)
1351
1364
  .set('content-type', 'application/json')
1352
1365
  .send({ "text": "text" })
@@ -119,6 +119,30 @@ describe('messageService', function () {
119
119
  });
120
120
  });
121
121
 
122
+ it('createMessageAndFillTextWithTranslation', function (done) {
123
+ // this.timeout(10000);
124
+
125
+ projectService.create("test1", userid).then(function (savedProject) {
126
+ // create(sender, senderFullname, recipient, text, id_project, createdBy, status, attributes, type, metadata, language) {
127
+
128
+ let quoteManager = new QuoteManager({ project: savedProject, tdCache: tdCache })
129
+ quoteManager.start();
130
+
131
+ messageService.create(userid, "test sender", "testrecipient-createMessage", "",
132
+ savedProject._id, userid, undefined, { a1: "a1" }, "file", { name: "filename", type: "audio/mpeg", src: "filenameurl.com"}, "it").then(function (savedMessage) {
133
+ winston.debug("resolve savedMessage", savedMessage.toObject());
134
+
135
+ expect(savedMessage.text).to.equal("This is a mock trancripted audio");
136
+ done();
137
+
138
+ }).catch(function (err) {
139
+ assert.isNotOk(err, 'Promise error');
140
+ done();
141
+ });
142
+
143
+ });
144
+ });
145
+
122
146
 
123
147
 
124
148