@resolveio/server-lib 20.12.67 → 20.12.69

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.
@@ -276,7 +276,7 @@ function loadReportBuilderMethods(methodManager) {
276
276
  }),
277
277
  function: function (reportType_1, rootCollectionName_1, rootOptions_1) {
278
278
  return __awaiter(this, arguments, void 0, function (reportType, rootCollectionName, rootOptions, filters, filterArrays, filterArrayFields, selectedFields, customFields, groupsRow, fieldsTotal, fieldsLink, date_field, date_interval, displayType) {
279
- var modelCollection, datePaths, reportBuilderTimezone, lookupAliases, _a, rootFilters_1, lookupFilters_1, additionalCollectionsMap_1, additionalCollections, unionQuery_1, _b, sortToUse, layoutSortAdd, remappedFilters, remappedArrayFilters, postMatchAnd, res_1, err_1, tmpTotals_1, resultsOut, tmpRes_1, query_1, initialQueryMatchCondition_1, sizes_1, divFields_1, queryMatchConditionLookup_1, queryGroup_1, groupedSorts_1, dateFieldPath, queryProjection_1, _loop_1, i, res_2, err_2, tmpTotals_2, tmpRes;
279
+ var modelCollection, datePaths, reportBuilderTimezone, lookupAliases, _a, rootFilters_1, lookupFilters_1, additionalCollectionsMap_1, additionalCollections, unionQuery_1, _b, sortToUse, layoutSortAdd, remappedFilters, remappedArrayFilters, postMatchAnd, res_1, err_1, tmpTotals_1, resultsOut, tmpRes_1, query_1, initialQueryMatchCondition_1, sizes_1, divFields_1, queryMatchConditionLookup_1, queryGroup_1, groupedSorts_1, dateFieldPath, dateFieldExpr, utcHourExpr, utcMinuteExpr, utcSecondExpr, utcDayExpr, tzDayExpr, useUtcForDateOnlyExpr, groupingTimezoneExpr, queryProjection_1, _loop_1, i, res_2, err_2, tmpTotals_2, tmpRes;
280
280
  if (filters === void 0) { filters = []; }
281
281
  if (filterArrays === void 0) { filterArrays = []; }
282
282
  if (filterArrayFields === void 0) { filterArrayFields = []; }
@@ -728,46 +728,61 @@ function loadReportBuilderMethods(methodManager) {
728
728
  if (groupsRow.length && date_field && date_interval) {
729
729
  dateFieldPath = (typeof date_field === 'string') ? date_field.replace(/\.\$/g, '') : '';
730
730
  if (dateFieldPath) {
731
+ dateFieldExpr = '$' + dateFieldPath;
732
+ utcHourExpr = { '$hour': { date: dateFieldExpr, timezone: 'UTC' } };
733
+ utcMinuteExpr = { '$minute': { date: dateFieldExpr, timezone: 'UTC' } };
734
+ utcSecondExpr = { '$second': { date: dateFieldExpr, timezone: 'UTC' } };
735
+ utcDayExpr = { '$dayOfMonth': { date: dateFieldExpr, timezone: 'UTC' } };
736
+ tzDayExpr = { '$dayOfMonth': { date: dateFieldExpr, timezone: reportBuilderTimezone } };
737
+ useUtcForDateOnlyExpr = {
738
+ $and: [
739
+ { $eq: [utcHourExpr, 0] },
740
+ { $eq: [utcMinuteExpr, 0] },
741
+ { $eq: [utcSecondExpr, 0] },
742
+ { $ne: [utcDayExpr, tzDayExpr] }
743
+ ]
744
+ };
745
+ groupingTimezoneExpr = { $cond: [useUtcForDateOnlyExpr, 'UTC', reportBuilderTimezone] };
731
746
  if (date_interval === 'Seconds') {
732
- queryGroup_1._id['second'] = { '$second': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
733
- queryGroup_1._id['minute'] = { '$minute': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
734
- queryGroup_1._id['hour'] = { '$hour': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
735
- queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
736
- queryGroup_1._id['month'] = { '$month': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
737
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
747
+ queryGroup_1._id['second'] = { '$second': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
748
+ queryGroup_1._id['minute'] = { '$minute': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
749
+ queryGroup_1._id['hour'] = { '$hour': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
750
+ queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
751
+ queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
752
+ queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
738
753
  }
739
754
  else if (date_interval === 'Minutes') {
740
- queryGroup_1._id['minute'] = { '$minute': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
741
- queryGroup_1._id['hour'] = { '$hour': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
742
- queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
743
- queryGroup_1._id['month'] = { '$month': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
744
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
755
+ queryGroup_1._id['minute'] = { '$minute': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
756
+ queryGroup_1._id['hour'] = { '$hour': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
757
+ queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
758
+ queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
759
+ queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
745
760
  }
746
761
  else if (date_interval === 'Hours') {
747
- queryGroup_1._id['hour'] = { '$hour': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
748
- queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
749
- queryGroup_1._id['month'] = { '$month': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
750
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
762
+ queryGroup_1._id['hour'] = { '$hour': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
763
+ queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
764
+ queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
765
+ queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
751
766
  }
752
767
  else if (date_interval === 'Daily') {
753
- queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
754
- queryGroup_1._id['month'] = { '$month': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
755
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
768
+ queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
769
+ queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
770
+ queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
756
771
  }
757
772
  else if (date_interval === 'Weekly') {
758
- queryGroup_1._id['week'] = { '$isoWeek': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
759
- queryGroup_1._id['year'] = { '$isoWeekYear': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
773
+ queryGroup_1._id['week'] = { '$isoWeek': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
774
+ queryGroup_1._id['year'] = { '$isoWeekYear': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
760
775
  }
761
776
  else if (date_interval === 'Monthly') {
762
- queryGroup_1._id['month'] = { '$month': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
763
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
777
+ queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
778
+ queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
764
779
  }
765
780
  else if (date_interval === 'Quarterly') {
766
- queryGroup_1._id['month'] = { '$month': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
767
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
781
+ queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
782
+ queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
768
783
  }
769
784
  else if (date_interval === 'Yearly') {
770
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + dateFieldPath, 'timezone': reportBuilderTimezone } };
785
+ queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
771
786
  }
772
787
  }
773
788
  }