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

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
@@ -104,6 +104,7 @@ const { str, num } = envalid;
104
104
  exports.config = envalid.cleanEnv(process.env, {
105
105
  MAIL_SEND_DEFAULT_EMAIL: str(),
106
106
  CLIENT_URL: str(),
107
+ GRAPHQL_URL: str(),
107
108
  });
108
109
 
109
110
 
@@ -126,7 +127,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
126
127
  o[k2] = m[k];
127
128
  }));
128
129
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
129
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
130
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
130
131
  };
131
132
  Object.defineProperty(exports, "__esModule", { value: true });
132
133
  __exportStar(__webpack_require__(/*! ./config */ "./src/config/config.ts"), exports);
@@ -199,7 +200,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
199
200
  o[k2] = m[k];
200
201
  }));
201
202
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
202
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
203
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
203
204
  };
204
205
  Object.defineProperty(exports, "__esModule", { value: true });
205
206
  __exportStar(__webpack_require__(/*! ./constants */ "./src/constants/constants.ts"), exports);
@@ -217,20 +218,32 @@ __exportStar(__webpack_require__(/*! ./constants */ "./src/constants/constants.t
217
218
  "use strict";
218
219
 
219
220
  Object.defineProperty(exports, "__esModule", { value: true });
220
- exports.timeTrackerModule = void 0;
221
+ exports.timeTrackerProxyModule = exports.timeTrackerModule = exports.timeTrackerMailModule = exports.timeTrackerStoreModule = void 0;
221
222
  const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
222
223
  const constants_1 = __webpack_require__(/*! ../constants */ "./src/constants/index.ts");
223
224
  const services_1 = __webpack_require__(/*! ../services */ "./src/services/index.ts");
224
225
  const repository_1 = __webpack_require__(/*! ../store/repository */ "./src/store/repository/index.ts");
225
226
  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();
227
+ const timeTrackerStoreModule = (setting) => new inversify_1.ContainerModule((bind) => {
228
+ bind(constants_1.TYPES.ITimeRecordRepository).to(repository_1.TimeRecordRepository).inSingletonScope();
229
+ bind(constants_1.TYPES.ITimesheetRepository).to(repository_1.TimesheetRepository).inSingletonScope();
230
+ });
231
+ exports.timeTrackerStoreModule = timeTrackerStoreModule;
232
+ const timeTrackerMailModule = (setting) => new inversify_1.ContainerModule((bind) => {
231
233
  bind('MongodbMigration').to(migration_1.TimesheetApprovalMailTemplate).whenTargetNamed(migration_1.TimesheetApprovalMailTemplate.name);
232
234
  bind('MongodbMigration').to(migration_1.TimesheetSubmitMailTemplate).whenTargetNamed(migration_1.TimesheetSubmitMailTemplate.name);
233
235
  });
236
+ exports.timeTrackerMailModule = timeTrackerMailModule;
237
+ const timeTrackerModule = (setting) => new inversify_1.ContainerModule((bind) => {
238
+ bind(constants_1.TYPES.ITimeRecordService).to(services_1.TimeRecordService).inSingletonScope();
239
+ bind(constants_1.TYPES.ITimesheetService).to(services_1.TimesheetService).inSingletonScope();
240
+ });
241
+ exports.timeTrackerModule = timeTrackerModule;
242
+ const timeTrackerProxyModule = (setting) => new inversify_1.ContainerModule((bind) => {
243
+ bind(constants_1.TYPES.ITimeRecordService).to(services_1.TimeRecordProxyService).inSingletonScope();
244
+ bind(constants_1.TYPES.ITimesheetService).to(services_1.TimesheetProxyService).inSingletonScope();
245
+ });
246
+ exports.timeTrackerProxyModule = timeTrackerProxyModule;
234
247
 
235
248
 
236
249
  /***/ }),
@@ -252,7 +265,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
252
265
  o[k2] = m[k];
253
266
  }));
254
267
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
255
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
268
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
256
269
  };
257
270
  Object.defineProperty(exports, "__esModule", { value: true });
258
271
  __exportStar(__webpack_require__(/*! ./containers */ "./src/containers/containers.ts"), exports);
@@ -277,7 +290,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
277
290
  o[k2] = m[k];
278
291
  }));
279
292
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
280
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
293
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
281
294
  };
282
295
  Object.defineProperty(exports, "__esModule", { value: true });
283
296
  const server_core_1 = __webpack_require__(/*! @common-stack/server-core */ "@common-stack/server-core");
@@ -285,6 +298,7 @@ const module_1 = __webpack_require__(/*! ./module */ "./src/module.ts");
285
298
  __exportStar(__webpack_require__(/*! ./constants */ "./src/constants/index.ts"), exports);
286
299
  __exportStar(__webpack_require__(/*! ./store/repository */ "./src/store/repository/index.ts"), exports);
287
300
  __exportStar(__webpack_require__(/*! ./store/models/timetracker-model */ "./src/store/models/timetracker-model.ts"), exports);
301
+ __exportStar(__webpack_require__(/*! ./containers */ "./src/containers/index.ts"), exports);
288
302
  exports.default = new server_core_1.Feature(module_1.default);
289
303
 
290
304
 
@@ -307,7 +321,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
307
321
  o[k2] = m[k];
308
322
  }));
309
323
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
310
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
324
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
311
325
  };
312
326
  Object.defineProperty(exports, "__esModule", { value: true });
313
327
  __exportStar(__webpack_require__(/*! ./service-initialization */ "./src/initialization/service-initialization.ts"), exports);
@@ -329,7 +343,7 @@ exports.mainLoadConfigurationPre = void 0;
329
343
  const core_1 = __webpack_require__(/*! @workbench-stack/core */ "@workbench-stack/core");
330
344
  const core_2 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
331
345
  const preferences_1 = __webpack_require__(/*! ../preferences */ "./src/preferences/index.ts");
332
- exports.mainLoadConfigurationPre = async (_, container) => {
346
+ const mainLoadConfigurationPre = async (_, container) => {
333
347
  const logger = container.get(core_2.CommonType.LOGGER);
334
348
  logger.info('PRESTART START: -- load TimeTrackerContribution to registry');
335
349
  const registry = container.get(core_1.TYPES.IRegistry);
@@ -337,6 +351,7 @@ exports.mainLoadConfigurationPre = async (_, container) => {
337
351
  configurationRegistry.registerConfiguration(preferences_1.TimeTrackerContribution);
338
352
  logger.info('PRESTART ENDS: -- load TimeTrackerContribution to registry');
339
353
  };
354
+ exports.mainLoadConfigurationPre = mainLoadConfigurationPre;
340
355
 
341
356
 
342
357
  /***/ }),
@@ -371,7 +386,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
371
386
  o[k2] = m[k];
372
387
  }));
373
388
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
374
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
389
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
375
390
  };
376
391
  Object.defineProperty(exports, "__esModule", { value: true });
377
392
  __exportStar(__webpack_require__(/*! ./mail-template */ "./src/migration/mail-template.ts"), exports);
