@tiledesk/tiledesk-server 2.9.4 → 2.9.6

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,12 @@
5
5
  🚀 IN PRODUCTION 🚀
6
6
  (https://www.npmjs.com/package/@tiledesk/tiledesk-server/v/2.3.77)
7
7
 
8
+ # 2.9.6
9
+ - Fix bug: wrong timzone in startTime and andTime in operating hours service
10
+
11
+ # 2.9.5
12
+ - Added raw option in /users/availables
13
+
8
14
  # 2.9.4
9
15
  - Update tybot-connector to 0.2.86
10
16
  - Added time-slots management
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.4",
4
+ "version": "2.9.6",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
package/routes/project.js CHANGED
@@ -886,52 +886,81 @@ router.get('/:projectid/isopen', function (req, res) {
886
886
  router.get('/:projectid/users/availables', function (req, res) {
887
887
  //winston.debug("PROJECT ROUTES FINDS AVAILABLES project_users: projectid", req.params.projectid);
888
888
 
889
- operatingHoursService.projectIsOpenNow(req.params.projectid, function (isOpen, err) {
890
- //winston.debug('P ---> [ OHS ] -> [ PROJECT ROUTES ] -> IS OPEN THE PROJECT: ', isOpen);
891
-
892
- if (err) {
893
- winston.debug('P ---> [ OHS ] -> [ PROJECT ROUTES ] -> IS OPEN THE PROJECT - EROR: ', err)
894
- // sendError(err, res);
895
- return res.status(500).send({ success: false, msg: err });
896
- } else if (isOpen) {
897
-
898
- Project_user.find({ id_project: req.params.projectid, user_available: true, role: { $in : [RoleConstants.OWNER, RoleConstants.ADMIN, RoleConstants.SUPERVISOR, RoleConstants.AGENT]}}).
899
- populate('id_user').
900
- exec(function (err, project_users) {
901
- if (err) {
902
- winston.debug('PROJECT ROUTES - FINDS AVAILABLES project_users - ERROR: ', err);
903
- return res.status(500).send({ success: false, msg: 'Error getting object.' });
904
- }
905
- if (project_users) {
906
-
907
- user_available_array = [];
908
- project_users.forEach(project_user => {
909
- if (project_user.id_user) {
910
- // winston.debug('PROJECT ROUTES - AVAILABLES PROJECT-USER: ', project_user)
911
- user_available_array.push({ "id": project_user.id_user._id, "firstname": project_user.id_user.firstname });
912
- } else {
913
- // winston.debug('PROJECT ROUTES - AVAILABLES PROJECT-USER (else): ', project_user)
914
- }
915
- });
916
-
917
- //winston.debug('ARRAY OF THE AVAILABLE USER ', user_available_array);
918
-
919
- res.json(user_available_array);
920
- }
921
- });
922
-
889
+ if (req.query.raw && (req.query.raw === true || req.query.raw === 'true')) {
890
+ Project_user.find({ id_project: req.params.projectid, user_available: true, role: { $in : [RoleConstants.OWNER, RoleConstants.ADMIN, RoleConstants.SUPERVISOR, RoleConstants.AGENT]}}).
891
+ populate('id_user').
892
+ exec(function (err, project_users) {
893
+ if (err) {
894
+ winston.debug('PROJECT ROUTES - FINDS AVAILABLES project_users - ERROR: ', err);
895
+ return res.status(500).send({ success: false, msg: 'Error getting object.' });
896
+ }
897
+ if (project_users) {
898
+
899
+ user_available_array = [];
900
+ project_users.forEach(project_user => {
901
+ if (project_user.id_user) {
902
+ // winston.debug('PROJECT ROUTES - AVAILABLES PROJECT-USER: ', project_user)
903
+ user_available_array.push({ "id": project_user.id_user._id, "firstname": project_user.id_user.firstname });
904
+ } else {
905
+ // winston.debug('PROJECT ROUTES - AVAILABLES PROJECT-USER (else): ', project_user)
906
+ }
907
+ });
908
+
909
+ //winston.debug('ARRAY OF THE AVAILABLE USER ', user_available_array);
910
+ res.json(user_available_array);
911
+ }
912
+ });
913
+ } else {
914
+ operatingHoursService.projectIsOpenNow(req.params.projectid, function (isOpen, err) {
915
+ //winston.debug('P ---> [ OHS ] -> [ PROJECT ROUTES ] -> IS OPEN THE PROJECT: ', isOpen);
916
+
917
+ if (err) {
918
+ winston.debug('P ---> [ OHS ] -> [ PROJECT ROUTES ] -> IS OPEN THE PROJECT - EROR: ', err)
919
+ // sendError(err, res);
920
+ return res.status(500).send({ success: false, msg: err });
921
+ } else if (isOpen) {
922
+
923
+ Project_user.find({ id_project: req.params.projectid, user_available: true, role: { $in : [RoleConstants.OWNER, RoleConstants.ADMIN, RoleConstants.SUPERVISOR, RoleConstants.AGENT]}}).
924
+ populate('id_user').
925
+ exec(function (err, project_users) {
926
+ if (err) {
927
+ winston.debug('PROJECT ROUTES - FINDS AVAILABLES project_users - ERROR: ', err);
928
+ return res.status(500).send({ success: false, msg: 'Error getting object.' });
929
+ }
930
+ if (project_users) {
931
+
932
+ user_available_array = [];
933
+ project_users.forEach(project_user => {
934
+ if (project_user.id_user) {
935
+ // winston.debug('PROJECT ROUTES - AVAILABLES PROJECT-USER: ', project_user)
936
+ user_available_array.push({ "id": project_user.id_user._id, "firstname": project_user.id_user.firstname });
937
+ } else {
938
+ // winston.debug('PROJECT ROUTES - AVAILABLES PROJECT-USER (else): ', project_user)
939
+ }
940
+ });
941
+
942
+ //winston.debug('ARRAY OF THE AVAILABLE USER ', user_available_array);
943
+
944
+ res.json(user_available_array);
945
+ }
946
+ });
947
+
948
+
949
+ } else {
950
+ // winston.debug('P ---> [ OHS ] -> [ PROJECT ROUTES ] -> IS OPEN THE PRJCT: ', isOpen, ' -> AVAILABLE EMPTY');
951
+ // closed
952
+ user_available_array = [];
953
+ res.json(user_available_array);
954
+ }
955
+ });
956
+ }
923
957
 
924
- } else {
925
- // winston.debug('P ---> [ OHS ] -> [ PROJECT ROUTES ] -> IS OPEN THE PRJCT: ', isOpen, ' -> AVAILABLE EMPTY');
926
- // closed
927
- user_available_array = [];
928
- res.json(user_available_array);
929
- }
930
- });
958
+
931
959
 
932
960
  });
933
961
 
934
962
 
935
963
 
936
964
 
965
+
937
966
  module.exports = router;
@@ -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)