@admin-layout/timetracker-module-server 1.0.3-alpha.7 → 1.0.3-alpha.72

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/lib/index.js CHANGED
@@ -126,7 +126,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
126
126
  o[k2] = m[k];
127
127
  }));
128
128
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
129
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
129
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
130
130
  };
131
131
  Object.defineProperty(exports, "__esModule", { value: true });
132
132
  __exportStar(__webpack_require__(/*! ./config */ "./src/config/config.ts"), exports);
@@ -199,7 +199,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
199
199
  o[k2] = m[k];
200
200
  }));
201
201
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
202
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
202
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
203
203
  };
204
204
  Object.defineProperty(exports, "__esModule", { value: true });
205
205
  __exportStar(__webpack_require__(/*! ./constants */ "./src/constants/constants.ts"), exports);
@@ -217,20 +217,32 @@ __exportStar(__webpack_require__(/*! ./constants */ "./src/constants/constants.t
217
217
  "use strict";
218
218
 
219
219
  Object.defineProperty(exports, "__esModule", { value: true });
220
- exports.timeTrackerModule = void 0;
220
+ exports.timeTrackerProxyModule = exports.timeTrackerModule = exports.timeTrackerMailModule = exports.timeTrackerStoreModule = void 0;
221
221
  const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
222
222
  const constants_1 = __webpack_require__(/*! ../constants */ "./src/constants/index.ts");
223
223
  const services_1 = __webpack_require__(/*! ../services */ "./src/services/index.ts");
224
224
  const repository_1 = __webpack_require__(/*! ../store/repository */ "./src/store/repository/index.ts");
225
225
  const migration_1 = __webpack_require__(/*! ../migration */ "./src/migration/index.ts");
226
- exports.timeTrackerModule = (setting) => new inversify_1.ContainerModule((bind) => {
227
- bind(constants_1.TYPES.ITimeRecordRepository).to(repository_1.TimeRecordRepository).inSingletonScope().whenTargetIsDefault();
228
- bind(constants_1.TYPES.ITimesheetRepository).to(repository_1.TimesheetRepository).inSingletonScope().whenTargetIsDefault();
229
- bind(constants_1.TYPES.ITimeRecordService).to(services_1.TimeRecordService).inSingletonScope().whenTargetIsDefault();
230
- bind(constants_1.TYPES.ITimesheetService).to(services_1.TimesheetService).inSingletonScope().whenTargetIsDefault();
226
+ const timeTrackerStoreModule = (setting) => new inversify_1.ContainerModule((bind) => {
227
+ bind(constants_1.TYPES.ITimeRecordRepository).to(repository_1.TimeRecordRepository).inSingletonScope();
228
+ bind(constants_1.TYPES.ITimesheetRepository).to(repository_1.TimesheetRepository).inSingletonScope();
229
+ });
230
+ exports.timeTrackerStoreModule = timeTrackerStoreModule;
231
+ const timeTrackerMailModule = (setting) => new inversify_1.ContainerModule((bind) => {
231
232
  bind('MongodbMigration').to(migration_1.TimesheetApprovalMailTemplate).whenTargetNamed(migration_1.TimesheetApprovalMailTemplate.name);
232
233
  bind('MongodbMigration').to(migration_1.TimesheetSubmitMailTemplate).whenTargetNamed(migration_1.TimesheetSubmitMailTemplate.name);
233
234
  });
235
+ exports.timeTrackerMailModule = timeTrackerMailModule;
236
+ const timeTrackerModule = (setting) => new inversify_1.ContainerModule((bind) => {
237
+ bind(constants_1.TYPES.ITimeRecordService).to(services_1.TimeRecordService).inSingletonScope();
238
+ bind(constants_1.TYPES.ITimesheetService).to(services_1.TimesheetService).inSingletonScope();
239
+ });
240
+ exports.timeTrackerModule = timeTrackerModule;
241
+ const timeTrackerProxyModule = (setting) => new inversify_1.ContainerModule((bind) => {
242
+ bind(constants_1.TYPES.ITimeRecordService).to(services_1.TimeRecordProxyService).inSingletonScope();
243
+ bind(constants_1.TYPES.ITimesheetService).to(services_1.TimesheetProxyService).inSingletonScope();
244
+ });
245
+ exports.timeTrackerProxyModule = timeTrackerProxyModule;
234
246
 
235
247
 
236
248
  /***/ }),
@@ -252,7 +264,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
252
264
  o[k2] = m[k];
253
265
  }));
254
266
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
255
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
267
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
256
268
  };
257
269
  Object.defineProperty(exports, "__esModule", { value: true });
258
270
  __exportStar(__webpack_require__(/*! ./containers */ "./src/containers/containers.ts"), exports);
@@ -277,7 +289,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
277
289
  o[k2] = m[k];
278
290
  }));
279
291
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
280
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
292
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
281
293
  };
282
294
  Object.defineProperty(exports, "__esModule", { value: true });
283
295
  const server_core_1 = __webpack_require__(/*! @common-stack/server-core */ "@common-stack/server-core");
@@ -285,6 +297,7 @@ const module_1 = __webpack_require__(/*! ./module */ "./src/module.ts");
285
297
  __exportStar(__webpack_require__(/*! ./constants */ "./src/constants/index.ts"), exports);
286
298
  __exportStar(__webpack_require__(/*! ./store/repository */ "./src/store/repository/index.ts"), exports);
287
299
  __exportStar(__webpack_require__(/*! ./store/models/timetracker-model */ "./src/store/models/timetracker-model.ts"), exports);
300
+ __exportStar(__webpack_require__(/*! ./containers */ "./src/containers/index.ts"), exports);
288
301
  exports.default = new server_core_1.Feature(module_1.default);
289
302
 
290
303
 
@@ -307,7 +320,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
307
320
  o[k2] = m[k];
308
321
  }));
309
322
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
310
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
323
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
311
324
  };
312
325
  Object.defineProperty(exports, "__esModule", { value: true });
313
326
  __exportStar(__webpack_require__(/*! ./service-initialization */ "./src/initialization/service-initialization.ts"), exports);
@@ -329,7 +342,7 @@ exports.mainLoadConfigurationPre = void 0;
329
342
  const core_1 = __webpack_require__(/*! @workbench-stack/core */ "@workbench-stack/core");
330
343
  const core_2 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
331
344
  const preferences_1 = __webpack_require__(/*! ../preferences */ "./src/preferences/index.ts");
332
- exports.mainLoadConfigurationPre = async (_, container) => {
345
+ const mainLoadConfigurationPre = async (_, container) => {
333
346
  const logger = container.get(core_2.CommonType.LOGGER);
334
347
  logger.info('PRESTART START: -- load TimeTrackerContribution to registry');
335
348
  const registry = container.get(core_1.TYPES.IRegistry);
@@ -337,6 +350,7 @@ exports.mainLoadConfigurationPre = async (_, container) => {
337
350
  configurationRegistry.registerConfiguration(preferences_1.TimeTrackerContribution);
338
351
  logger.info('PRESTART ENDS: -- load TimeTrackerContribution to registry');
339
352
  };
353
+ exports.mainLoadConfigurationPre = mainLoadConfigurationPre;
340
354
 
341
355
 
342
356
  /***/ }),
@@ -371,7 +385,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
371
385
  o[k2] = m[k];
372
386
  }));
373
387
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
374
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
388
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
375
389
  };
376
390
  Object.defineProperty(exports, "__esModule", { value: true });
377
391
  __exportStar(__webpack_require__(/*! ./mail-template */ "./src/migration/mail-template.ts"), exports);