@@ -507,6 +522,7 @@ const resolvers_1 = __webpack_require__(/*! ./resolvers */ "./src/resolvers/inde
507
522
  const constants_1 = __webpack_require__(/*! ./constants */ "./src/constants/index.ts");
508
523
  const initialization_1 = __webpack_require__(/*! ./initialization */ "./src/initialization/index.ts");
509
524
  const preferences_1 = __webpack_require__(/*! ./preferences */ "./src/preferences/index.ts");
525
+ const plugins_1 = __webpack_require__(/*! ./plugins */ "./src/plugins/index.ts");
510
526
  const createServiceFunc = (container) => ({
511
527
  timeRecordService: container.get(constants_1.TYPES.ITimeRecordService),
512
528
  timesheetService: container.get(constants_1.TYPES.ITimesheetService),
@@ -514,8 +530,10 @@ const createServiceFunc = (container) => ({
514
530
  exports.default = new server_core_1.Feature({
515
531
  schema: schema_1.schema,
516
532
  createResolversFunc: resolvers_1.resolvers,
517
- createContainerFunc: [containers_1.timeTrackerModule],
533
+ createContainerFunc: [containers_1.timeTrackerProxyModule, containers_1.timeTrackerMailModule],
534
+ createHemeraContainerFunc: [containers_1.timeTrackerModule, containers_1.timeTrackerStoreModule],
518
535
  createServiceFunc,
536
+ addBrokerClientServiceClass: [plugins_1.TimeRecordMoleculerService, plugins_1.TimesheetMoleculerService],
519
537
  preStartFunc: [initialization_1.mainLoadConfigurationPre],
520
538
  addPermissions: {
521
539
  createPermissions: [preferences_1.TimeTrackerRolesContribution],
@@ -526,6 +544,186 @@ exports.default = new server_core_1.Feature({
526
544
  });
527
545
 
528
546
 
547
+ /***/ }),
548
+
549
+ /***/ "./src/plugins/index.ts":
550
+ /*!******************************!*\
551
+ !*** ./src/plugins/index.ts ***!
552
+ \******************************/
553
+ /*! no static exports found */
554
+ /***/ (function(module, exports, __webpack_require__) {
555
+
556
+ "use strict";
557
+
558
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
559
+ if (k2 === undefined) k2 = k;
560
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
561
+ }) : (function(o, m, k, k2) {
562
+ if (k2 === undefined) k2 = k;
563
+ o[k2] = m[k];
564
+ }));
565
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
566
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
567
+ };
568
+ Object.defineProperty(exports, "__esModule", { value: true });
569
+ __exportStar(__webpack_require__(/*! ./timesheet-moleculer-service */ "./src/plugins/timesheet-moleculer-service.ts"), exports);
570
+ __exportStar(__webpack_require__(/*! ./timerecord-moleculer-service */ "./src/plugins/timerecord-moleculer-service.ts"), exports);
571
+
572
+
573
+ /***/ }),
574
+
575
+ /***/ "./src/plugins/timerecord-moleculer-service.ts":
576
+ /*!*****************************************************!*\
577
+ !*** ./src/plugins/timerecord-moleculer-service.ts ***!
578
+ \*****************************************************/
579
+ /*! no static exports found */
580
+ /***/ (function(module, exports, __webpack_require__) {
581
+
582
+ "use strict";
583
+
584
+ var __rest = (this && this.__rest) || function (s, e) {
585
+ var t = {};
586
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
587
+ t[p] = s[p];
588
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
589
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
590
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
591
+ t[p[i]] = s[p[i]];
592
+ }
593
+ return t;
594
+ };
595
+ Object.defineProperty(exports, "__esModule", { value: true });
596
+ exports.TimeRecordMoleculerService = void 0;
597
+ const moleculer_1 = __webpack_require__(/*! moleculer */ "moleculer");
598
+ const platform_server_1 = __webpack_require__(/*! @adminide-stack/platform-server */ "@adminide-stack/platform-server");
599
+ const config_1 = __webpack_require__(/*! ../config */ "./src/config/index.ts");
600
+ class TimeRecordMoleculerService extends moleculer_1.Service {
601
+ constructor(broker, _a) {
602
+ var { container } = _a, settings = __rest(_a, ["container"]);
603
+ super(broker);
604
+ const topic = "TimeRecord" /* TimeRecord */;
605
+ this.parseServiceSchema({
606
+ name: topic,
607
+ mixins: [platform_server_1.ApolloClientMixin],
608
+ settings: {
609
+ apolloClient: {
610
+ serverUri: config_1.config.GRAPHQL_URL,
611
+ },
612
+ },
613
+ actions: {
614
+ ["getTimeRecords" /* getTimeRecords */]: {
615
+ handler: async (ctx) => this.timerecordService.getTimeRecords(ctx.params.orgId, ctx.params.userId),
616
+ },
617
+ ["getDurationTimeRecords" /* getDurationTimeRecords */]: {
618
+ handler: async (ctx) => this.timerecordService.getDurationTimeRecords(ctx.params.orgId, ctx.params.startTime, ctx.params.endTime, ctx.params.userId),
619
+ },
620
+ ["getPlayingTimeRecord" /* getPlayingTimeRecord */]: {
621
+ handler: async (ctx) => this.timerecordService.getPlayingTimeRecord(ctx.params.userId, ctx.params.orgId),
622
+ },
623
+ ["createTimeRecord" /* createTimeRecord */]: {
624
+ handler: async (ctx) => this.timerecordService.createTimeRecord(ctx.params.userId, ctx.params.orgId, ctx.params.request),
625
+ },
626
+ ["updateTimeRecord" /* updateTimeRecord */]: {
627
+ handler: async (ctx) => this.timerecordService.updateTimeRecord(ctx.params.userId, ctx.params.orgId, ctx.params.recordId, ctx.params.request),
628
+ },
629
+ ["removeTimeRecord" /* removeTimeRecord */]: {
630
+ handler: async (ctx) => this.timerecordService.removeTimeRecord(ctx.params.userId, ctx.params.orgId, ctx.params.recordId),
631
+ },
632
+ ["removeDurationTimeRecords" /* removeDurationTimeRecords */]: {
633
+ handler: async (ctx) => this.timerecordService.removeDurationTimeRecords(ctx.params.userId, ctx.params.orgId, ctx.params.startTime, ctx.params.endTime, ctx.params.projectId),
634
+ },
635
+ ["approveTimeRecords" /* approveTimeRecords */]: {
636
+ handler: async (ctx) => this.timerecordService.approveTimeRecords(ctx.params.orgId, ctx.params.sheetId, ctx.params.timeRecordsId),
637
+ },
638
+ ["disapproveTimeRecords" /* disapproveTimeRecords */]: {
639
+ handler: async (ctx) => this.timerecordService.disapproveTimeRecords(ctx.params.orgId, ctx.params.sheetId),
640
+ },
641
+ },
642
+ });
643
+ }
644
+ }
645
+ exports.TimeRecordMoleculerService = TimeRecordMoleculerService;
646
+
647
+
648
+ /***/ }),
649
+
650
+ /***/ "./src/plugins/timesheet-moleculer-service.ts":
651
+ /*!****************************************************!*\
652
+ !*** ./src/plugins/timesheet-moleculer-service.ts ***!
653
+ \****************************************************/
654
+ /*! no static exports found */
655
+ /***/ (function(module, exports, __webpack_require__) {
656
+
657
+ "use strict";
658
+
659
+ var __rest = (this && this.__rest) || function (s, e) {
660
+ var t = {};
661
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
662
+ t[p] = s[p];
663
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
664
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
665
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
666
+ t[p[i]] = s[p[i]];
667
+ }
668
+ return t;
669
+ };
670
+ Object.defineProperty(exports, "__esModule", { value: true });
671
+ exports.TimesheetMoleculerService = void 0;
672
+ const moleculer_1 = __webpack_require__(/*! moleculer */ "moleculer");
673
+ const platform_server_1 = __webpack_require__(/*! @adminide-stack/platform-server */ "@adminide-stack/platform-server");
674
+ const core_1 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
675
+ const constants_1 = __webpack_require__(/*! ../constants */ "./src/constants/index.ts");
676
+ const config_1 = __webpack_require__(/*! ../config */ "./src/config/index.ts");
677
+ class TimesheetMoleculerService extends moleculer_1.Service {
678
+ constructor(broker, _a) {
679
+ var { container } = _a, settings = __rest(_a, ["container"]);
680
+ super(broker);
681
+ this.container = container;
682
+ const topic = "Timesheet" /* Timesheet */;
683
+ this.parseServiceSchema({
684
+ name: topic,
685
+ mixins: [platform_server_1.ApolloClientMixin],
686
+ settings: {
687
+ apolloClient: {
688
+ serverUri: config_1.config.GRAPHQL_URL,
689
+ },
690
+ },
691
+ events: {
692
+ ["onRemoveTimeRecordIdFromTimesheet" /* onRemoveTimeRecordIdFromTimesheet */]: {
693
+ handler: async (ctx) => this.timesheetService.removeTimeRecordIdFromTimesheet(ctx.params.recordId, ctx.params.orgId),
694
+ },
695
+ },
696
+ actions: {
697
+ ["getTimesheets" /* getTimesheets */]: {
698
+ handler: async (ctx) => this.timesheetService.getTimesheets(ctx.params.orgId),
699
+ },
700
+ ["getTimesheetsWithTotalHours" /* getTimesheetsWithTotalHours */]: {
701
+ handler: async (ctx) => this.timesheetService.getTimesheetsWithTotalHours(ctx.params.orgId, ctx.params.userId),
702
+ },
703
+ ["getDurationTimesheets" /* getDurationTimesheets */]: {
704
+ handler: async (ctx) => this.timesheetService.getDurationTimesheets(ctx.params.orgId, ctx.params.start, ctx.params.end),
705
+ },
706
+ ["createTimesheet" /* createTimesheet */]: {
707
+ handler: async (ctx) => this.timesheetService.createTimesheet(ctx.params.userId, ctx.params.orgId, ctx.params.request),
708
+ },
709
+ ["updateTimesheet" /* updateTimesheet */]: {
710
+ handler: async (ctx) => this.timesheetService.updateTimesheet(ctx.params.userId, ctx.params.orgId, ctx.params.sheetId, ctx.params.request, ctx.params.userContext),
711
+ },
712
+ ["removeTimesheet" /* removeTimesheet */]: {
713
+ handler: async (ctx) => this.timesheetService.removeTimesheet(ctx.params.userId, ctx.params.orgId, ctx.params.sheetId),
714
+ },
715
+ ["updateTimesheetStatus" /* updateTimesheetStatus */]: {
716
+ handler: async (ctx) => this.timesheetService.updateTimesheetStatus(ctx.params.orgId, ctx.params.sheetId, ctx.params.state),
717
+ },
718
+ },
719
+ });
720
+ this.container.bind(core_1.ClientTypes.ApolloClient).toConstantValue(this.apolloClient);
721
+ this.timesheetService = this.container.get(constants_1.TYPES.ITimesheetService);
722
+ }
723
+ }
724
+ exports.TimesheetMoleculerService = TimesheetMoleculerService;
725
+
726
+
529
727
  /***/ }),
