@tiledesk/tiledesk-server 2.9.5 → 2.9.7

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,13 @@
5
5
  🚀 IN PRODUCTION 🚀
6
6
  (https://www.npmjs.com/package/@tiledesk/tiledesk-server/v/2.3.77)
7
7
 
8
+ # 2.9.7
9
+ - Fix bug: draft conversation was shown in monitor
10
+ - Update tybot-connector to 0.2.92
11
+
12
+ # 2.9.6
13
+ - Fix bug: wrong timzone in startTime and andTime in operating hours service
14
+
8
15
  # 2.9.5
9
16
  - Added raw option in /users/availables
10
17
 
package/models/request.js CHANGED
@@ -300,6 +300,11 @@ var RequestSchema = new Schema({
300
300
  type: String,
301
301
  required: true
302
302
  },
303
+ draft: {
304
+ type: Boolean,
305
+ required: false,
306
+ index: true
307
+ }
303
308
 
304
309
  }, {
305
310
  timestamps: true,
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.9.5",
4
+ "version": "2.9.7",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
@@ -48,7 +48,7 @@
48
48
  "@tiledesk/tiledesk-rasa-connector": "^1.0.10",
49
49
  "@tiledesk/tiledesk-telegram-connector": "^0.1.14",
50
50
  "@tiledesk/tiledesk-train-jobworker": "^0.0.11",
51
- "@tiledesk/tiledesk-tybot-connector": "^0.2.86",
51
+ "@tiledesk/tiledesk-tybot-connector": "^0.2.92",
52
52
  "@tiledesk/tiledesk-whatsapp-connector": "^0.1.72",
53
53
  "@tiledesk/tiledesk-whatsapp-jobworker": "^0.0.8",
54
54
  "@tiledesk/tiledesk-sms-connector": "^0.1.7",
package/routes/request.js CHANGED
@@ -902,7 +902,7 @@ router.get('/', function (req, res, next) {
902
902
  winston.debug('REQUEST ROUTE - SKIP PAGE ', skip);
903
903
 
904
904
 
905
- var query = { "id_project": req.projectid, "status": { $lt: 1000 }, preflight: false };
905
+ var query = { "id_project": req.projectid, "status": { $lt: 1000 }, preflight: false, "draft": { $in: [false, null]} };
906
906
 
907
907
  var projectuser = req.projectuser;
908
908
 
@@ -209,7 +209,6 @@ class OperatingHoursService {
209
209
  }
210
210
 
211
211
  let timeSlot = project.timeSlots[slot_id];
212
- console.log("timeSlot: ", timeSlot);
213
212
 
214
213
  if (!timeSlot) {
215
214
  callback(null, { errorCode: 1030, msg: 'Slot not found with id ' + slot_id })
@@ -233,17 +232,18 @@ class OperatingHoursService {
233
232
 
234
233
  // Get the current time in the specified timezone
235
234
  const currentTime = moment_tz.tz(tzname);
236
- const currentWeekday = currentTime.isoWeekday();
237
235
 
236
+ const currentWeekday = currentTime.isoWeekday();
238
237
  const daySlots = hours[currentWeekday];
239
238
  if (!daySlots) {
240
239
  callback(false, null)
240
+ return;
241
241
  }
242
242
 
243
243
  let promises = [];
244
244
 
245
245
  daySlots.forEach((slot) => {
246
- promises.push(slotCheck(currentTime, slot))
246
+ promises.push(slotCheck(currentTime, tzname, slot))
247
247
  })
248
248
 
249
249
  await Promise.all(promises).then((resp) => {
@@ -258,11 +258,11 @@ class OperatingHoursService {
258
258
  }
259
259
  }
260
260
 
261
- function slotCheck(currentTime, slot) {
261
+ function slotCheck(currentTime, tzname, slot) {
262
262
  return new Promise((resolve) => {
263
263
 
264
- const startTime = moment_tz(slot.start, 'HH:mm');
265
- const endTime = moment_tz(slot.end, 'HH:mm');
264
+ const startTime = moment_tz.tz(slot.start, 'HH:mm', tzname);
265
+ const endTime = moment_tz.tz(slot.end, 'HH:mm', tzname);
266
266
 
267
267
  if (currentTime.isBetween(startTime, endTime, null, '[)')) {
268
268
  resolve(true)
@@ -707,6 +707,10 @@ class RequestService {
707
707
  createdAt: createdAt
708
708
  });
709
709
 
710
+ if (isTestConversation) {
711
+ newRequest.draft = true;
712
+ }
713
+
710
714
  winston.debug('newRequest.', newRequest);
711
715
 
712
716
 
@@ -22,6 +22,8 @@ var faqService = require('../services/faqService');
22
22
 
23
23
  // chai.config.includeStack = true;
24
24
 
25
+ let log = false;
26
+
25
27
  var expect = chai.expect;
26
28
  var assert = chai.assert;
27
29
 
@@ -1160,6 +1162,70 @@ describe('RequestRoute', () => {
1160
1162
  });
1161
1163
  });
1162
1164
 
1165
+ it('exludeDraftConversations', (done) => {
1166
+
1167
+ var email = "test-signup-" + Date.now() + "@email.com";
1168
+ var pwd = "pwd";
1169
+
1170
+ userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
1171
+ projectService.createAndReturnProjectAndProjectUser("test-draft-conversation", savedUser._id).then((savedProjectAndPU) => {
1172
+ let savedProject = savedProjectAndPU.project;
1173
+ let savedPU = savedProjectAndPU.project_user;
1174
+ leadService.createIfNotExists("Lead Fullname", "email@test.com", savedProject._id).then((createdLead) => {
1175
+ let now = Date.now();
1176
+ let request = {
1177
+ request_id: "request_id-exludeDraftConversations-" + now,
1178
+ project_user_id: savedPU._id,
1179
+ lead_id: createdLead._id,
1180
+ id_project: savedProject._id,
1181
+ first_text: "first_text",
1182
+ lead: createdLead,
1183
+ requester: savedPU,
1184
+ attributes: { sourcePage: "https://widget-pre.tiledesk.com/v2/index.html?tiledesk_projectid=5ce3d1ceb25ad30017279999&td_draft=true" }
1185
+ }
1186
+
1187
+ requestService.create(request).then(async (savedRequest) => {
1188
+
1189
+ // Case 1 - request with source page that contains td_draft
1190
+ expect(savedRequest.draft).to.equal(true);
1191
+
1192
+ // Case 2 - request without source page that contains td_draft
1193
+ //expect(savedRequest.draft).to.be.undefined;
1194
+
1195
+ // get all requests -> should be 0
1196
+
1197
+ chai.request(server)
1198
+ .get('/' + savedProject._id + '/requests')
1199
+ .auth(email, pwd)
1200
+ .end((err, res) => {
1201
+
1202
+ if (err) { console.error("err: ", err ) };
1203
+ if (log) { console.log("res.body: ", res.body) }
1204
+
1205
+ res.should.have.status(200);
1206
+ res.body.should.be.a('object');
1207
+ res.body.requests.should.be.a('array');
1208
+
1209
+ // Case 1 - request with source page that contains td_draft
1210
+ expect(res.body.requests.length).to.equal(0);
1211
+
1212
+ // Case 2 - request without source page that contains td_draft
1213
+ //expect(res.body.requests.length).to.equal(1);
1214
+
1215
+ done();
1216
+ })
1217
+
1218
+
1219
+ }).catch((err) => {
1220
+ console.error("error creating request: ", err)
1221
+ })
1222
+ })
1223
+
1224
+ })
1225
+ })
1226
+
1227
+ })
1228
+
1163
1229
  // it('assign', (done) => {
1164
1230
 
1165
1231