@@ -507,6 +521,7 @@ const resolvers_1 = __webpack_require__(/*! ./resolvers */ "./src/resolvers/inde
507
521
  const constants_1 = __webpack_require__(/*! ./constants */ "./src/constants/index.ts");
508
522
  const initialization_1 = __webpack_require__(/*! ./initialization */ "./src/initialization/index.ts");
509
523
  const preferences_1 = __webpack_require__(/*! ./preferences */ "./src/preferences/index.ts");
524
+ const plugins_1 = __webpack_require__(/*! ./plugins */ "./src/plugins/index.ts");
510
525
  const createServiceFunc = (container) => ({
511
526
  timeRecordService: container.get(constants_1.TYPES.ITimeRecordService),
512
527
  timesheetService: container.get(constants_1.TYPES.ITimesheetService),
@@ -514,8 +529,10 @@ const createServiceFunc = (container) => ({
514
529
  exports.default = new server_core_1.Feature({
515
530
  schema: schema_1.schema,
516
531
  createResolversFunc: resolvers_1.resolvers,
517
- createContainerFunc: [containers_1.timeTrackerModule],
532
+ createContainerFunc: [containers_1.timeTrackerProxyModule, containers_1.timeTrackerMailModule],
533
+ createHemeraContainerFunc: [containers_1.timeTrackerModule, containers_1.timeTrackerStoreModule],
518
534
  createServiceFunc,
535
+ addBrokerClientServiceClass: [plugins_1.TimeRecordMoleculerService, plugins_1.TimesheetMoleculerService],
519
536
  preStartFunc: [initialization_1.mainLoadConfigurationPre],
520
537
  addPermissions: {
521
538
  createPermissions: [preferences_1.TimeTrackerRolesContribution],
@@ -526,6 +543,206 @@ exports.default = new server_core_1.Feature({
526
543
  });
527
544
 
528
545
 
546
+ /***/ }),
547
+
548
+ /***/ "./src/plugins/index.ts":
549
+ /*!******************************!*\
550
+ !*** ./src/plugins/index.ts ***!
551
+ \******************************/
552
+ /*! no static exports found */
553
+ /***/ (function(module, exports, __webpack_require__) {
554
+
555
+ "use strict";
556
+
557
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
558
+ if (k2 === undefined) k2 = k;
559
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
560
+ }) : (function(o, m, k, k2) {
561
+ if (k2 === undefined) k2 = k;
562
+ o[k2] = m[k];
563
+ }));
564
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
565
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
566
+ };
567
+ Object.defineProperty(exports, "__esModule", { value: true });
568
+ __exportStar(__webpack_require__(/*! ./timesheet-moleculer-service */ "./src/plugins/timesheet-moleculer-service.ts"), exports);
569
+ __exportStar(__webpack_require__(/*! ./timerecord-moleculer-service */ "./src/plugins/timerecord-moleculer-service.ts"), exports);
570
+
571
+
572
+ /***/ }),
573
+
574
+ /***/ "./src/plugins/timerecord-moleculer-service.ts":
575
+ /*!*****************************************************!*\
576
+ !*** ./src/plugins/timerecord-moleculer-service.ts ***!
577
+ \*****************************************************/
578
+ /*! no static exports found */
579
+ /***/ (function(module, exports, __webpack_require__) {
580
+
581
+ "use strict";
582
+
583
+ var __rest = (this && this.__rest) || function (s, e) {
584
+ var t = {};
585
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
586
+ t[p] = s[p];
587
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
588
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
589
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
590
+ t[p[i]] = s[p[i]];
591
+ }
592
+ return t;
593
+ };
594
+ Object.defineProperty(exports, "__esModule", { value: true });
595
+ exports.TimeRecordMoleculerService = void 0;
596
+ const moleculer_1 = __webpack_require__(/*! moleculer */ "moleculer");
597
+ const constants_1 = __webpack_require__(/*! ../constants */ "./src/constants/index.ts");
598
+ class TimeRecordMoleculerService extends moleculer_1.Service {
599
+ constructor(broker, _a) {
600
+ var { container } = _a, settings = __rest(_a, ["container"]);
601
+ super(broker);
602
+ const topic = "TimeRecord" /* TimeRecord */;
603
+ this.timerecordService = container.get(constants_1.TYPES.ITimeRecordService);
604
+ this.parseServiceSchema({
605
+ name: topic,
606
+ actions: {
607
+ ["getTimeRecords" /* getTimeRecords */]: {
608
+ handler: async (ctx) => {
609
+ return await this.timerecordService.getTimeRecords(ctx.params.orgId, ctx.params.userId);
610
+ }
611
+ },
612
+ ["getDurationTimeRecords" /* getDurationTimeRecords */]: {
613
+ handler: async (ctx) => {
614
+ return await this.timerecordService.getDurationTimeRecords(ctx.params.orgId, ctx.params.startTime, ctx.params.endTime, ctx.params.userId);
615
+ }
616
+ },
617
+ ["getPlayingTimeRecord" /* getPlayingTimeRecord */]: {
618
+ handler: async (ctx) => {
619
+ return await this.timerecordService.getPlayingTimeRecord(ctx.params.userId, ctx.params.orgId);
620
+ }
621
+ },
622
+ ["createTimeRecord" /* createTimeRecord */]: {
623
+ handler: async (ctx) => {
624
+ return await this.timerecordService.createTimeRecord(ctx.params.userId, ctx.params.orgId, ctx.params.request);
625
+ }
626
+ },
627
+ ["updateTimeRecord" /* updateTimeRecord */]: {
628
+ handler: async (ctx) => {
629
+ return await this.timerecordService.updateTimeRecord(ctx.params.userId, ctx.params.orgId, ctx.params.recordId, ctx.params.request);
630
+ }
631
+ },
632
+ ["removeTimeRecord" /* removeTimeRecord */]: {
633
+ handler: async (ctx) => {
634
+ return await this.timerecordService.removeTimeRecord(ctx.params.userId, ctx.params.orgId, ctx.params.recordId);
635
+ }
636
+ },
637
+ ["removeDurationTimeRecords" /* removeDurationTimeRecords */]: {
638
+ handler: async (ctx) => {
639
+ return await this.timerecordService.removeDurationTimeRecords(ctx.params.userId, ctx.params.orgId, ctx.params.startTime, ctx.params.endTime, ctx.params.projectId);
640
+ }
641
+ },
642
+ ["approveTimeRecords" /* approveTimeRecords */]: {
643
+ handler: async (ctx) => {
644
+ return await this.timerecordService.approveTimeRecords(ctx.params.orgId, ctx.params.sheetId, ctx.params.timeRecordsId);
645
+ }
646
+ },
647
+ ["disapproveTimeRecords" /* disapproveTimeRecords */]: {
648
+ handler: async (ctx) => {
649
+ return await this.timerecordService.disapproveTimeRecords(ctx.params.orgId, ctx.params.sheetId);
650
+ }
651
+ },
652
+ },
653
+ });
654
+ }
655
+ }
656
+ exports.TimeRecordMoleculerService = TimeRecordMoleculerService;
657
+
658
+
659
+ /***/ }),
660
+
661
+ /***/ "./src/plugins/timesheet-moleculer-service.ts":
662
+ /*!****************************************************!*\
663
+ !*** ./src/plugins/timesheet-moleculer-service.ts ***!
664
+ \****************************************************/
665
+ /*! no static exports found */
666
+ /***/ (function(module, exports, __webpack_require__) {
667
+
668
+ "use strict";
669
+
670
+ var __rest = (this && this.__rest) || function (s, e) {
671
+ var t = {};
672
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
673
+ t[p] = s[p];
674
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
675
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
676
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
677
+ t[p[i]] = s[p[i]];
678
+ }
679
+ return t;
680
+ };
681
+ Object.defineProperty(exports, "__esModule", { value: true });
682
+ exports.TimesheetMoleculerService = void 0;
683
+ const moleculer_1 = __webpack_require__(/*! moleculer */ "moleculer");
684
+ const core_1 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
685
+ const constants_1 = __webpack_require__(/*! ../constants */ "./src/constants/index.ts");
686
+ class TimesheetMoleculerService extends moleculer_1.Service {
687
+ constructor(broker, _a) {
688
+ var { container } = _a, settings = __rest(_a, ["container"]);
689
+ super(broker);
690
+ this.container = container;
691
+ const topic = "Timesheet" /* Timesheet */;
692
+ this.container.bind(core_1.ClientTypes.ApolloClient).toConstantValue(this.apolloClient);
693
+ this.timesheetService = this.container.get(constants_1.TYPES.ITimesheetService);
694
+ this.parseServiceSchema({
695
+ name: topic,
696
+ events: {
697
+ ["onRemoveTimeRecordIdFromTimesheet" /* onRemoveTimeRecordIdFromTimesheet */]: {
698
+ handler: async (ctx) => {
699
+ return await this.timesheetService.removeTimeRecordIdFromTimesheet(ctx.params.recordId, ctx.params.orgId);
700
+ }
701
+ }
702
+ },
703
+ actions: {
704
+ ["getTimesheets" /* getTimesheets */]: {
705
+ handler: async (ctx) => {
706
+ return await this.timesheetService.getTimesheets(ctx.params.orgId);
707
+ }
708
+ },
709
+ ["getTimesheetsWithTotalHours" /* getTimesheetsWithTotalHours */]: {
710
+ handler: async (ctx) => {
711
+ return await this.timesheetService.getTimesheetsWithTotalHours(ctx.params.orgId, ctx.params.userId);
712
+ }
713
+ },
714
+ ["getDurationTimesheets" /* getDurationTimesheets */]: {
715
+ handler: async (ctx) => {
716
+ return await this.timesheetService.getDurationTimesheets(ctx.params.orgId, ctx.params.start, ctx.params.end);
717
+ }
718
+ },
719
+ ["createTimesheet" /* createTimesheet */]: {
720
+ handler: async (ctx) => {
721
+ return await this.timesheetService.createTimesheet(ctx.params.userId, ctx.params.orgId, ctx.params.request);
722
+ }
723
+ },
724
+ ["updateTimesheet" /* updateTimesheet */]: {
725
+ handler: async (ctx) => {
726
+ return await this.timesheetService.updateTimesheet(ctx.params.userId, ctx.params.orgId, ctx.params.sheetId, ctx.params.request, ctx.params.userContext);
727
+ }
728
+ },
729
+ ["removeTimesheet" /* removeTimesheet */]: {
730
+ handler: async (ctx) => {
731
+ return await this.timesheetService.removeTimesheet(ctx.params.userId, ctx.params.orgId, ctx.params.sheetId);
732
+ }
733
+ },
734
+ ["updateTimesheetStatus" /* updateTimesheetStatus */]: {
735
+ handler: async (ctx) => {
736
+ return await this.timesheetService.updateTimesheetStatus(ctx.params.orgId, ctx.params.sheetId, ctx.params.state);
737
+ }
738
+ },
739
+ },
740
+ });
741
+ }
742
+ }
743
+ exports.TimesheetMoleculerService = TimesheetMoleculerService;
744
+
745
+
529
746
  /***/ }),