530
728
 
531
729
  /***/ "./src/preferences/index.ts":
@@ -545,7 +743,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
545
743
  o[k2] = m[k];
546
744
  }));
547
745
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
548
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
746
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
549
747
  };
550
748
  Object.defineProperty(exports, "__esModule", { value: true });
551
749
  __exportStar(__webpack_require__(/*! ./settings */ "./src/preferences/settings/index.ts"), exports);
@@ -571,7 +769,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
571
769
  o[k2] = m[k];
572
770
  }));
573
771
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
574
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
772
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
575
773
  };
576
774
  Object.defineProperty(exports, "__esModule", { value: true });
577
775
  __exportStar(__webpack_require__(/*! ./timing-permissions-contribution */ "./src/preferences/permissions/timing-permissions-contribution.ts"), exports);
@@ -1219,7 +1417,7 @@ exports.resolvers = [timerecord_resolver_1.resolver, timesheet_resolver_1.resolv
1219
1417
  Object.defineProperty(exports, "__esModule", { value: true });
1220
1418
  exports.resolver = void 0;
1221
1419
  const graphql_subscriptions_1 = __webpack_require__(/*! graphql-subscriptions */ "graphql-subscriptions");
1222
- exports.resolver = (options) => ({
1420
+ const resolver = (options) => ({
1223
1421
  TimeRecord: {
1224
1422
  id: (root) => root.id || root._id,
1225
1423
  },
@@ -1274,6 +1472,7 @@ exports.resolver = (options) => ({
1274
1472
  },
1275
1473
  },
1276
1474
  });
1475
+ exports.resolver = resolver;
1277
1476
 
1278
1477
 
1279
1478
  /***/ }),
@@ -1290,7 +1489,7 @@ exports.resolver = (options) => ({
1290
1489
  Object.defineProperty(exports, "__esModule", { value: true });
1291
1490
  exports.resolver = void 0;
1292
1491
  /* eslint-disable no-underscore-dangle */
1293
- exports.resolver = (options) => ({
1492
+ const resolver = (options) => ({
1294
1493
  Query: {
1295
1494
  getTimesheets: (root, args, { timesheetService, userContext }) => {
1296
1495
  options.logger.trace('(Query.getTimeSheets) args %j', args);
@@ -1322,6 +1521,7 @@ exports.resolver = (options) => ({
1322
1521
  },
1323
1522
  },
1324
1523
  });
1524
+ exports.resolver = resolver;
1325
1525
 
1326
1526
 
1327
1527
  /***/ }),
@@ -1369,7 +1569,7 @@ exports.schema = schema;
1369
1569
 
1370
1570
  "use strict";
1371
1571
  __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");
1572
+ /* 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
1573
 
1374
1574
  /***/ }),
1375
1575
 
@@ -1382,7 +1582,7 @@ __webpack_require__.r(__webpack_exports__);
1382
1582
 
1383
1583
  "use strict";
1384
1584
  __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");
1585
+ /* 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
1586
 
1387
1587
  /***/ }),
1388
1588
 
@@ -1416,11 +1616,88 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
1416
1616
  o[k2] = m[k];
1417
1617
  }));
1418
1618
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
1419
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
1619
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
1420
1620
  };
1421
1621
  Object.defineProperty(exports, "__esModule", { value: true });
1422
1622
  __exportStar(__webpack_require__(/*! ./timesheet-service */ "./src/services/timesheet-service.ts"), exports);
1423
1623
  __exportStar(__webpack_require__(/*! ./timerecord-service */ "./src/services/timerecord-service.ts"), exports);
1624
+ __exportStar(__webpack_require__(/*! ./timerecord-proxy-service */ "./src/services/timerecord-proxy-service.ts"), exports);
1625
+ __exportStar(__webpack_require__(/*! ./timesheet-proxy-service */ "./src/services/timesheet-proxy-service.ts"), exports);
1626
+
1627
+
1628
+ /***/ }),
1629
+
1630
+ /***/ "./src/services/timerecord-proxy-service.ts":
1631
+ /*!**************************************************!*\
1632
+ !*** ./src/services/timerecord-proxy-service.ts ***!
1633
+ \**************************************************/
1634
+ /*! no static exports found */
1635
+ /***/ (function(module, exports, __webpack_require__) {
1636
+
1637
+ "use strict";
1638
+
1639
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
1640
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1641
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1642
+ 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;
1643
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1644
+ };
1645
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
1646
+ return function (target, key) { decorator(target, key, paramIndex); }
1647
+ };
1648
+ Object.defineProperty(exports, "__esModule", { value: true });
1649
+ exports.TimeRecordProxyService = void 0;
1650
+ const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
1651
+ const core_1 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
1652
+ let TimeRecordProxyService = class TimeRecordProxyService {
1653
+ constructor(broker, logger) {
1654
+ this.broker = broker;
1655
+ this.topic = "TimeRecord" /* TimeRecord */;
1656
+ this.logger = logger.child({ className: 'TimeRecordProxyService' });
1657
+ }
1658
+ approveTimeRecords(orgId, sheetId, timeRecordsId) {
1659
+ return this.callAction("approveTimeRecords" /* approveTimeRecords */, { orgId, sheetId, timeRecordsId });
1660
+ }
1661
+ createTimeRecord(userId, orgId, request) {
1662
+ return this.callAction("createTimeRecord" /* createTimeRecord */, { userId, orgId, request });
1663
+ }
1664
+ disapproveTimeRecords(orgId, sheetId) {
1665
+ return this.callAction("disapproveTimeRecords" /* disapproveTimeRecords */, { orgId, sheetId });
1666
+ }
1667
+ getDurationTimeRecords(orgId, startTime, endTime, userId) {
1668
+ return this.callAction("getDurationTimeRecords" /* getDurationTimeRecords */, { orgId, startTime, endTime, userId });
1669
+ }
1670
+ getPlayingTimeRecord(userId, orgId) {
1671
+ return this.callAction("getPlayingTimeRecord" /* getPlayingTimeRecord */, { userId, orgId });
1672
+ }
1673
+ getTimeRecords(orgId, userId) {
1674
+ return this.callAction("getTimeRecords" /* getTimeRecords */, { orgId, userId });
1675
+ }
1676
+ removeDurationTimeRecords(userId, orgId, startTime, endTime, projectId) {
1677
+ return this.callAction("removeDurationTimeRecords" /* removeDurationTimeRecords */, {
1678
+ userId,
1679
+ orgId,
1680
+ startTime,
1681
+ endTime,
1682
+ projectId,
1683
+ });
1684
+ }
1685
+ removeTimeRecord(userId, orgId, recordId) {
1686
+ return this.callAction("removeTimeRecord" /* removeTimeRecord */, { userId, orgId, recordId });
1687
+ }
1688
+ updateTimeRecord(userId, orgId, recordId, request) {
1689
+ return this.callAction("updateTimeRecord" /* updateTimeRecord */, { userId, orgId, recordId, request });
1690
+ }
1691
+ async callAction(command, params) {
1692
+ return this.broker.call(`${this.topic}.${command}`, params);
1693
+ }
1694
+ };
1695
+ TimeRecordProxyService = __decorate([
1696
+ inversify_1.injectable(),
1697
+ __param(0, inversify_1.inject(core_1.CommonType.MOLECULER_BROKER)),
1698
+ __param(1, inversify_1.inject('Logger'))
1699
+ ], TimeRecordProxyService);
1700
+ exports.TimeRecordProxyService = TimeRecordProxyService;
1424
1701
 
1425
1702
 
1426
1703
  /***/ }),
@@ -1446,13 +1723,15 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
1446
1723
  Object.defineProperty(exports, "__esModule", { value: true });
1447
1724
  exports.TimeRecordService = void 0;
1448
1725
  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");
1726
+ const core_1 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
1451
1727
  const constants_1 = __webpack_require__(/*! ../constants */ "./src/constants/index.ts");