530
747
 
531
748
  /***/ "./src/preferences/index.ts":
@@ -545,7 +762,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
545
762
  o[k2] = m[k];
546
763
  }));
547
764
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
548
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
765
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
549
766
  };
550
767
  Object.defineProperty(exports, "__esModule", { value: true });
551
768
  __exportStar(__webpack_require__(/*! ./settings */ "./src/preferences/settings/index.ts"), exports);
@@ -571,7 +788,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
571
788
  o[k2] = m[k];
572
789
  }));
573
790
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
574
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
791
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
575
792
  };
576
793
  Object.defineProperty(exports, "__esModule", { value: true });
577
794
  __exportStar(__webpack_require__(/*! ./timing-permissions-contribution */ "./src/preferences/permissions/timing-permissions-contribution.ts"), exports);
@@ -1219,7 +1436,7 @@ exports.resolvers = [timerecord_resolver_1.resolver, timesheet_resolver_1.resolv
1219
1436
  Object.defineProperty(exports, "__esModule", { value: true });
1220
1437
  exports.resolver = void 0;
1221
1438
  const graphql_subscriptions_1 = __webpack_require__(/*! graphql-subscriptions */ "graphql-subscriptions");
1222
- exports.resolver = (options) => ({
1439
+ const resolver = (options) => ({
1223
1440
  TimeRecord: {
1224
1441
  id: (root) => root.id || root._id,
1225
1442
  },
@@ -1274,6 +1491,7 @@ exports.resolver = (options) => ({
1274
1491
  },
1275
1492
  },
1276
1493
  });
1494
+ exports.resolver = resolver;
1277
1495
 
1278
1496
 
1279
1497
  /***/ }),
@@ -1290,7 +1508,7 @@ exports.resolver = (options) => ({
1290
1508
  Object.defineProperty(exports, "__esModule", { value: true });
1291
1509
  exports.resolver = void 0;
1292
1510
  /* eslint-disable no-underscore-dangle */
1293
- exports.resolver = (options) => ({
1511
+ const resolver = (options) => ({
1294
1512
  Query: {
1295
1513
  getTimesheets: (root, args, { timesheetService, userContext }) => {
1296
1514
  options.logger.trace('(Query.getTimeSheets) args %j', args);
@@ -1322,6 +1540,7 @@ exports.resolver = (options) => ({
1322
1540
  },
1323
1541
  },
1324
1542
  });
1543
+ exports.resolver = resolver;
1325
1544
 
1326
1545
 
1327
1546
  /***/ }),
@@ -1369,7 +1588,7 @@ exports.schema = schema;
1369
1588
 
1370
1589
  "use strict";
1371
1590
  __webpack_require__.r(__webpack_exports__);
1372
- /* harmony default export */ __webpack_exports__["default"] = ("type TimeRecord {\n id: String\n startTime: DateTime\n endTime: DateTime\n taskId: String\n taskName: String\n description: String\n tags: [String]\n isBillable: Boolean\n projectId: String\n clientId: String\n userId: String\n orgId: String\n timesheetId: String\n editable: Boolean\n isPause: Boolean\n isTimeout: Boolean\n pauseStatus: [PauseStatus]\n}\n\ntype PauseStatus {\n pausedTime: DateTime\n restartTime: DateTime\n}\n\ninput PauseStatus_Input {\n pausedTime: DateTime\n restartTime: DateTime\n}\n\ninput TimeRecordRequest {\n userId: String\n startTime: DateTime\n endTime: DateTime\n taskName: String\n description: String\n tags: [String]\n isBillable: Boolean\n projectId: String\n clientId: String\n timesheetId: String\n isPause: Boolean\n isTimeout: Boolean\n pauseStatus: [PauseStatus_Input]\n}\n\n\"\"\"\n Subscription event for timer\n\"\"\"\nenum TimeRecordPubSubEvents {\n TimeRecordCreated\n TimeRecordUpdated\n TimeRecordStopped\n TimeRecordDeleted\n TimeRecordConfigurationUpdate\n}\n\ntype SubscriptionTimeRecord {\n mutation: TimeRecordPubSubEvents\n timeRecord: TimeRecord\n}\n\nextend type Query {\n getTimeRecords(userId: String): [TimeRecord] @addAccountContext\n getDurationTimeRecords(startTime: DateTime, endTime: DateTime, userId: String): [TimeRecord] @addAccountContext\n getPlayingTimeRecord: TimeRecord @addAccountContext\n}\n\nextend type Mutation {\n createTimeRecord(request: TimeRecordRequest): String @addAccountContext\n updateTimeRecord(recordId: String!, request: TimeRecordRequest): Boolean @addAccountContext\n removeTimeRecord(recordId: String!): Boolean @addAccountContext\n removeDurationTimeRecords(startTime: DateTime, endTime: DateTime, projectId: String): Boolean @addAccountContext\n}\n\nextend type Subscription {\n SubscribeToTimeTracker(orgName: String, userId: String): SubscriptionTimeRecord\n}\n");
1591
+ /* harmony default export */ __webpack_exports__["default"] = ("type TimeRecord {\n id: ID\n startTime: DateTime\n endTime: DateTime\n taskId: String\n taskName: String\n description: String\n tags: [String]\n isBillable: Boolean\n projectId: String\n clientId: String\n userId: String\n orgId: String\n timesheetId: String\n editable: Boolean\n isPause: Boolean\n isTimeout: Boolean\n pauseStatus: [PauseStatus]\n}\n\nenum PauseStatusDescription {\n BY_USER\n DUE_TO_INACTIVITY\n}\n\ntype PauseStatus {\n pausedTime: DateTime\n restartTime: DateTime\n status: PauseStatusDescription\n}\n\ninput PauseStatus_Input {\n pausedTime: DateTime\n restartTime: DateTime\n status: PauseStatusDescription\n}\n\ninput TimeRecordRequest {\n userId: String\n startTime: DateTime\n endTime: DateTime\n taskName: String\n description: String\n tags: [String]\n isBillable: Boolean\n projectId: String\n clientId: String\n timesheetId: String\n isPause: Boolean\n isTimeout: Boolean\n pauseStatus: [PauseStatus_Input]\n}\n\n\"\"\"\n Subscription event for timer\n\"\"\"\nenum TimeRecordPubSubEvents {\n TimeRecordCreated\n TimeRecordUpdated\n TimeRecordStopped\n TimeRecordDeleted\n TimeRecordConfigurationUpdate\n}\n\ntype SubscriptionTimeRecord {\n mutation: TimeRecordPubSubEvents\n timeRecord: TimeRecord\n}\n\nextend type Query {\n getTimeRecords(userId: String): [TimeRecord] @addAccountContext\n getDurationTimeRecords(startTime: DateTime, endTime: DateTime, userId: String): [TimeRecord] @addAccountContext\n getPlayingTimeRecord: TimeRecord @addAccountContext\n}\n\nextend type Mutation {\n createTimeRecord(request: TimeRecordRequest): String @addAccountContext\n updateTimeRecord(recordId: String!, request: TimeRecordRequest): Boolean @addAccountContext\n removeTimeRecord(recordId: String!): Boolean @addAccountContext\n removeDurationTimeRecords(startTime: DateTime, endTime: DateTime, projectId: String): Boolean @addAccountContext\n}\n\nextend type Subscription {\n SubscribeToTimeTracker(orgName: String, userId: String): SubscriptionTimeRecord\n}\n");
1373
1592
 
1374
1593
  /***/ }),
1375
1594
 
@@ -1382,7 +1601,7 @@ __webpack_require__.r(__webpack_exports__);
1382
1601
 
1383
1602
  "use strict";
1384
1603
  __webpack_require__.r(__webpack_exports__);
1385
- /* harmony default export */ __webpack_exports__["default"] = ("# scalar DateTime\nenum TimesheetState {\n OPEN\n APPROVED_PENDING\n APPROVED\n APPROVED_FINALIZED # --- which means no going back\n DENYED\n SUBMITTED\n DENYED_FINALIZED # --- which means no going back\n}\n\ntype Timesheet {\n id: ID\n userId: String\n startDate: DateTime\n endDate: DateTime\n state: TimesheetState\n submittedOn: DateTime\n approvedOn: DateTime\n approvedBy: String\n updatedBy: String # ---> userId\n updatedOn: DateTime\n}\n\ninput TimesheetCreateRequest {\n userId: String\n startDate: DateTime\n endDate: DateTime\n state: TimesheetState\n submittedOn: DateTime\n approvedOn: DateTime\n approvedBy: String\n updatedBy: String # ---> userId\n updatedOn: DateTime\n}\n\ntype TimesheetResponse {\n id: ID\n startDate: DateTime\n endDate: DateTime\n state: TimesheetState\n submittedOn: DateTime\n approvedOn: DateTime\n approvedBy: String\n updatedBy: String # ---> userId\n updatedOn: DateTime\n userId: String\n orgId: String\n totalDuration: Int\n}\n\nextend type Query {\n getTimesheets(userId: String, withTotalHours: Boolean): [TimesheetResponse] @addAccountContext\n getDurationTimesheets(start: DateTime, end: DateTime): [TimesheetResponse] @addAccountContext\n}\n\nextend type Mutation {\n createTimesheet(request: TimesheetCreateRequest): Boolean @addAccountContext\n updateTimesheet(sheetId: String, request: TimesheetCreateRequest): Boolean @addAccountContext\n removeTimesheet(sheetId: String): Boolean @addAccountContext\n updateTimesheetStatus(sheetId: String, state: TimesheetState): Boolean @addAccountContext\n}\n");
1604
+ /* harmony default export */ __webpack_exports__["default"] = ("# scalar DateTime\nenum TimesheetState {\n OPEN\n APPROVED_PENDING\n APPROVED\n APPROVED_FINALIZED # --- which means no going back\n DENYED\n SUBMITTED\n DENYED_FINALIZED # --- which means no going back\n}\n\ntype Timesheet {\n id: ID\n orgId: String\n userId: String\n startDate: DateTime\n endDate: DateTime\n state: TimesheetState\n submittedOn: DateTime\n approvedOn: DateTime\n approvedBy: String\n updatedBy: String # ---> userId\n updatedOn: DateTime\n timeRecordsId: [String]\n}\n\ninput TimesheetCreateRequest {\n userId: String\n startDate: DateTime\n endDate: DateTime\n state: TimesheetState\n submittedOn: DateTime\n approvedOn: DateTime\n approvedBy: String\n updatedBy: String # ---> userId\n updatedOn: DateTime\n timeRecordsId: [String]\n}\n\ntype TimesheetResponse {\n id: ID\n startDate: DateTime\n endDate: DateTime\n state: TimesheetState\n submittedOn: DateTime\n approvedOn: DateTime\n approvedBy: String\n updatedBy: String # ---> userId\n updatedOn: DateTime\n userId: String\n orgId: String\n timeRecordsId: [String]\n totalDuration: Int\n}\n\nextend type Query {\n getTimesheets(userId: String, withTotalHours: Boolean): [TimesheetResponse] @addAccountContext\n getDurationTimesheets(start: DateTime, end: DateTime): [TimesheetResponse] @addAccountContext\n}\n\nextend type Mutation {\n createTimesheet(request: TimesheetCreateRequest): Boolean @addAccountContext\n updateTimesheet(sheetId: String, request: TimesheetCreateRequest): Boolean @addAccountContext\n removeTimesheet(sheetId: String): Boolean @addAccountContext\n updateTimesheetStatus(sheetId: String, state: TimesheetState): Boolean @addAccountContext\n}\n");
1386
1605
 
1387
1606
  /***/ }),
1388
1607
 
@@ -1416,11 +1635,88 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
1416
1635
  o[k2] = m[k];
1417
1636
  }));