1728
+ const moment = __webpack_require__(/*! moment */ "moment");
1452
1729
  let TimeRecordService = class TimeRecordService {
1453
- constructor(timeRecordRepository, preferencesService, broker, pubsub, logger) {
1730
+ constructor(timeRecordRepository,
1731
+ // @inject(ServerTypes.IPreferenceEditorService)
1732
+ // private preferencesService: IPreferencesService,
1733
+ broker, pubsub, logger) {
1454
1734
  this.timeRecordRepository = timeRecordRepository;
1455
- this.preferencesService = preferencesService;
1456
1735
  this.broker = broker;
1457
1736
  this.pubsub = pubsub;
1458
1737
  this.logger = logger;
@@ -1461,7 +1740,7 @@ let TimeRecordService = class TimeRecordService {
1461
1740
  return this.timeRecordRepository.getTimeRecords(orgId, userId);
1462
1741
  }
1463
1742
  async getDurationTimeRecords(orgId, startTime, endTime, userId) {
1464
- const timeRecords = await this.timeRecordRepository.getTimeRecords(orgId, userId, startTime, endTime);
1743
+ const timeRecords = await this.timeRecordRepository.getTimeRecords(orgId, userId, startTime && moment(startTime).toDate(), endTime && moment(endTime).toDate());
1465
1744
  return timeRecords.filter((r) => r.endTime !== null);
1466
1745
  }
1467
1746
  async getPlayingTimeRecord(userId, orgId) {
@@ -1469,13 +1748,12 @@ let TimeRecordService = class TimeRecordService {
1469
1748
  }
1470
1749
  async createTimeRecord(userId, orgId, request) {
1471
1750
  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) {
1751
+ if (data) {
1474
1752
  const record = {
1475
1753
  orgName: data.orgId,
1476
- userId: timeRecord.userId,
1754
+ userId: data.userId,
1477
1755
  mutation: "TimeRecordCreated" /* TimeRecordCreated */,
1478
- timeRecord,
1756
+ timeRecord: data,
1479
1757
  };
1480
1758
  this.pubsub.publish("TimeRecordCreated" /* TimeRecordCreated */, { SubscribeToTimeTracker: record });
1481
1759
  }
@@ -1483,13 +1761,12 @@ let TimeRecordService = class TimeRecordService {
1483
1761
  }
1484
1762
  async updateTimeRecord(userId, orgId, recordId, request) {
1485
1763
  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) {
1764
+ if (data) {
1488
1765
  const record = {
1489
1766
  orgName: data.orgId,
1490
- userId: timeRecord.userId,
1767
+ userId: data.userId,
1491
1768
  mutation: "TimeRecordUpdated" /* TimeRecordUpdated */,
1492
- timeRecord,
1769
+ timeRecord: data,
1493
1770
  };
1494
1771
  this.pubsub.publish("TimeRecordUpdated" /* TimeRecordUpdated */, { SubscribeToTimeTracker: record });
1495
1772
  }
@@ -1501,16 +1778,43 @@ let TimeRecordService = class TimeRecordService {
1501
1778
  orgName: data.orgId,
1502
1779
  userId: data.userId,
1503
1780
  mutation: "TimeRecordDeleted" /* TimeRecordDeleted */,
1504
- timeRecord: data === null || data === void 0 ? void 0 : data.timeRecords[0],
1781
+ timeRecord: data,
1505
1782
  };
1783
+ // remove record activities
1784
+ await this.broker.broadcast("onRemoveTimeRecord" /* onRemoveTimeRecord */, { userId, orgId, recordId }, [
1785
+ "TimeRecord" /* TimeRecord */,
1786
+ "Timesheet" /* Timesheet */,
1787
+ "Activity" /* Activity */,
1788
+ ]);
1789
+ //remove record id from timesheet
1790
+ await this.broker.broadcast("onRemoveTimeRecordIdFromTimesheet" /* onRemoveTimeRecordIdFromTimesheet */, { recordId, orgId }, [
1791
+ "TimeRecord" /* TimeRecord */,
1792
+ "Timesheet" /* Timesheet */,
1793
+ ]);
1506
1794
  this.pubsub.publish("TimeRecordDeleted" /* TimeRecordDeleted */, { SubscribeToTimeTracker: record });
1507
1795
  return true;
1508
1796
  }
1509
1797
  async removeDurationTimeRecords(userId, orgId, startTime, endTime, projectId) {
1510
- return this.timeRecordRepository.removeDurationTimeRecords(userId, orgId, startTime, endTime, projectId);
1798
+ const records = await this.timeRecordRepository.getTimeRecords(orgId, userId);
1799
+ if (records && records.length > 0) {
1800
+ const timeRecords = records.filter((tr) => tr.startTime > moment(startTime) && tr.startTime < moment(endTime) && tr.projectId === projectId);
1801
+ for (const record of timeRecords) {
1802
+ await this.broker.broadcast("onRemoveTimeRecord" /* onRemoveTimeRecord */, { userId, orgId, recordId: record._id }, [
1803
+ "TimeRecord" /* TimeRecord */,
1804
+ "Timesheet" /* Timesheet */,
1805
+ "Activity" /* Activity */,
1806
+ ]);
1807
+ //remove record id from timesheet
1808
+ await this.broker.broadcast("onRemoveTimeRecordIdFromTimesheet" /* onRemoveTimeRecordIdFromTimesheet */, { recordId: record._id, orgId }, [
1809
+ "TimeRecord" /* TimeRecord */,
1810
+ "Timesheet" /* Timesheet */,
1811
+ ]);
1812
+ }
1813
+ }
1814
+ return this.timeRecordRepository.removeDurationTimeRecords(userId, orgId, moment(startTime), moment(endTime), projectId);
1511
1815
  }
1512
- async approveTimeRecords(orgId, sheetId, startDate, endDate) {
1513
- this.timeRecordRepository.approveTimeRecords(orgId, sheetId, startDate, endDate);
1816
+ async approveTimeRecords(orgId, sheetId, timeRecordsId) {
1817
+ this.timeRecordRepository.approveTimeRecords(orgId, sheetId, timeRecordsId);
1514
1818
  }
1515
1819
  async disapproveTimeRecords(orgId, sheetId) {
1516
1820
  this.timeRecordRepository.disapproveTimeRecords(orgId, sheetId);
@@ -1519,14 +1823,79 @@ let TimeRecordService = class TimeRecordService {
1519
1823
  TimeRecordService = __decorate([
1520
1824
  inversify_1.injectable(),
1521
1825
  __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'))
1826
+ __param(1, inversify_1.inject(core_1.CommonType.MOLECULER_BROKER)),
1827
+ __param(2, inversify_1.inject('PubSub')),
1828
+ __param(3, inversify_1.inject('Logger'))
1526
1829
  ], TimeRecordService);
1527
1830
  exports.TimeRecordService = TimeRecordService;
1528
1831
 
1529
1832
 
1833
+ /***/ }),
1834
+
1835
+ /***/ "./src/services/timesheet-proxy-service.ts":
1836
+ /*!*************************************************!*\
1837
+ !*** ./src/services/timesheet-proxy-service.ts ***!
1838
+ \*************************************************/
1839
+ /*! no static exports found */
1840
+ /***/ (function(module, exports, __webpack_require__) {
1841
+
1842
+ "use strict";
1843
+
1844
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
1845
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1846
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1847
+ 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;
1848
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1849
+ };
1850
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
1851
+ return function (target, key) { decorator(target, key, paramIndex); }
1852
+ };
1853
+ Object.defineProperty(exports, "__esModule", { value: true });
1854
+ exports.TimesheetProxyService = void 0;
1855
+ const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
1856
+ const core_1 = __webpack_require__(/*! @common-stack/core */ "@common-stack/core");
1857
+ let TimesheetProxyService = class TimesheetProxyService {
1858
+ constructor(broker, logger) {
1859
+ this.broker = broker;
1860
+ this.topic = "Timesheet" /* Timesheet */;
1861
+ this.logger = logger.child({ className: 'TimesheetProxyService' });
1862
+ }
1863
+ createTimesheet(userId, orgId, request) {
1864
+ return this.callAction("createTimesheet" /* createTimesheet */, { userId, orgId, request });
1865
+ }
1866
+ getDurationTimesheets(orgId, start, end) {
1867
+ return this.callAction("getDurationTimesheets" /* getDurationTimesheets */, { orgId, start, end });
1868
+ }
1869
+ getTimesheets(orgId) {
1870
+ return this.callAction("getTimesheets" /* getTimesheets */, { orgId });
1871
+ }
1872
+ getTimesheetsWithTotalHours(orgId, userId) {
1873
+ return this.callAction("getTimesheetsWithTotalHours" /* getTimesheetsWithTotalHours */, { orgId, userId });
1874
+ }
1875
+ removeTimesheet(userId, orgId, sheetId) {
1876
+ return this.callAction("removeTimesheet" /* removeTimesheet */, { userId, orgId, sheetId });
1877
+ }
1878
+ removeTimeRecordIdFromTimesheet(recordId, orgId) {
1879
+ return this.callAction("removeTimeRecordIdFromTimesheet" /* removeTimeRecordIdFromTimesheet */, { recordId, orgId });
1880
+ }
1881
+ updateTimesheet(userId, orgId, sheetId, request, userContext) {
1882
+ return this.callAction("updateTimesheet" /* updateTimesheet */, { userId, orgId, sheetId, request });
1883
+ }
1884
+ updateTimesheetStatus(orgId, sheetId, state) {
1885
+ return this.callAction("updateTimesheetStatus" /* updateTimesheetStatus */, { orgId, sheetId, state });
1886
+ }
1887
+ async callAction(command, params) {
1888
+ return this.broker.call(`${this.topic}.${command}`, params);
1889
+ }
1890
+ };
1891
+ TimesheetProxyService = __decorate([
1892
+ inversify_1.injectable(),
1893
+ __param(0, inversify_1.inject(core_1.CommonType.MOLECULER_BROKER)),
1894
+ __param(1, inversify_1.inject('Logger'))
1895
+ ], TimesheetProxyService);
1896
+ exports.TimesheetProxyService = TimesheetProxyService;
1897
+
1898
+
1530
1899
  /***/ }),
1531
1900
 
1532
1901
  /***/ "./src/services/timesheet-service.ts":
@@ -1573,7 +1942,7 @@ let TimesheetService = class TimesheetService {
1573
1942
  const timeRecords = await this.timeRecordRepository.getTimeRecords(orgId, userId);
1574
1943
  return timesheets.map((timesheet) => {
1575
1944
  const sheetTotalDuration = timeRecords
1576
- .filter((tr) => tr.userId === timesheet.userId && tr.startTime > timesheet.startDate && tr.endTime < timesheet.endDate)
1945
+ .filter((tr) => { var _a; return (_a = timesheet.timeRecordsId) === null || _a === void 0 ? void 0 : _a.includes(tr._id.toString()); })
1577
1946
  .reduce((duration, tr) => duration + Math.floor((moment(tr.endTime).valueOf() - moment(tr.startTime).valueOf()) / 1000), 0);
1578
1947
  return {
1579
1948
  id: timesheet.id,
@@ -1587,6 +1956,7 @@ let TimesheetService = class TimesheetService {
1587
1956
  submittedOn: timesheet.submittedOn,
1588
1957
  updatedBy: timesheet.updatedBy,
1589
1958
  updatedOn: timesheet.updatedOn,
1959
+ timeRecordsId: timesheet.timeRecordsId,
1590
1960
  totalDuration: sheetTotalDuration,
1591
1961
  };
1592
1962
  });
@@ -1604,21 +1974,31 @@ let TimesheetService = class TimesheetService {
1604
1974
  await this.timesheetRepository.updateTimesheet(orgId, sheetId, request);
1605
1975
  if (request.state === "APPROVED" /* APPROVED */) {
1606
1976
  // approve time records from startDate to endDate
1607
- this.timeRecordService.approveTimeRecords(orgId, sheetId, request.startDate, request.endDate);
1977
+ this.timeRecordService.approveTimeRecords(orgId, sheetId, request.timeRecordsId);
1608
1978
  }
1609
1979
  else if (request.state === "DENYED" /* DENYED */) {
1610
1980
  // approve time records from startDate to endDate
1611
1981
  this.timeRecordService.disapproveTimeRecords(orgId, sheetId);
1612
1982
  }
1613
1983
  const resourceUri = core_1.generateOrgUri(orgId, "settings" /* settings */);
1614
- const { settings } = (await this.preferencesService.viewerSettings({
1615
- target: 5 /* ORGANIZATION_RESOURCE */,
1984
+ const settings = (await this.preferencesService.viewerSettings({
1985
+ target: 4 /* ORGANIZATION */,
1616
1986
  settingsResource: resourceUri,
1987
+ }, {
1988
+ fragmentName: 'AccountBillingPreferences',
1989
+ fragmentDoc: `fragment AccountBillingPreferences on Preferences {
1990
+ account {
1991
+ notification {
1992
+ primaryEmail
1993
+ billing
1994
+ }
1995
+ }
1996
+ }`
1617
1997
  }));
1618
1998
  if (request.state === "APPROVED" /* APPROVED */ &&
1619
1999
  settings.timetracker.notifications.approvalNotifications &&
1620
2000
  settings.timetracker.notifications.enableTimetrackerNotifications) {
1621
- const mailTopic = 'Timsheet approved';
2001
+ const mailTopic = 'Timesheet approved';
1622
2002
  const mailTo = userContext.emailId;
1623
2003
  const mailFrom = config_1.config.MAIL_SEND_DEFAULT_EMAIL;
1624
2004
  const templateId = constants_1.EmailTemplateCodes.TIMESHEET_APPROVAL;
@@ -1634,7 +2014,7 @@ let TimesheetService = class TimesheetService {
1634
2014
  if (request.state === "SUBMITTED" /* SUBMITTED */ &&
1635
2015
  settings.timetracker.notifications.submitNotifications &&
1636
2016
  settings.timetracker.notifications.enableTimetrackerNotifications) {
1637
- const mailTopic = 'Timsheet submitted';
2017
+ const mailTopic = 'Timesheet submitted';
1638
2018
  const mailTo = userContext.emailId;
1639
2019
  const mailFrom = config_1.config.MAIL_SEND_DEFAULT_EMAIL;
1640
2020
  const templateId = constants_1.EmailTemplateCodes.SUBMIT_TIME;
@@ -1681,6 +2061,9 @@ let TimesheetService = class TimesheetService {
1681
2061
  },
1682
2062
  }, "MailService" /* MailService */);
1683
2063
  }
2064
+ async removeTimeRecordIdFromTimesheet(recordId, orgId) {
2065
+ return await this.timesheetRepository.removeTimeRecordIdFromTimesheet(recordId, orgId);
2066
+ }
1684
2067
  async callAction(command, params, topic, opts) {
1685
2068
  return this.broker.call(`${topic}.${command}@${this.settings.adminApiNamespace}`, params, opts);
1686
2069
  }
@@ -1699,6 +2082,108 @@ TimesheetService = __decorate([
1699
2082
  exports.TimesheetService = TimesheetService;
1700
2083
 
1701
2084
 
2085
+ /***/ }),
2086
+
2087
+ /***/ "./src/store/models/timerecords-model.ts":
2088
+ /*!***********************************************!*\
2089
+ !*** ./src/store/models/timerecords-model.ts ***!
2090
+ \***********************************************/
2091
+ /*! no static exports found */
2092
+ /***/ (function(module, exports, __webpack_require__) {
2093
+
2094
+ "use strict";
2095
+
2096
+ Object.defineProperty(exports, "__esModule", { value: true });
2097
+ exports.TimeRecordsModelFunc = void 0;
2098
+ const mongoose_1 = __webpack_require__(/*! mongoose */ "mongoose");
2099
+ var PauseStatusDescription;
2100
+ (function (PauseStatusDescription) {
2101
+ PauseStatusDescription["BY_USER"] = "BY_USER";
2102
+ PauseStatusDescription["DUE_TO_INACTIVITY"] = "DUE_TO_INACTIVITY";
2103
+ })(PauseStatusDescription || (PauseStatusDescription = {}));
2104
+ const PauseStatusSchema = new mongoose_1.Schema({
2105
+ pausedTime: { type: Date },
2106
+ restartTime: { type: Date },
2107
+ status: { type: PauseStatusDescription },
2108
+ });
2109
+ // ===> TimeRecord
2110
+ const TimeRecordSchema = new mongoose_1.Schema({
2111
+ orgId: { type: String, index: true },
2112
+ userId: { type: String, index: true },
2113
+ startTime: { type: Date, index: true },
2114
+ endTime: { type: Date, default: null, index: true },
2115
+ taskName: { type: String },
2116
+ description: { type: String },
2117
+ taskId: { type: String },
2118
+ tags: { type: [String] },
2119
+ isBillable: { type: Boolean },
2120
+ projectId: { type: String },
2121
+ timesheetId: { type: String, index: true },
2122
+ isPause: { type: Boolean, default: false },
2123
+ isTimeout: { type: Boolean, default: false },
2124
+ pauseStatus: { type: [PauseStatusSchema] }
2125
+ });
2126
+ TimeRecordSchema.index({ endTime: 1, startTime: 1, userId: 1 });
2127
+ TimeRecordSchema.virtual('id').get(function () {
2128
+ return this._id.toHexString();
2129
+ });
2130
+ TimeRecordSchema.set('toJSON', {
2131
+ virtuals: true,
2132
+ });
2133
+ TimeRecordSchema.set('toObject', { virtuals: true });
2134
+ const TimeRecordsModelFunc = (db) => db.model('timerecords', TimeRecordSchema);
2135
+ exports.TimeRecordsModelFunc = TimeRecordsModelFunc;
2136
+
2137
+
2138
+ /***/ }),
2139
+
2140
+ /***/ "./src/store/models/timesheets-model.ts":
2141
+ /*!**********************************************!*\
2142
+ !*** ./src/store/models/timesheets-model.ts ***!
2143
+ \**********************************************/
2144
+ /*! no static exports found */
2145
+ /***/ (function(module, exports, __webpack_require__) {
2146
+
2147
+ "use strict";
2148
+
2149
+ Object.defineProperty(exports, "__esModule", { value: true });
2150
+ exports.TimesheetsModelFunc = void 0;
2151
+ const mongoose_1 = __webpack_require__(/*! mongoose */ "mongoose");
2152
+ var TimesheetState;
2153
+ (function (TimesheetState) {
2154
+ TimesheetState[TimesheetState["OPEN"] = 0] = "OPEN";
2155
+ TimesheetState[TimesheetState["APPROVED_PENDING"] = 1] = "APPROVED_PENDING";
2156
+ TimesheetState[TimesheetState["APPROVED"] = 2] = "APPROVED";
2157
+ TimesheetState[TimesheetState["APPROVED_FINALIZED"] = 3] = "APPROVED_FINALIZED";
2158
+ TimesheetState[TimesheetState["DENYED"] = 4] = "DENYED";
2159
+ TimesheetState[TimesheetState["SUBMITTED"] = 5] = "SUBMITTED";
2160
+ TimesheetState[TimesheetState["DENYED_FINALIZED"] = 6] = "DENYED_FINALIZED";
2161
+ })(TimesheetState || (TimesheetState = {}));
2162
+ // ===> Timesheet
2163
+ const TimesheetSchema = new mongoose_1.Schema({
2164
+ orgId: { type: String, index: true },
2165
+ userId: { type: String, index: true },
2166
+ startDate: { type: Date },
2167
+ endDate: { type: Date },
2168
+ state: { type: TimesheetState },
2169
+ submittedOn: { type: Date },
2170
+ approvedOn: { type: Date },
2171
+ approvedBy: { type: String },
2172
+ updatedBy: { type: String },
2173
+ updatedOn: { type: Date },
2174
+ timeRecordsId: { type: [String] },
2175
+ });
2176
+ TimesheetSchema.virtual('id').get(function () {
2177
+ return this._id.toHexString();
2178
+ });
2179
+ TimesheetSchema.set('toJSON', {
2180
+ virtuals: true,
2181
+ });
2182
+ TimesheetSchema.set('toObject', { virtuals: true });
2183
+ const TimesheetsModelFunc = (db) => db.model('timesheets', TimesheetSchema);
2184
+ exports.TimesheetsModelFunc = TimesheetsModelFunc;
2185
+
2186
+
1702
2187
  /***/ }),
1703
2188
 
1704
2189
  /***/ "./src/store/models/timetracker-model.ts":
@@ -1750,7 +2235,7 @@ const TimeRecordSchema = new mongoose_1.Schema({
1750
2235
  activities: [TimeActivitySchema],
1751
2236
  isPause: { type: Boolean, default: false },
1752
2237
  isTimeout: { type: Boolean, default: false },
1753
- pauseStatus: { type: [PauseStatusSchema] },
2238
+ pauseStatus: { type: [PauseStatusSchema] }
1754
2239
  });
1755
2240
  TimeRecordSchema.index({ endTime: 1, startTime: 1, userId: 1 });
1756
2241
  // ===> Timesheet
@@ -1764,6 +2249,7 @@ const TimesheetSchema = new mongoose_1.Schema({
1764
2249
  approvedBy: { type: String },
1765
2250
  updatedBy: { type: String },
1766
2251
  updatedOn: { type: Date },
2252
+ timeRecordsId: { type: [String] },
1767
2253
  });
1768
2254
  const TimeTrackerSchema = new mongoose_1.Schema({
1769
2255
  orgId: { type: String, index: true },
@@ -1783,7 +2269,8 @@ TimeTrackerSchema.set('toJSON', {
1783
2269
  virtuals: true,
1784
2270
  });
1785
2271
  TimeTrackerSchema.set('toObject', { virtuals: true });
1786
- exports.TimeTrackerModelFunc = (db) => db.model('timetracker', TimeTrackerSchema);
2272
+ const TimeTrackerModelFunc = (db) => db.model('timetracker', TimeTrackerSchema);
2273
+ exports.TimeTrackerModelFunc = TimeTrackerModelFunc;
1787
2274
 
1788
2275
 
1789
2276
  /***/ }),
@@ -1805,7 +2292,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
1805
2292
  o[k2] = m[k];
1806
2293
  }));
1807
2294
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
1808
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
2295
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
1809
2296
  };
1810
2297
  Object.defineProperty(exports, "__esModule", { value: true });
1811
2298
  __exportStar(__webpack_require__(/*! ./timerecord-repository */ "./src/store/repository/timerecord-repository.ts"), exports);
@@ -1835,82 +2322,60 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
1835
2322
  Object.defineProperty(exports, "__esModule", { value: true });
1836
2323
  exports.TimeRecordRepository = void 0;
1837
2324
  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");
2325
+ const timerecords_model_1 = __webpack_require__(/*! ../models/timerecords-model */ "./src/store/models/timerecords-model.ts");
1840
2326
  let TimeRecordRepository = class TimeRecordRepository {
1841
2327
  constructor(db, logger) {
1842
2328
  this.logger = logger.child({ className: 'TimeRecordRepository' });
1843
- this.timeTrackerModel = timetracker_model_1.TimeTrackerModelFunc(db);
2329
+ this.timeRecordsModel = timerecords_model_1.TimeRecordsModelFunc(db);
1844
2330
  }
1845
2331
  async getTimeRecords(orgId, userId, from, until) {
1846
2332
  if (!userId) {
1847
2333
  userId = /.*/;
1848
2334
  }
1849
2335
  let match = {
1850
- 'timeRecords.userId': userId,
2336
+ 'userId': userId,
1851
2337
  };
1852
2338
  if (from) {
1853
- match = Object.assign(Object.assign({}, match), { 'timeRecords.startTime': { $gte: from } });
2339
+ match = Object.assign(Object.assign({}, match), { 'startTime': { $gte: from } });
1854
2340
  }
1855
2341
  if (until) {
1856
- match = Object.assign(Object.assign({}, match), { 'timeRecords.endTime': { $lte: until } });
2342
+ match = Object.assign(Object.assign({}, match), { 'endTime': { $lte: until } });
1857
2343
  }
1858
- const result = await this.timeTrackerModel.aggregate([
2344
+ const result = await this.timeRecordsModel.aggregate([
1859
2345
  {
1860
2346
  $match: {
1861
2347
  orgId,
1862
2348
  },
1863
2349
  },
1864
- {
1865
- $unwind: '$timeRecords',
1866
- },
1867
2350
  {
1868
2351
  $match: Object.assign({}, match),
1869
2352
  },
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
2353
  ]);
1885
2354
  if (result.length === 0) {
1886
2355
  return [];
1887
2356
  }
1888
- return result[0].timeRecords;
2357
+ return result;
1889
2358
  }
1890
2359
  async getOrganizationTimeRecords(orgId) {
1891
- const trackDoc = await this.timeTrackerModel.findOne({ orgId });
1892
- if (trackDoc && trackDoc.timeRecords) {
1893
- return trackDoc.timeRecords;
2360
+ const trackDoc = await this.timeRecordsModel.find({ orgId });
2361
+ if (trackDoc) {
2362
+ return trackDoc;
1894
2363
  }
1895
2364
  return [];
1896
2365
  }
1897
2366
  async getPlayingTimeRecord(userId, orgId) {
1898
- const trackDoc = await this.timeTrackerModel.findOne({ orgId });
2367
+ const trackDoc = await this.timeRecordsModel.find({ orgId });
1899
2368
  if (trackDoc) {
1900
2369
  let res;
1901
- if (trackDoc.timeRecords)
1902
- res = trackDoc.timeRecords.find((tr) => tr.userId === userId && tr.endTime === null);
2370
+ if (trackDoc)
2371
+ res = trackDoc.find((tr) => tr.userId === userId && tr.endTime === null);
1903
2372
  return res;
1904
2373
  }
1905
2374
  return null;
1906
2375
  }
1907
2376
  async createTimeRecord(userId, orgId, request) {
1908
2377
  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
- });
2378
+ const response = await this.timeRecordsModel.create(Object.assign(Object.assign({}, request), { orgId, userId }));
1914
2379
  return response.toObject();
1915
2380
  }
1916
2381
  catch (err) {
@@ -1921,21 +2386,12 @@ let TimeRecordRepository = class TimeRecordRepository {
1921
2386
  try {
1922
2387
  if (recordId === null || recordId === undefined)
1923
2388
  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),
2389
+ const response = await this.timeRecordsModel.findOneAndUpdate({ orgId, _id: recordId }, {
2390
+ $set: Object.assign({}, request),
1930
2391
  }, {
1931
2392
  new: true,
1932
- projection: {
1933
- userId,
1934
- orgId,
1935
- timeRecords: { $elemMatch: { _id: recordId } },
1936
- },
1937
2393
  });
1938
- return response.toObject();
2394
+ return response === null || response === void 0 ? void 0 : response.toObject();
1939
2395
  }
1940
2396
  catch (err) {
1941
2397
  throw new Error(err.message);
@@ -1943,15 +2399,11 @@ let TimeRecordRepository = class TimeRecordRepository {
1943
2399
  }
1944
2400
  async removeTimeRecord(userId, orgId, recordId) {
1945
2401
  try {
1946
- const result = await this.timeTrackerModel.update({
1947
- orgId,
1948
- }, {
1949
- $pull: { timeRecords: { _id: recordId } },
1950
- });
1951
- if (result.nModified !== 1) {
2402
+ const result = await this.timeRecordsModel.remove({ userId, orgId, _id: recordId });
2403
+ if (result.n !== 1) {
1952
2404
  throw new Error('TimeRecord is not modified');
1953
2405
  }
1954
- return { userId, orgId, timeRecords: [{ _id: recordId }] };
2406
+ return { userId, orgId, _id: recordId };
1955
2407
  }
1956
2408
  catch (err) {
1957
2409
  throw new Error(err.message);
@@ -1959,14 +2411,12 @@ let TimeRecordRepository = class TimeRecordRepository {
1959
2411
  }
1960
2412
  async removeDurationTimeRecords(userId, orgId, startTime, endTime, projectId) {
1961
2413
  try {
1962
- const trackerDoc = await this.timeTrackerModel.find({ orgId });
2414
+ const trackerDoc = await this.timeRecordsModel.find({ orgId });
1963
2415
  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
- });
2416
+ const timeRecords = trackerDoc.filter((tr) => tr.startTime > startTime && tr.startTime < endTime && tr.projectId === projectId);
2417
+ for (const record of timeRecords) {
2418
+ await this.timeRecordsModel.remove({ _id: record._id });
2419
+ }
1970
2420
  return true;
1971
2421
  }
1972
2422
  return false;
@@ -1975,20 +2425,11 @@ let TimeRecordRepository = class TimeRecordRepository {
1975
2425
  throw new Error(err.message);
1976
2426
  }
1977
2427
  }
1978
- async approveTimeRecords(orgId, sheetId, startDate, endDate) {
2428
+ async approveTimeRecords(orgId, sheetId, timeRecordsId) {
1979
2429
  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
- });
2430
+ for (const id of timeRecordsId) {
2431
+ const res = await this.timeRecordsModel.updateOne({ orgId, _id: id }, { $set: { 'timesheetId': sheetId } });
2432
+ }
1992
2433
  }
1993
2434
  catch (e) {
1994
2435
  this.logger.debug('approveTimeRecords =>', e.message);
@@ -1997,15 +2438,11 @@ let TimeRecordRepository = class TimeRecordRepository {
1997
2438
  }
1998
2439
  async disapproveTimeRecords(orgId, sheetId) {
1999
2440
  try {
2000
- await this.timeTrackerModel.updateMany({
2441
+ const res = await this.timeRecordsModel.updateMany({
2001
2442
  orgId,
2002
- }, { $set: { 'timeRecords.$[el].timesheetId': null } }, {
2443
+ timesheetId: sheetId
2444
+ }, { $set: { 'timesheetId': null } }, {
2003
2445
  multi: true,
2004
- arrayFilters: [
2005
- {
2006
- 'el.timesheetId': sheetId,
2007
- },
2008
- ],
2009
2446
  });
2010
2447
  }
2011
2448
  catch (e) {
@@ -2046,17 +2483,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
2046
2483
  exports.TimesheetRepository = void 0;
2047
2484
  const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
2048
2485
  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");
2486
+ const timesheets_model_1 = __webpack_require__(/*! ../models/timesheets-model */ "./src/store/models/timesheets-model.ts");
2050
2487
  let TimesheetRepository = class TimesheetRepository {
2051
2488
  constructor(db, logger, broker) {
2052
2489
  this.broker = broker;
2053
2490
  this.logger = logger.child({ className: 'TimesheetRepository' });
2054
- this.timeTrackerModel = timetracker_model_1.TimeTrackerModelFunc(db);
2491
+ this.timesheetsModel = timesheets_model_1.TimesheetsModelFunc(db);
2055
2492
  }
2056
2493
  async getOrganizationTimesheets(orgId) {
2057
- const trackDoc = await this.timeTrackerModel.findOne({ orgId });
2058
- if (trackDoc && trackDoc.timesheets) {
2059
- return trackDoc.timesheets;
2494
+ const trackDoc = await this.timesheetsModel.find({ orgId });
2495
+ if (trackDoc && trackDoc) {
2496
+ return trackDoc;
2060
2497
  }
2061
2498
  return [];
2062
2499
  }
@@ -2066,7 +2503,7 @@ let TimesheetRepository = class TimesheetRepository {
2066
2503
  }
2067
2504
  async createTimesheet(userId, orgId, request) {
2068
2505
  try {
2069
- const response = await this.timeTrackerModel.update({ orgId }, { $push: { timesheets: request } }, { upsert: true });
2506
+ const response = await this.timesheetsModel.create(Object.assign({ orgId }, request));
2070
2507
  return true;
2071
2508
  }
2072
2509
  catch (err) {
@@ -2075,7 +2512,7 @@ let TimesheetRepository = class TimesheetRepository {
2075
2512
  }
2076
2513
  async updateTimesheet(orgId, sheetId, request) {
2077
2514
  try {
2078
- const response = await this.timeTrackerModel.update({ orgId, timesheets: { $elemMatch: { _id: sheetId } } }, { $set: { 'timesheets.$': request } });
2515
+ const response = await this.timesheetsModel.update({ orgId, _id: sheetId }, { $set: Object.assign({}, request) });
2079
2516
  return response;
2080
2517
  }
2081
2518
  catch (err) {
@@ -2084,12 +2521,12 @@ let TimesheetRepository = class TimesheetRepository {
2084
2521
  }
2085
2522
  async updateTimesheetStatus(orgId, sheetId, state) {
2086
2523
  try {
2087
- const response = await this.timeTrackerModel.update({
2524
+ const response = await this.timesheetsModel.update({
2088
2525
  orgId,
2089
- $elemMatch: { 'timesheets.id': sheetId },
2526
+ _id: sheetId,
2090
2527
  }, {
2091
2528
  $set: {
2092
- 'timesheets.$.status': state,
2529
+ 'status': state,
2093
2530
  },
2094
2531
  });
2095
2532
  return response;
@@ -2100,17 +2537,17 @@ let TimesheetRepository = class TimesheetRepository {
2100
2537
  }
2101
2538
  async removeTimesheet(userId, orgId, sheetId) {
2102
2539
  try {
2103
- await this.timeTrackerModel.update({
2104
- orgId,
2105
- }, {
2106
- $pull: { timesheets: { _id: sheetId } },
2107
- });
2540
+ await this.timesheetsModel.remove({ orgId, _id: sheetId });
2108
2541
  return true;
2109
2542
  }
2110
2543
  catch (err) {
2111
2544
  throw new Error(err.message);
2112
2545
  }
2113
2546
  }
2547
+ async removeTimeRecordIdFromTimesheet(recordId, orgId) {
2548
+ const res = await this.timesheetsModel.updateMany({ orgId, timeRecordsId: recordId }, { $pullAll: { timeRecordsId: [recordId] } });
2549
+ return true;
2550
+ }
2114
2551
  };
2115
2552
  TimesheetRepository = __decorate([
2116
2553
  inversify_1.injectable(),
@@ -2134,6 +2571,17 @@ module.exports = require("@adminide-stack/core");
2134
2571
 
2135
2572
  /***/ }),
2136
2573
 
2574
+ /***/ "@adminide-stack/platform-server":
2575
+ /*!**************************************************!*\
2576
+ !*** external "@adminide-stack/platform-server" ***!
2577
+ \**************************************************/
2578
+ /*! no static exports found */
2579
+ /***/ (function(module, exports) {
2580
+
2581
+ module.exports = require("@adminide-stack/platform-server");
2582
+
2583
+ /***/ }),
2584
+
2137
2585
  /***/ "@common-stack/core":
2138
2586
  /*!*************************************!*\
2139
2587
  !*** external "@common-stack/core" ***!
@@ -2211,14 +2659,14 @@ module.exports = require("inversify");
2211
2659
 
2212
2660
  /***/ }),
2213
2661
 
2214
- /***/ "lodash":
2215
- /*!*************************!*\
2216
- !*** external "lodash" ***!
2217
- \*************************/
2662
+ /***/ "moleculer":
2663
+ /*!****************************!*\
2664
+ !*** external "moleculer" ***!
2665
+ \****************************/
2218
2666
  /*! no static exports found */
2219
2667
  /***/ (function(module, exports) {
2220
2668
 
2221
- module.exports = require("lodash");
2669
+ module.exports = require("moleculer");
2222
2670
 
2223
2671
  /***/ }),
2224
2672