1418
1637
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
1419
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
1638
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
1420
1639
  };
1421
1640
  Object.defineProperty(exports, "__esModule", { value: true });
1422
1641
  __exportStar(__webpack_require__(/*! ./timesheet-service */ "./src/services/timesheet-service.ts"), exports);
1423
1642
  __exportStar(__webpack_require__(/*! ./timerecord-service */ "./src/services/timerecord-service.ts"), exports);
1643
+ __exportStar(__webpack_require__(/*! ./timerecord-proxy-service */ "./src/services/timerecord-proxy-service.ts"), exports);
1644
+ __exportStar(__webpack_require__(/*! ./timesheet-proxy-service */ "./src/services/timesheet-proxy-service.ts"), exports);
1645
+
1646
+
1647
+ /***/ }),
1648
+
1649
+ /***/ "./src/services/timerecord-proxy-service.ts":
1650
+ /*!**************************************************!*\
1651
+ !*** ./src/services/timerecord-proxy-service.ts ***!
1652
+ \**************************************************/
1653
+ /*! no static exports found */
1654
+ /***/ (function(module, exports, __webpack_require__) {
1655
+
1656
+ "use strict";
1657
+
1658
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
1659
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1660
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1661
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1662
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1663
+ };
1664
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
1665
+ return function (target, key) { decorator(target, key, paramIndex); }
1666
+ };
1667
+ Object.defineProperty(exports, "__esModule", { value: true });
1668
+ exports.TimeRecordProxyService = void 0;
1669
+ const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
1670
+ const core_1 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
1671
+ let TimeRecordProxyService = class TimeRecordProxyService {
1672
+ constructor(broker, logger) {
1673
+ this.broker = broker;
1674
+ this.topic = "TimeRecord" /* TimeRecord */;
1675
+ this.logger = logger.child({ className: 'TimeRecordProxyService' });
1676
+ }
1677
+ approveTimeRecords(orgId, sheetId, timeRecordsId) {
1678
+ return this.callAction("approveTimeRecords" /* approveTimeRecords */, { orgId, sheetId, timeRecordsId });
1679
+ }
1680
+ createTimeRecord(userId, orgId, request) {
1681
+ return this.callAction("createTimeRecord" /* createTimeRecord */, { userId, orgId, request });
1682
+ }
1683
+ disapproveTimeRecords(orgId, sheetId) {
1684
+ return this.callAction("disapproveTimeRecords" /* disapproveTimeRecords */, { orgId, sheetId });
1685
+ }
1686
+ getDurationTimeRecords(orgId, startTime, endTime, userId) {
1687
+ return this.callAction("getDurationTimeRecords" /* getDurationTimeRecords */, { orgId, startTime, endTime, userId });
1688
+ }
1689
+ getPlayingTimeRecord(userId, orgId) {
1690
+ return this.callAction("getPlayingTimeRecord" /* getPlayingTimeRecord */, { userId, orgId });
1691
+ }
1692
+ getTimeRecords(orgId, userId) {
1693
+ return this.callAction("getTimeRecords" /* getTimeRecords */, { orgId, userId });
1694
+ }
1695
+ removeDurationTimeRecords(userId, orgId, startTime, endTime, projectId) {
1696
+ return this.callAction("removeDurationTimeRecords" /* removeDurationTimeRecords */, {
1697
+ userId,
1698
+ orgId,
1699
+ startTime,
1700
+ endTime,
1701
+ projectId,
1702
+ });
1703
+ }
1704
+ removeTimeRecord(userId, orgId, recordId) {
1705
+ return this.callAction("removeTimeRecord" /* removeTimeRecord */, { userId, orgId, recordId });
1706
+ }
1707
+ updateTimeRecord(userId, orgId, recordId, request) {
1708
+ return this.callAction("updateTimeRecord" /* updateTimeRecord */, { userId, orgId, recordId, request });
1709
+ }
1710
+ async callAction(command, params) {
1711
+ return this.broker.call(`${this.topic}.${command}`, params);
1712
+ }
1713
+ };
1714
+ TimeRecordProxyService = __decorate([
1715
+ inversify_1.injectable(),
1716
+ __param(0, inversify_1.inject(core_1.CommonType.MOLECULER_BROKER)),
1717
+ __param(1, inversify_1.inject('Logger'))
1718
+ ], TimeRecordProxyService);
1719
+ exports.TimeRecordProxyService = TimeRecordProxyService;
1424
1720
 
1425
1721
 
1426
1722
  /***/ }),
@@ -1446,13 +1742,15 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
1446
1742
  Object.defineProperty(exports, "__esModule", { value: true });
1447
1743
  exports.TimeRecordService = void 0;
1448
1744
  const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
1449
- const core_1 = __webpack_require__(/*! @adminide-stack/core */ "@adminide-stack/core");
1450
- const core_2 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
1745
+ const core_1 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
1451
1746
  const constants_1 = __webpack_require__(/*! ../constants */ "./src/constants/index.ts");
1747
+ const moment = __webpack_require__(/*! moment */ "moment");
1452
1748
  let TimeRecordService = class TimeRecordService {
1453
- constructor(timeRecordRepository, preferencesService, broker, pubsub, logger) {
1749
+ constructor(timeRecordRepository,
1750
+ // @inject(ServerTypes.IPreferenceEditorService)
1751
+ // private preferencesService: IPreferencesService,
1752
+ broker, pubsub, logger) {
1454
1753
  this.timeRecordRepository = timeRecordRepository;
1455
- this.preferencesService = preferencesService;
1456
1754
  this.broker = broker;
1457
1755
  this.pubsub = pubsub;
1458
1756
  this.logger = logger;
@@ -1461,7 +1759,7 @@ let TimeRecordService = class TimeRecordService {
1461
1759
  return this.timeRecordRepository.getTimeRecords(orgId, userId);
1462
1760
  }
1463
1761
  async getDurationTimeRecords(orgId, startTime, endTime, userId) {
1464
- const timeRecords = await this.timeRecordRepository.getTimeRecords(orgId, userId, startTime, endTime);
1762
+ const timeRecords = await this.timeRecordRepository.getTimeRecords(orgId, userId, startTime && moment(startTime).toDate(), endTime && moment(endTime).toDate());
1465
1763
  return timeRecords.filter((r) => r.endTime !== null);
1466
1764
  }
1467
1765
  async getPlayingTimeRecord(userId, orgId) {
@@ -1469,13 +1767,12 @@ let TimeRecordService = class TimeRecordService {
1469
1767
  }
1470
1768
  async createTimeRecord(userId, orgId, request) {
1471
1769
  const data = await this.timeRecordRepository.createTimeRecord(userId, orgId, request);
1472
- const timeRecord = data === null || data === void 0 ? void 0 : data.timeRecords[0];
1473
- if (timeRecord) {
1770
+ if (data) {
1474
1771
  const record = {
1475
1772
  orgName: data.orgId,
1476
- userId: timeRecord.userId,
1773
+ userId: data.userId,
1477
1774
  mutation: "TimeRecordCreated" /* TimeRecordCreated */,
1478
- timeRecord,
1775
+ timeRecord: data,
1479
1776
  };
1480
1777
  this.pubsub.publish("TimeRecordCreated" /* TimeRecordCreated */, { SubscribeToTimeTracker: record });
1481
1778
  }
@@ -1483,13 +1780,12 @@ let TimeRecordService = class TimeRecordService {
1483
1780
  }
1484
1781
  async updateTimeRecord(userId, orgId, recordId, request) {
1485
1782
  const data = await this.timeRecordRepository.updateTimeRecord(userId, orgId, recordId, request);
1486
- const timeRecord = data === null || data === void 0 ? void 0 : data.timeRecords[0];
1487
- if (timeRecord) {
1783
+ if (data) {
1488
1784
  const record = {
1489
1785
  orgName: data.orgId,
1490
- userId: timeRecord.userId,
1786
+ userId: data.userId,
1491
1787
  mutation: "TimeRecordUpdated" /* TimeRecordUpdated */,
1492
- timeRecord,
1788
+ timeRecord: data,
1493
1789
  };
1494
1790
  this.pubsub.publish("TimeRecordUpdated" /* TimeRecordUpdated */, { SubscribeToTimeTracker: record });
1495
1791
  }
@@ -1501,16 +1797,43 @@ let TimeRecordService = class TimeRecordService {
1501
1797
  orgName: data.orgId,
1502
1798
  userId: data.userId,
1503
1799
  mutation: "TimeRecordDeleted" /* TimeRecordDeleted */,
1504
- timeRecord: data === null || data === void 0 ? void 0 : data.timeRecords[0],
1800
+ timeRecord: data,
1505
1801
  };
1802
+ // remove record activities
1803
+ await this.broker.broadcast("onRemoveTimeRecord" /* onRemoveTimeRecord */, { userId, orgId, recordId }, [
1804
+ "TimeRecord" /* TimeRecord */,
1805
+ "Timesheet" /* Timesheet */,
1806
+ "Activity" /* Activity */,
1807
+ ]);
1808
+ //remove record id from timesheet
1809
+ await this.broker.broadcast("onRemoveTimeRecordIdFromTimesheet" /* onRemoveTimeRecordIdFromTimesheet */, { recordId, orgId }, [
1810
+ "TimeRecord" /* TimeRecord */,
1811
+ "Timesheet" /* Timesheet */,
1812
+ ]);
1506
1813
  this.pubsub.publish("TimeRecordDeleted" /* TimeRecordDeleted */, { SubscribeToTimeTracker: record });
1507
1814
  return true;
1508
1815
  }
1509
1816
  async removeDurationTimeRecords(userId, orgId, startTime, endTime, projectId) {
1510
- return this.timeRecordRepository.removeDurationTimeRecords(userId, orgId, startTime, endTime, projectId);
1817
+ const records = await this.timeRecordRepository.getTimeRecords(orgId, userId);
1818
+ if (records && records.length > 0) {
1819
+ const timeRecords = records.filter((tr) => tr.startTime > moment(startTime) && tr.startTime < moment(endTime) && tr.projectId === projectId);
1820
+ for (const record of timeRecords) {
1821
+ await this.broker.broadcast("onRemoveTimeRecord" /* onRemoveTimeRecord */, { userId, orgId, recordId: record._id }, [
1822
+ "TimeRecord" /* TimeRecord */,
1823
+ "Timesheet" /* Timesheet */,
1824
+ "Activity" /* Activity */,
1825
+ ]);
1826
+ //remove record id from timesheet
1827
+ await this.broker.broadcast("onRemoveTimeRecordIdFromTimesheet" /* onRemoveTimeRecordIdFromTimesheet */, { recordId: record._id, orgId }, [
1828
+ "TimeRecord" /* TimeRecord */,
1829
+ "Timesheet" /* Timesheet */,
1830
+ ]);
1831
+ }
1832
+ }
1833
+ return this.timeRecordRepository.removeDurationTimeRecords(userId, orgId, moment(startTime), moment(endTime), projectId);
1511
1834
  }
1512
- async approveTimeRecords(orgId, sheetId, startDate, endDate) {
1513
- this.timeRecordRepository.approveTimeRecords(orgId, sheetId, startDate, endDate);
1835
+ async approveTimeRecords(orgId, sheetId, timeRecordsId) {
1836
+ this.timeRecordRepository.approveTimeRecords(orgId, sheetId, timeRecordsId);
1514
1837
  }
1515
1838
  async disapproveTimeRecords(orgId, sheetId) {
1516
1839
  this.timeRecordRepository.disapproveTimeRecords(orgId, sheetId);
@@ -1519,14 +1842,79 @@ let TimeRecordService = class TimeRecordService {
1519
1842
  TimeRecordService = __decorate([
1520
1843
  inversify_1.injectable(),
1521
1844
  __param(0, inversify_1.inject(constants_1.TYPES.ITimeRecordRepository)),
1522
- __param(1, inversify_1.inject(core_1.ServerTypes.IPreferenceEditorService)),
1523
- __param(2, inversify_1.inject(core_2.CommonType.MOLECULER_BROKER)),
1524
- __param(3, inversify_1.inject('PubSub')),
1525
- __param(4, inversify_1.inject('Logger'))
1845
+ __param(1, inversify_1.inject(core_1.CommonType.MOLECULER_BROKER)),
1846
+ __param(2, inversify_1.inject('PubSub')),
1847
+ __param(3, inversify_1.inject('Logger'))
1526
1848
  ], TimeRecordService);
1527
1849
  exports.TimeRecordService = TimeRecordService;
1528
1850
 
1529
1851
 
1852
+ /***/ }),
1853
+
1854
+ /***/ "./src/services/timesheet-proxy-service.ts":
1855
+ /*!*************************************************!*\
1856
+ !*** ./src/services/timesheet-proxy-service.ts ***!
1857
+ \*************************************************/
1858
+ /*! no static exports found */
1859
+ /***/ (function(module, exports, __webpack_require__) {
1860
+
1861
+ "use strict";
1862
+
1863
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
1864
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1865
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1866
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1867
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1868
+ };
1869
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
1870
+ return function (target, key) { decorator(target, key, paramIndex); }
1871
+ };
1872
+ Object.defineProperty(exports, "__esModule", { value: true });
1873
+ exports.TimesheetProxyService = void 0;
1874
+ const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
1875
+ const core_1 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
1876
+ let TimesheetProxyService = class TimesheetProxyService {
1877
+ constructor(broker, logger) {
1878
+ this.broker = broker;
1879
+ this.topic = "Timesheet" /* Timesheet */;
1880
+ this.logger = logger.child({ className: 'TimesheetProxyService' });
1881
+ }
1882
+ createTimesheet(userId, orgId, request) {
1883
+ return this.callAction("createTimesheet" /* createTimesheet */, { userId, orgId, request });
1884
+ }
1885
+ getDurationTimesheets(orgId, start, end) {
1886
+ return this.callAction("getDurationTimesheets" /* getDurationTimesheets */, { orgId, start, end });
1887
+ }
1888
+ getTimesheets(orgId) {
1889
+ return this.callAction("getTimesheets" /* getTimesheets */, { orgId });
1890
+ }
1891
+ getTimesheetsWithTotalHours(orgId, userId) {
1892
+ return this.callAction("getTimesheetsWithTotalHours" /* getTimesheetsWithTotalHours */, { orgId, userId });
1893
+ }
1894
+ removeTimesheet(userId, orgId, sheetId) {
1895
+ return this.callAction("removeTimesheet" /* removeTimesheet */, { userId, orgId, sheetId });
1896
+ }
1897
+ removeTimeRecordIdFromTimesheet(recordId, orgId) {
1898
+ return this.callAction("removeTimeRecordIdFromTimesheet" /* removeTimeRecordIdFromTimesheet */, { recordId, orgId });
1899
+ }
1900
+ updateTimesheet(userId, orgId, sheetId, request, userContext) {
1901
+ return this.callAction("updateTimesheet" /* updateTimesheet */, { userId, orgId, sheetId, request });
1902
+ }
1903
+ updateTimesheetStatus(orgId, sheetId, state) {
1904
+ return this.callAction("updateTimesheetStatus" /* updateTimesheetStatus */, { orgId, sheetId, state });
1905
+ }
1906
+ async callAction(command, params) {
1907
+ return this.broker.call(`${this.topic}.${command}`, params);
1908
+ }
1909
+ };
1910
+ TimesheetProxyService = __decorate([
1911
+ inversify_1.injectable(),
1912
+ __param(0, inversify_1.inject(core_1.CommonType.MOLECULER_BROKER)),
1913
+ __param(1, inversify_1.inject('Logger'))
1914
+ ], TimesheetProxyService);
1915
+ exports.TimesheetProxyService = TimesheetProxyService;
1916
+
1917
+
1530
1918
  /***/ }),
1531
1919
 
1532
1920
  /***/ "./src/services/timesheet-service.ts":
@@ -1573,7 +1961,7 @@ let TimesheetService = class TimesheetService {
1573
1961
  const timeRecords = await this.timeRecordRepository.getTimeRecords(orgId, userId);
1574
1962
  return timesheets.map((timesheet) => {
1575
1963
  const sheetTotalDuration = timeRecords
1576
- .filter((tr) => tr.userId === timesheet.userId && tr.startTime > timesheet.startDate && tr.endTime < timesheet.endDate)
1964
+ .filter((tr) => { var _a; return (_a = timesheet.timeRecordsId) === null || _a === void 0 ? void 0 : _a.includes(tr._id.toString()); })
1577
1965
  .reduce((duration, tr) => duration + Math.floor((moment(tr.endTime).valueOf() - moment(tr.startTime).valueOf()) / 1000), 0);
1578
1966
  return {
1579
1967
  id: timesheet.id,
@@ -1587,6 +1975,7 @@ let TimesheetService = class TimesheetService {
1587
1975
  submittedOn: timesheet.submittedOn,
1588
1976
  updatedBy: timesheet.updatedBy,
1589
1977
  updatedOn: timesheet.updatedOn,
1978
+ timeRecordsId: timesheet.timeRecordsId,
1590
1979
  totalDuration: sheetTotalDuration,
1591
1980
  };
1592
1981
  });
@@ -1604,7 +1993,7 @@ let TimesheetService = class TimesheetService {
1604
1993
  await this.timesheetRepository.updateTimesheet(orgId, sheetId, request);
1605
1994
  if (request.state === "APPROVED" /* APPROVED */) {
1606
1995
  // approve time records from startDate to endDate
1607
- this.timeRecordService.approveTimeRecords(orgId, sheetId, request.startDate, request.endDate);
1996
+ this.timeRecordService.approveTimeRecords(orgId, sheetId, request.timeRecordsId);
1608
1997
  }
1609
1998
  else if (request.state === "DENYED" /* DENYED */) {
1610
1999
  // approve time records from startDate to endDate
@@ -1618,7 +2007,7 @@ let TimesheetService = class TimesheetService {
1618
2007
  if (request.state === "APPROVED" /* APPROVED */ &&
1619
2008
  settings.timetracker.notifications.approvalNotifications &&
1620
2009
  settings.timetracker.notifications.enableTimetrackerNotifications) {
1621
- const mailTopic = 'Timsheet approved';
2010
+ const mailTopic = 'Timesheet approved';
1622
2011
  const mailTo = userContext.emailId;
1623
2012
  const mailFrom = config_1.config.MAIL_SEND_DEFAULT_EMAIL;
1624
2013
  const templateId = constants_1.EmailTemplateCodes.TIMESHEET_APPROVAL;
@@ -1634,7 +2023,7 @@ let TimesheetService = class TimesheetService {
1634
2023
  if (request.state === "SUBMITTED" /* SUBMITTED */ &&
1635
2024
  settings.timetracker.notifications.submitNotifications &&
1636
2025
  settings.timetracker.notifications.enableTimetrackerNotifications) {
1637
- const mailTopic = 'Timsheet submitted';
2026
+ const mailTopic = 'Timesheet submitted';
1638
2027
  const mailTo = userContext.emailId;
1639
2028
  const mailFrom = config_1.config.MAIL_SEND_DEFAULT_EMAIL;
1640
2029
  const templateId = constants_1.EmailTemplateCodes.SUBMIT_TIME;
@@ -1681,6 +2070,9 @@ let TimesheetService = class TimesheetService {
1681
2070
  },
1682
2071
  }, "MailService" /* MailService */);
1683
2072
  }
2073
+ async removeTimeRecordIdFromTimesheet(recordId, orgId) {
2074
+ return await this.timesheetRepository.removeTimeRecordIdFromTimesheet(recordId, orgId);
2075
+ }
1684
2076
  async callAction(command, params, topic, opts) {
1685
2077
  return this.broker.call(`${topic}.${command}@${this.settings.adminApiNamespace}`, params, opts);
1686
2078
  }
@@ -1699,6 +2091,108 @@ TimesheetService = __decorate([
1699
2091
  exports.TimesheetService = TimesheetService;
1700
2092
 
1701
2093
 
2094
+ /***/ }),
2095
+
2096
+ /***/ "./src/store/models/timerecords-model.ts":
2097
+ /*!***********************************************!*\
2098
+ !*** ./src/store/models/timerecords-model.ts ***!
2099
+ \***********************************************/
2100
+ /*! no static exports found */
2101
+ /***/ (function(module, exports, __webpack_require__) {
2102
+
2103
+ "use strict";
2104
+
2105
+ Object.defineProperty(exports, "__esModule", { value: true });
2106
+ exports.TimeRecordsModelFunc = void 0;
2107
+ const mongoose_1 = __webpack_require__(/*! mongoose */ "mongoose");
2108
+ var PauseStatusDescription;
2109
+ (function (PauseStatusDescription) {
2110
+ PauseStatusDescription["BY_USER"] = "BY_USER";
2111
+ PauseStatusDescription["DUE_TO_INACTIVITY"] = "DUE_TO_INACTIVITY";
2112
+ })(PauseStatusDescription || (PauseStatusDescription = {}));
2113
+ const PauseStatusSchema = new mongoose_1.Schema({
2114
+ pausedTime: { type: Date },
2115
+ restartTime: { type: Date },
2116
+ status: { type: PauseStatusDescription },
2117
+ });
2118
+ // ===> TimeRecord
2119
+ const TimeRecordSchema = new mongoose_1.Schema({
2120
+ orgId: { type: String, index: true },
2121
+ userId: { type: String, index: true },
2122
+ startTime: { type: Date, index: true },
2123
+ endTime: { type: Date, default: null, index: true },
2124
+ taskName: { type: String },
2125
+ description: { type: String },
2126
+ taskId: { type: String },
2127
+ tags: { type: [String] },
2128
+ isBillable: { type: Boolean },
2129
+ projectId: { type: String },
2130
+ timesheetId: { type: String, index: true },
2131
+ isPause: { type: Boolean, default: false },
2132
+ isTimeout: { type: Boolean, default: false },
2133
+ pauseStatus: { type: [PauseStatusSchema] }
2134
+ });
2135
+ TimeRecordSchema.index({ endTime: 1, startTime: 1, userId: 1 });
2136
+ TimeRecordSchema.virtual('id').get(function () {
2137
+ return this._id.toHexString();
2138
+ });
2139
+ TimeRecordSchema.set('toJSON', {
2140
+ virtuals: true,
2141
+ });
2142
+ TimeRecordSchema.set('toObject', { virtuals: true });
2143
+ const TimeRecordsModelFunc = (db) => db.model('timerecords', TimeRecordSchema);
2144
+ exports.TimeRecordsModelFunc = TimeRecordsModelFunc;
2145
+
2146
+
2147
+ /***/ }),
2148
+
2149
+ /***/ "./src/store/models/timesheets-model.ts":
2150
+ /*!**********************************************!*\
2151
+ !*** ./src/store/models/timesheets-model.ts ***!
2152
+ \**********************************************/
2153
+ /*! no static exports found */
2154
+ /***/ (function(module, exports, __webpack_require__) {
2155
+
2156
+ "use strict";
2157
+
2158
+ Object.defineProperty(exports, "__esModule", { value: true });
2159
+ exports.TimesheetsModelFunc = void 0;
2160
+ const mongoose_1 = __webpack_require__(/*! mongoose */ "mongoose");
2161
+ var TimesheetState;
2162
+ (function (TimesheetState) {
2163
+ TimesheetState[TimesheetState["OPEN"] = 0] = "OPEN";
2164
+ TimesheetState[TimesheetState["APPROVED_PENDING"] = 1] = "APPROVED_PENDING";
2165
+ TimesheetState[TimesheetState["APPROVED"] = 2] = "APPROVED";
2166
+ TimesheetState[TimesheetState["APPROVED_FINALIZED"] = 3] = "APPROVED_FINALIZED";
2167
+ TimesheetState[TimesheetState["DENYED"] = 4] = "DENYED";
2168
+ TimesheetState[TimesheetState["SUBMITTED"] = 5] = "SUBMITTED";
2169
+ TimesheetState[TimesheetState["DENYED_FINALIZED"] = 6] = "DENYED_FINALIZED";
2170
+ })(TimesheetState || (TimesheetState = {}));
2171
+ // ===> Timesheet
2172
+ const TimesheetSchema = new mongoose_1.Schema({
2173
+ orgId: { type: String, index: true },
2174
+ userId: { type: String, index: true },
2175
+ startDate: { type: Date },
2176
+ endDate: { type: Date },
2177
+ state: { type: TimesheetState },
2178
+ submittedOn: { type: Date },
2179
+ approvedOn: { type: Date },
2180
+ approvedBy: { type: String },
2181
+ updatedBy: { type: String },
2182
+ updatedOn: { type: Date },
2183
+ timeRecordsId: { type: [String] },
2184
+ });
2185
+ TimesheetSchema.virtual('id').get(function () {
2186
+ return this._id.toHexString();
2187
+ });
2188
+ TimesheetSchema.set('toJSON', {
2189
+ virtuals: true,
2190
+ });
2191
+ TimesheetSchema.set('toObject', { virtuals: true });
2192
+ const TimesheetsModelFunc = (db) => db.model('timesheets', TimesheetSchema);
2193
+ exports.TimesheetsModelFunc = TimesheetsModelFunc;
2194
+
2195
+
1702
2196
  /***/ }),
1703
2197
 
1704
2198
  /***/ "./src/store/models/timetracker-model.ts":
@@ -1750,7 +2244,7 @@ const TimeRecordSchema = new mongoose_1.Schema({
1750
2244
  activities: [TimeActivitySchema],
1751
2245
  isPause: { type: Boolean, default: false },
1752
2246
  isTimeout: { type: Boolean, default: false },
1753
- pauseStatus: { type: [PauseStatusSchema] },
2247
+ pauseStatus: { type: [PauseStatusSchema] }
1754
2248
  });
1755
2249
  TimeRecordSchema.index({ endTime: 1, startTime: 1, userId: 1 });
1756
2250
  // ===> Timesheet
@@ -1764,6 +2258,7 @@ const TimesheetSchema = new mongoose_1.Schema({
1764
2258
  approvedBy: { type: String },
1765
2259
  updatedBy: { type: String },
1766
2260
  updatedOn: { type: Date },
2261
+ timeRecordsId: { type: [String] },
1767
2262
  });
1768
2263
  const TimeTrackerSchema = new mongoose_1.Schema({
1769
2264
  orgId: { type: String, index: true },
@@ -1783,7 +2278,8 @@ TimeTrackerSchema.set('toJSON', {
1783
2278
  virtuals: true,
1784
2279
  });
1785
2280
  TimeTrackerSchema.set('toObject', { virtuals: true });
1786
- exports.TimeTrackerModelFunc = (db) => db.model('timetracker', TimeTrackerSchema);
2281
+ const TimeTrackerModelFunc = (db) => db.model('timetracker', TimeTrackerSchema);
2282
+ exports.TimeTrackerModelFunc = TimeTrackerModelFunc;
1787
2283
 
1788
2284
 
1789
2285
  /***/ }),
@@ -1805,7 +2301,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
1805
2301
  o[k2] = m[k];
1806
2302
  }));
1807
2303
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
1808
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
2304
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
1809
2305
  };
1810
2306
  Object.defineProperty(exports, "__esModule", { value: true });
1811
2307
  __exportStar(__webpack_require__(/*! ./timerecord-repository */ "./src/store/repository/timerecord-repository.ts"), exports);
@@ -1835,82 +2331,60 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
1835
2331
  Object.defineProperty(exports, "__esModule", { value: true });
1836
2332
  exports.TimeRecordRepository = void 0;
1837
2333
  const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
1838
- const _ = __webpack_require__(/*! lodash */ "lodash");
1839
- const timetracker_model_1 = __webpack_require__(/*! ../models/timetracker-model */ "./src/store/models/timetracker-model.ts");
2334
+ const timerecords_model_1 = __webpack_require__(/*! ../models/timerecords-model */ "./src/store/models/timerecords-model.ts");
1840
2335
  let TimeRecordRepository = class TimeRecordRepository {
1841
2336
  constructor(db, logger) {
1842
2337
  this.logger = logger.child({ className: 'TimeRecordRepository' });
1843
- this.timeTrackerModel = timetracker_model_1.TimeTrackerModelFunc(db);
2338
+ this.timeRecordsModel = timerecords_model_1.TimeRecordsModelFunc(db);
1844
2339
  }
1845
2340
  async getTimeRecords(orgId, userId, from, until) {
1846
2341
  if (!userId) {
1847
2342
  userId = /.*/;
1848
2343
  }
1849
2344
  let match = {
1850
- 'timeRecords.userId': userId,
2345
+ 'userId': userId,
1851
2346
  };
1852
2347
  if (from) {
1853
- match = Object.assign(Object.assign({}, match), { 'timeRecords.startTime': { $gte: from } });
2348
+ match = Object.assign(Object.assign({}, match), { 'startTime': { $gte: from } });
1854
2349
  }
1855
2350
  if (until) {
1856
- match = Object.assign(Object.assign({}, match), { 'timeRecords.endTime': { $lte: until } });
2351
+ match = Object.assign(Object.assign({}, match), { 'endTime': { $lte: until } });
1857
2352
  }
1858
- const result = await this.timeTrackerModel.aggregate([
2353
+ const result = await this.timeRecordsModel.aggregate([
1859
2354
  {
1860
2355
  $match: {
1861
2356
  orgId,
1862
2357
  },
1863
2358
  },
1864
- {
1865
- $unwind: '$timeRecords',
1866
- },
1867
2359
  {
1868
2360
  $match: Object.assign({}, match),
1869
2361
  },
1870
- {
1871
- $group: {
1872
- _id: '$orgId',
1873
- timeRecords: {
1874
- $push: '$timeRecords',
1875
- },
1876
- },
1877
- },
1878
- {
1879
- $project: {
1880
- orgId: 1,
1881
- timeRecords: 1,
1882
- },
1883
- },
1884
2362
  ]);
1885
2363
  if (result.length === 0) {
1886
2364
  return [];
1887
2365
  }
1888
- return result[0].timeRecords;
2366
+ return result;
1889
2367
  }
1890
2368
  async getOrganizationTimeRecords(orgId) {
1891
- const trackDoc = await this.timeTrackerModel.findOne({ orgId });
1892
- if (trackDoc && trackDoc.timeRecords) {
1893
- return trackDoc.timeRecords;
2369
+ const trackDoc = await this.timeRecordsModel.find({ orgId });
2370
+ if (trackDoc) {
2371
+ return trackDoc;
1894
2372
  }
1895
2373
  return [];
1896
2374
  }
1897
2375
  async getPlayingTimeRecord(userId, orgId) {
1898
- const trackDoc = await this.timeTrackerModel.findOne({ orgId });
2376
+ const trackDoc = await this.timeRecordsModel.find({ orgId });
1899
2377
  if (trackDoc) {
1900
2378
  let res;
1901
- if (trackDoc.timeRecords)
1902
- res = trackDoc.timeRecords.find((tr) => tr.userId === userId && tr.endTime === null);
2379
+ if (trackDoc)
2380
+ res = trackDoc.find((tr) => tr.userId === userId && tr.endTime === null);
1903
2381
  return res;
1904
2382
  }
1905
2383
  return null;
1906
2384
  }
1907
2385
  async createTimeRecord(userId, orgId, request) {
1908
2386
  try {
1909
- const response = await this.timeTrackerModel.findOneAndUpdate({ orgId }, { orgId, $push: { timeRecords: request } }, {
1910
- upsert: true,
1911
- new: true,
1912
- projection: { userId, orgId, timeRecords: { $elemMatch: { startTime: request.startTime } } },
1913
- });
2387
+ const response = await this.timeRecordsModel.create(Object.assign(Object.assign({}, request), { orgId, userId }));
1914
2388
  return response.toObject();
1915
2389
  }
1916
2390
  catch (err) {
@@ -1921,21 +2395,12 @@ let TimeRecordRepository = class TimeRecordRepository {
1921
2395
  try {
1922
2396
  if (recordId === null || recordId === undefined)
1923
2397
  throw new Error('TimeRecord id not specified!');
1924
- let setRequest = {};
1925
- _.forIn(request, (value, key) => {
1926
- setRequest = Object.assign(Object.assign({}, setRequest), { [`timeRecords.$.${key}`]: value });
1927
- });
1928
- const response = await this.timeTrackerModel.findOneAndUpdate({ orgId, timeRecords: { $elemMatch: { _id: recordId } } }, {
1929
- $set: Object.assign({}, setRequest),
2398
+ const response = await this.timeRecordsModel.findOneAndUpdate({ orgId, _id: recordId }, {
2399
+ $set: Object.assign({}, request),
1930
2400
  }, {
1931
2401
  new: true,
1932
- projection: {
1933
- userId,
1934
- orgId,
1935
- timeRecords: { $elemMatch: { _id: recordId } },
1936
- },
1937
2402
  });
1938
- return response.toObject();
2403
+ return response === null || response === void 0 ? void 0 : response.toObject();
1939
2404
  }
1940
2405
  catch (err) {
1941
2406
  throw new Error(err.message);
@@ -1943,15 +2408,11 @@ let TimeRecordRepository = class TimeRecordRepository {
1943
2408
  }
1944
2409
  async removeTimeRecord(userId, orgId, recordId) {
1945
2410
  try {
1946
- const result = await this.timeTrackerModel.update({
1947
- orgId,
1948
- }, {
1949
- $pull: { timeRecords: { _id: recordId } },
1950
- });
1951
- if (result.nModified !== 1) {
2411
+ const result = await this.timeRecordsModel.remove({ userId, orgId, _id: recordId });
2412
+ if (result.n !== 1) {
1952
2413
  throw new Error('TimeRecord is not modified');
1953
2414
  }
1954
- return { userId, orgId, timeRecords: [{ _id: recordId }] };
2415
+ return { userId, orgId, _id: recordId };
1955
2416
  }
1956
2417
  catch (err) {
1957
2418
  throw new Error(err.message);
@@ -1959,14 +2420,12 @@ let TimeRecordRepository = class TimeRecordRepository {
1959
2420
  }
1960
2421
  async removeDurationTimeRecords(userId, orgId, startTime, endTime, projectId) {
1961
2422
  try {
1962
- const trackerDoc = await this.timeTrackerModel.find({ orgId });
2423
+ const trackerDoc = await this.timeRecordsModel.find({ orgId });
1963
2424
  if (trackerDoc && trackerDoc.length > 0) {
1964
- const timeRecords = trackerDoc[0].timeRecords.filter((tr) => tr.startTime < startTime || tr.startTime > endTime || tr.projectId !== projectId);
1965
- await this.timeTrackerModel.update({
1966
- orgId,
1967
- }, {
1968
- timeRecords,
1969
- });
2425
+ const timeRecords = trackerDoc.filter((tr) => tr.startTime > startTime && tr.startTime < endTime && tr.projectId === projectId);
2426
+ for (const record of timeRecords) {
2427
+ await this.timeRecordsModel.remove({ _id: record._id });
2428
+ }
1970
2429
  return true;
1971
2430
  }
1972
2431
  return false;
@@ -1975,20 +2434,11 @@ let TimeRecordRepository = class TimeRecordRepository {
1975
2434
  throw new Error(err.message);
1976
2435
  }
1977
2436
  }
1978
- async approveTimeRecords(orgId, sheetId, startDate, endDate) {
2437
+ async approveTimeRecords(orgId, sheetId, timeRecordsId) {
1979
2438
  try {
1980
- await this.timeTrackerModel.updateMany({
1981
- orgId,
1982
- }, { $set: { 'timeRecords.$[el].timesheetId': sheetId } }, {
1983
- multi: true,
1984
- arrayFilters: [
1985
- {
1986
- 'el.startTime': { $gte: startDate },
1987
- 'el.endTime': { $lte: endDate },
1988
- 'el.timesheetId': null,
1989
- },
1990
- ],
1991
- });
2439
+ for (const id of timeRecordsId) {
2440
+ const res = await this.timeRecordsModel.updateOne({ orgId, _id: id }, { $set: { 'timesheetId': sheetId } });
2441
+ }
1992
2442
  }
1993
2443
  catch (e) {
1994
2444
  this.logger.debug('approveTimeRecords =>', e.message);
@@ -1997,15 +2447,11 @@ let TimeRecordRepository = class TimeRecordRepository {
1997
2447
  }
1998
2448
  async disapproveTimeRecords(orgId, sheetId) {
1999
2449
  try {
2000
- await this.timeTrackerModel.updateMany({
2450
+ const res = await this.timeRecordsModel.updateMany({
2001
2451
  orgId,
2002
- }, { $set: { 'timeRecords.$[el].timesheetId': null } }, {
2452
+ timesheetId: sheetId
2453
+ }, { $set: { 'timesheetId': null } }, {
2003
2454
  multi: true,
2004
- arrayFilters: [
2005
- {
2006
- 'el.timesheetId': sheetId,
2007
- },
2008
- ],
2009
2455
  });
2010
2456
  }
2011
2457
  catch (e) {
@@ -2046,17 +2492,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
2046
2492
  exports.TimesheetRepository = void 0;
2047
2493
  const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
2048
2494
  const core_1 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
2049
- const timetracker_model_1 = __webpack_require__(/*! ../models/timetracker-model */ "./src/store/models/timetracker-model.ts");
2495
+ const timesheets_model_1 = __webpack_require__(/*! ../models/timesheets-model */ "./src/store/models/timesheets-model.ts");
2050
2496
  let TimesheetRepository = class TimesheetRepository {
2051
2497
  constructor(db, logger, broker) {
2052
2498
  this.broker = broker;
2053
2499
  this.logger = logger.child({ className: 'TimesheetRepository' });
2054
- this.timeTrackerModel = timetracker_model_1.TimeTrackerModelFunc(db);
2500
+ this.timesheetsModel = timesheets_model_1.TimesheetsModelFunc(db);
2055
2501
  }
2056
2502
  async getOrganizationTimesheets(orgId) {
2057
- const trackDoc = await this.timeTrackerModel.findOne({ orgId });
2058
- if (trackDoc && trackDoc.timesheets) {
2059
- return trackDoc.timesheets;
2503
+ const trackDoc = await this.timesheetsModel.find({ orgId });
2504
+ if (trackDoc && trackDoc) {
2505
+ return trackDoc;
2060
2506
  }
2061
2507
  return [];
2062
2508
  }
@@ -2066,7 +2512,7 @@ let TimesheetRepository = class TimesheetRepository {
2066
2512
  }
2067
2513
  async createTimesheet(userId, orgId, request) {
2068
2514
  try {
2069
- const response = await this.timeTrackerModel.update({ orgId }, { $push: { timesheets: request } }, { upsert: true });
2515
+ const response = await this.timesheetsModel.create(Object.assign({ orgId }, request));
2070
2516
  return true;
2071
2517
  }
2072
2518
  catch (err) {
@@ -2075,7 +2521,7 @@ let TimesheetRepository = class TimesheetRepository {
2075
2521
  }
2076
2522
  async updateTimesheet(orgId, sheetId, request) {
2077
2523
  try {
2078
- const response = await this.timeTrackerModel.update({ orgId, timesheets: { $elemMatch: { _id: sheetId } } }, { $set: { 'timesheets.$': request } });
2524
+ const response = await this.timesheetsModel.update({ orgId, _id: sheetId }, { $set: Object.assign({}, request) });
2079
2525
  return response;
2080
2526
  }
2081
2527
  catch (err) {
@@ -2084,12 +2530,12 @@ let TimesheetRepository = class TimesheetRepository {
2084
2530
  }
2085
2531
  async updateTimesheetStatus(orgId, sheetId, state) {
2086
2532
  try {
2087
- const response = await this.timeTrackerModel.update({
2533
+ const response = await this.timesheetsModel.update({
2088
2534
  orgId,
2089
- $elemMatch: { 'timesheets.id': sheetId },
2535
+ _id: sheetId,
2090
2536
  }, {
2091
2537
  $set: {
2092
- 'timesheets.$.status': state,
2538
+ 'status': state,
2093
2539
  },
2094
2540
  });
2095
2541
  return response;
@@ -2100,17 +2546,17 @@ let TimesheetRepository = class TimesheetRepository {
2100
2546
  }
2101
2547
  async removeTimesheet(userId, orgId, sheetId) {
2102
2548
  try {
2103
- await this.timeTrackerModel.update({
2104
- orgId,
2105
- }, {
2106
- $pull: { timesheets: { _id: sheetId } },
2107
- });
2549
+ await this.timesheetsModel.remove({ orgId, _id: sheetId });
2108
2550
  return true;
2109
2551
  }
2110
2552
  catch (err) {
2111
2553
  throw new Error(err.message);
2112
2554
  }
2113
2555
  }
2556
+ async removeTimeRecordIdFromTimesheet(recordId, orgId) {
2557
+ const res = await this.timesheetsModel.updateMany({ orgId, timeRecordsId: recordId }, { $pullAll: { timeRecordsId: [recordId] } });
2558
+ return true;
2559
+ }
2114
2560
  };
2115
2561
  TimesheetRepository = __decorate([
2116
2562
  inversify_1.injectable(),
@@ -2211,14 +2657,14 @@ module.exports = require("inversify");
2211
2657
 
2212
2658
  /***/ }),
2213
2659
 
2214
- /***/ "lodash":
2215
- /*!*************************!*\
2216
- !*** external "lodash" ***!
2217
- \*************************/
2660
+ /***/ "moleculer":
2661
+ /*!****************************!*\
2662
+ !*** external "moleculer" ***!
2663
+ \****************************/
2218
2664
  /*! no static exports found */
2219
2665
  /***/ (function(module, exports) {
2220
2666
 
2221
- module.exports = require("lodash");
2667
+ module.exports = require("moleculer");
2222
2668
 
2223
2669
  /***/ }),
2224
2670