@things-factory/worklist 6.0.8 → 6.0.12

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.
Files changed (129) hide show
  1. package/client/pages/activity-approval/activity-approval-importer.ts +97 -0
  2. package/client/pages/activity-approval/activity-approval-list-page.ts +348 -0
  3. package/client/pages/activity-approval/activity-approval-page.ts +418 -0
  4. package/client/pages/activity-thread/activity-thread-page.ts +5 -5
  5. package/client/pages/todo/approval-waiting-list-page.ts +376 -0
  6. package/client/route.ts +12 -0
  7. package/dist-client/pages/activity-approval/activity-approval-importer.d.ts +22 -0
  8. package/dist-client/pages/activity-approval/activity-approval-importer.js +100 -0
  9. package/dist-client/pages/activity-approval/activity-approval-importer.js.map +1 -0
  10. package/dist-client/pages/activity-approval/activity-approval-list-page.d.ts +62 -0
  11. package/dist-client/pages/activity-approval/activity-approval-list-page.js +326 -0
  12. package/dist-client/pages/activity-approval/activity-approval-list-page.js.map +1 -0
  13. package/dist-client/pages/activity-approval/activity-approval-page.d.ts +55 -0
  14. package/dist-client/pages/activity-approval/activity-approval-page.js +365 -0
  15. package/dist-client/pages/activity-approval/activity-approval-page.js.map +1 -0
  16. package/dist-client/pages/activity-thread/activity-thread-page.d.ts +1 -1
  17. package/dist-client/pages/activity-thread/activity-thread-page.js +4 -4
  18. package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -1
  19. package/dist-client/pages/todo/approval-waiting-list-page.d.ts +45 -0
  20. package/dist-client/pages/todo/approval-waiting-list-page.js +371 -0
  21. package/dist-client/pages/todo/approval-waiting-list-page.js.map +1 -0
  22. package/dist-client/route.d.ts +1 -1
  23. package/dist-client/route.js +9 -0
  24. package/dist-client/route.js.map +1 -1
  25. package/dist-client/tsconfig.tsbuildinfo +1 -1
  26. package/dist-server/controllers/activity-approval/abort.js +20 -0
  27. package/dist-server/controllers/activity-approval/abort.js.map +1 -0
  28. package/dist-server/controllers/activity-approval/approve.js +50 -0
  29. package/dist-server/controllers/activity-approval/approve.js.map +1 -0
  30. package/dist-server/controllers/activity-approval/delegate.js +20 -0
  31. package/dist-server/controllers/activity-approval/delegate.js.map +1 -0
  32. package/dist-server/controllers/activity-approval/escalate.js +20 -0
  33. package/dist-server/controllers/activity-approval/escalate.js.map +1 -0
  34. package/dist-server/controllers/activity-approval/reject.js +21 -0
  35. package/dist-server/controllers/activity-approval/reject.js.map +1 -0
  36. package/dist-server/controllers/activity-instance/abort.js +2 -3
  37. package/dist-server/controllers/activity-instance/abort.js.map +1 -1
  38. package/dist-server/controllers/activity-instance/delegate.js +2 -3
  39. package/dist-server/controllers/activity-instance/delegate.js.map +1 -1
  40. package/dist-server/controllers/activity-instance/draft.js +1 -2
  41. package/dist-server/controllers/activity-instance/draft.js.map +1 -1
  42. package/dist-server/controllers/activity-instance/end.js +2 -3
  43. package/dist-server/controllers/activity-instance/end.js.map +1 -1
  44. package/dist-server/controllers/activity-instance/pick.js +2 -3
  45. package/dist-server/controllers/activity-instance/pick.js.map +1 -1
  46. package/dist-server/controllers/activity-instance/terminate.js +2 -3
  47. package/dist-server/controllers/activity-instance/terminate.js.map +1 -1
  48. package/dist-server/controllers/activity-thread/abort.js +2 -3
  49. package/dist-server/controllers/activity-thread/abort.js.map +1 -1
  50. package/dist-server/controllers/activity-thread/delegate.js +2 -3
  51. package/dist-server/controllers/activity-thread/delegate.js.map +1 -1
  52. package/dist-server/controllers/activity-thread/end.js +2 -3
  53. package/dist-server/controllers/activity-thread/end.js.map +1 -1
  54. package/dist-server/controllers/activity-thread/index.js +1 -0
  55. package/dist-server/controllers/activity-thread/index.js.map +1 -1
  56. package/dist-server/controllers/activity-thread/submit.js +46 -0
  57. package/dist-server/controllers/activity-thread/submit.js.map +1 -0
  58. package/dist-server/controllers/activity-thread/terminate.js +2 -3
  59. package/dist-server/controllers/activity-thread/terminate.js.map +1 -1
  60. package/dist-server/controllers/common.js +24 -1
  61. package/dist-server/controllers/common.js.map +1 -1
  62. package/dist-server/service/activity/activity-query.js +1 -1
  63. package/dist-server/service/activity/activity-query.js.map +1 -1
  64. package/dist-server/service/activity-approval/activity-approval-mutation.js +79 -0
  65. package/dist-server/service/activity-approval/activity-approval-mutation.js.map +1 -0
  66. package/dist-server/service/activity-approval/activity-approval-query.js +128 -0
  67. package/dist-server/service/activity-approval/activity-approval-query.js.map +1 -0
  68. package/dist-server/service/activity-approval/activity-approval-type.js +39 -0
  69. package/dist-server/service/activity-approval/activity-approval-type.js.map +1 -0
  70. package/dist-server/service/activity-approval/activity-approval.js +135 -0
  71. package/dist-server/service/activity-approval/activity-approval.js.map +1 -0
  72. package/dist-server/service/activity-approval/event-subscriber.js +29 -0
  73. package/dist-server/service/activity-approval/event-subscriber.js.map +1 -0
  74. package/dist-server/service/activity-approval/index.js +11 -0
  75. package/dist-server/service/activity-approval/index.js.map +1 -0
  76. package/dist-server/service/activity-instance/activity-instance-query.js +1 -1
  77. package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -1
  78. package/dist-server/service/activity-template/activity-template-query.js +1 -1
  79. package/dist-server/service/activity-template/activity-template-query.js.map +1 -1
  80. package/dist-server/service/activity-thread/activity-thread-mutation.js +14 -0
  81. package/dist-server/service/activity-thread/activity-thread-mutation.js.map +1 -1
  82. package/dist-server/service/activity-thread/activity-thread-query.js +7 -2
  83. package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -1
  84. package/dist-server/service/activity-thread/activity-thread-type.js +1 -23
  85. package/dist-server/service/activity-thread/activity-thread-type.js.map +1 -1
  86. package/dist-server/service/activity-thread/activity-thread.js +31 -2
  87. package/dist-server/service/activity-thread/activity-thread.js.map +1 -1
  88. package/dist-server/service/index.js +5 -0
  89. package/dist-server/service/index.js.map +1 -1
  90. package/dist-server/tsconfig.tsbuildinfo +1 -1
  91. package/helps/worklist/activity-approval.md +160 -0
  92. package/package.json +7 -7
  93. package/server/controllers/activity-approval/abort.ts +33 -0
  94. package/server/controllers/activity-approval/approve.ts +80 -0
  95. package/server/controllers/activity-approval/delegate.ts +33 -0
  96. package/server/controllers/activity-approval/escalate.ts +33 -0
  97. package/server/controllers/activity-approval/reject.ts +35 -0
  98. package/server/controllers/activity-instance/abort.ts +2 -4
  99. package/server/controllers/activity-instance/delegate.ts +2 -4
  100. package/server/controllers/activity-instance/draft.ts +1 -3
  101. package/server/controllers/activity-instance/end.ts +2 -4
  102. package/server/controllers/activity-instance/pick.ts +2 -4
  103. package/server/controllers/activity-instance/terminate.ts +2 -4
  104. package/server/controllers/activity-thread/abort.ts +2 -4
  105. package/server/controllers/activity-thread/delegate.ts +2 -4
  106. package/server/controllers/activity-thread/end.ts +2 -4
  107. package/server/controllers/activity-thread/index.ts +1 -0
  108. package/server/controllers/activity-thread/submit.ts +71 -0
  109. package/server/controllers/activity-thread/terminate.ts +2 -4
  110. package/server/controllers/common.ts +28 -0
  111. package/server/service/activity/activity-query.ts +1 -1
  112. package/server/service/activity-approval/activity-approval-mutation.ts +71 -0
  113. package/server/service/activity-approval/activity-approval-query.ts +90 -0
  114. package/server/service/activity-approval/activity-approval-type.ts +28 -0
  115. package/server/service/activity-approval/activity-approval.ts +118 -0
  116. package/server/service/activity-approval/event-subscriber.ts +28 -0
  117. package/server/service/activity-approval/index.ts +8 -0
  118. package/server/service/activity-instance/activity-instance-query.ts +1 -1
  119. package/server/service/activity-template/activity-template-query.ts +1 -1
  120. package/server/service/activity-thread/activity-thread-mutation.ts +12 -1
  121. package/server/service/activity-thread/activity-thread-query.ts +7 -2
  122. package/server/service/activity-thread/activity-thread-type.ts +1 -15
  123. package/server/service/activity-thread/activity-thread.ts +24 -0
  124. package/server/service/index.ts +5 -0
  125. package/things-factory.config.js +4 -1
  126. package/translations/en.json +3 -0
  127. package/translations/ko.json +3 -0
  128. package/translations/ms.json +4 -1
  129. package/translations/zh.json +3 -0
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.terminate = void 0;
4
- const shell_1 = require("@things-factory/shell");
5
4
  const activity_thread_1 = require("../../service/activity-thread/activity-thread");
6
5
  const common_1 = require("../common");
7
6
  async function terminate({ id, output, reason }, context) {
8
7
  const { domain, user, tx } = context.state;
9
- var repository = (0, shell_1.getRepository)(activity_thread_1.ActivityThread);
8
+ var repository = tx.getRepository(activity_thread_1.ActivityThread);
10
9
  var activityThread = await repository.findOne({
11
10
  where: { domain: { id: domain.id }, id },
12
11
  relations: ['domain', 'activityInstance', 'assignee', 'creator', 'updater']
@@ -16,7 +15,7 @@ async function terminate({ id, output, reason }, context) {
16
15
  activityThread: id
17
16
  }));
18
17
  }
19
- const result = await tx.getRepository(activity_thread_1.ActivityThread).save(Object.assign(Object.assign({}, activityThread), { reason,
18
+ const result = await repository.save(Object.assign(Object.assign({}, activityThread), { reason,
20
19
  output, transaction: 'terminate', state: activity_thread_1.ActivityThreadStatus.Ended, updater: user, terminatedAt: new Date(), terminator: user }));
21
20
  await (0, common_1.updateActivityInstanceState)(activityThread.activityInstanceId, context);
22
21
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../server/controllers/activity-thread/terminate.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,mFAAoG;AACpG,sCAAuD;AAEhD,KAAK,UAAU,SAAS,CAC7B,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAoD,EACxE,OAAY;IAEZ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,IAAI,UAAU,GAAG,IAAA,qBAAa,EAAC,gCAAc,CAAC,CAAA;IAE9C,IAAI,cAAc,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;KAC5E,CAAC,CAAA;IAEF,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,cAAc,EAAE,EAAE;SACnB,CAAC,CACH,CAAA;KACF;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,IAAI,iCACrD,cAAc,KACjB,MAAM;QACN,MAAM,EACN,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,sCAAoB,CAAC,KAAK,EACjC,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,UAAU,EAAE,IAAI,IAChB,CAAA;IAEF,MAAM,IAAA,oCAA2B,EAAC,cAAc,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;IAE7E,OAAO,MAAM,CAAA;AACf,CAAC;AAlCD,8BAkCC","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread'\nimport { updateActivityInstanceState } from '../common'\n\nexport async function terminate(\n { id, output, reason }: { id: string; output?: object; reason?: string },\n context: any\n): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n var repository = getRepository(ActivityThread)\n\n var activityThread = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activityInstance', 'assignee', 'creator', 'updater']\n })\n\n if (!activityThread) {\n throw new Error(\n context.t('error.activity-instance not found', {\n activityThread: id\n })\n )\n }\n\n const result = await tx.getRepository(ActivityThread).save({\n ...activityThread,\n reason,\n output,\n transaction: 'terminate',\n state: ActivityThreadStatus.Ended,\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n })\n\n await updateActivityInstanceState(activityThread.activityInstanceId, context)\n\n return result\n}\n"]}
1
+ {"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../server/controllers/activity-thread/terminate.ts"],"names":[],"mappings":";;;AAAA,mFAAoG;AACpG,sCAAuD;AAEhD,KAAK,UAAU,SAAS,CAC7B,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAoD,EACxE,OAAY;IAEZ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAA;IAEjD,IAAI,cAAc,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;KAC5E,CAAC,CAAA;IAEF,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,cAAc,EAAE,EAAE;SACnB,CAAC,CACH,CAAA;KACF;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,iCAC/B,cAAc,KACjB,MAAM;QACN,MAAM,EACN,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,sCAAoB,CAAC,KAAK,EACjC,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,UAAU,EAAE,IAAI,IAChB,CAAA;IAEF,MAAM,IAAA,oCAA2B,EAAC,cAAc,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;IAE7E,OAAO,MAAM,CAAA;AACf,CAAC;AAlCD,8BAkCC","sourcesContent":["import { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread'\nimport { updateActivityInstanceState } from '../common'\n\nexport async function terminate(\n { id, output, reason }: { id: string; output?: object; reason?: string },\n context: any\n): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n var repository = tx.getRepository(ActivityThread)\n\n var activityThread = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activityInstance', 'assignee', 'creator', 'updater']\n })\n\n if (!activityThread) {\n throw new Error(\n context.t('error.activity-instance not found', {\n activityThread: id\n })\n )\n }\n\n const result = await repository.save({\n ...activityThread,\n reason,\n output,\n transaction: 'terminate',\n state: ActivityThreadStatus.Ended,\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n })\n\n await updateActivityInstanceState(activityThread.activityInstanceId, context)\n\n return result\n}\n"]}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createActivityThreadsForAllRoleUsers = exports.createActivityThreadsForUsers = exports.evalActivityInstanceState = exports.updateActivityInstanceState = void 0;
3
+ exports.getSystemUserFromApprovalLineItem = exports.createActivityThreadsForAllRoleUsers = exports.createActivityThreadsForUsers = exports.evalActivityInstanceState = exports.updateActivityInstanceState = void 0;
4
4
  const auth_base_1 = require("@things-factory/auth-base");
5
5
  const activity_instance_1 = require("../service/activity-instance/activity-instance");
6
6
  const activity_thread_1 = require("../service/activity-thread/activity-thread");
7
+ const organization_1 = require("@things-factory/organization");
7
8
  async function updateActivityInstanceState(id, context) {
8
9
  const { tx } = context.state;
9
10
  await tx.getRepository(activity_instance_1.ActivityInstance).save(Object.assign(Object.assign({}, (await tx.getRepository(activity_instance_1.ActivityInstance).findOne({
@@ -85,4 +86,26 @@ async function createActivityThreadsForAllRoleUsers(transaction, activityInstanc
85
86
  return await createActivityThreadsForUsers(transaction, activityInstance, assignees, context);
86
87
  }
87
88
  exports.createActivityThreadsForAllRoleUsers = createActivityThreadsForAllRoleUsers;
89
+ async function getSystemUserFromApprovalLineItem(approvalLineItem, context) {
90
+ const { domain, user, tx } = context.state;
91
+ const { type, value, approver } = approvalLineItem;
92
+ const { id: approverId, name, description, controlNo } = approver;
93
+ if (type == organization_1.ApprovalLineItemType.Employee) {
94
+ const employee = await tx.getRepository(organization_1.Employee).findOne({ where: { id: approverId }, relations: ['user'] });
95
+ if (!employee || !employee.user) {
96
+ return;
97
+ }
98
+ return employee.user;
99
+ }
100
+ else if (type == organization_1.ApprovalLineItemType.Department) {
101
+ const department = await tx.getRepository(organization_1.Department).findOne({ where: { id: approverId }, relations: ['manager'] });
102
+ if (!department || !department.manager) {
103
+ return;
104
+ }
105
+ return await tx.getRepository(auth_base_1.User).findOneBy({ id: department.manager.userId });
106
+ }
107
+ else if (type == organization_1.ApprovalLineItemType.Role) {
108
+ }
109
+ }
110
+ exports.getSystemUserFromApprovalLineItem = getSystemUserFromApprovalLineItem;
88
111
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../server/controllers/common.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AAEtD,sFAAyG;AACzG,gFAAiG;AAE1F,KAAK,UAAU,2BAA2B,CAAC,EAAU,EAAE,OAAwB;IACpF,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE5B,MAAM,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAC,IAAI,iCACxC,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAC,OAAO,CAAC;QACnD,KAAK,EAAE,EAAE,EAAE,EAAE;QACb,SAAS,EAAE;YACT,QAAQ;YACR,UAAU;YACV,cAAc;YACd,iBAAiB;YACjB,SAAS;YACT,SAAS;YACT,SAAS;YACT,YAAY;SACb;KACF,CAAC,CAAC,KACH,WAAW,EAAE,QAAQ,CAAC,8CAA8C,EACpE,KAAK,EAAE,MAAM,yBAAyB,CAAC,EAAE,EAAE,OAAO,CAAC,IACnD,CAAA;AACJ,CAAC;AApBD,kEAoBC;AAEM,KAAK,UAAU,yBAAyB,CAAC,EAAU,EAAE,OAAwB;IAClF,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE5B,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAC,OAAO,CAAC;QACxE,KAAK,EAAE,EAAE,EAAE,EAAE;QACb,SAAS,EAAE,CAAC,iBAAiB,CAAC;KAC/B,CAAC,CAAA;IACF,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAA;IAElF,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;IACvE,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAA;IACzF,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAA;IAErF,QAAQ,IAAI,EAAE;QACZ,KAAK,KAAK,KAAK,0CAAsB,CAAC,KAAK,CAAC;QAC5C,KAAK,KAAK,KAAK,0CAAsB,CAAC,KAAK,CAAC;QAC5C,KAAK,KAAK,KAAK,0CAAsB,CAAC,OAAO;YAC3C,OAAO,KAAK,CAAA;QACd,KAAK,YAAY,CAAC,MAAM,KAAK,CAAC;YAC5B,OAAO,0CAAsB,CAAC,MAAM,CAAA;QACtC,KAAK,UAAU,GAAG,YAAY,CAAC,MAAM;YACnC,OAAO,0CAAsB,CAAC,iBAAiB,CAAA;QACjD,KAAK,qBAAqB,CAAC,MAAM,GAAG,CAAC;YACnC,OAAO,0CAAsB,CAAC,QAAQ,CAAA;QACxC,KAAK,mBAAmB,CAAC,MAAM,GAAG,CAAC;YACjC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,0CAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAsB,CAAC,OAAO,CAAA;QACjH;YACE,OAAO,0CAAsB,CAAC,KAAK,CAAA;KACtC;AACH,CAAC;AA7BD,8DA6BC;AAEM,KAAK,UAAU,6BAA6B,CACjD,WAAmB,EACnB,gBAAkC,EAClC,SAAiB,EACjB,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAA;IACnD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IAEtB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAClC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QACvB,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,sCAAoB,CAAC,QAAQ;YACpC,gBAAgB;YAChB,MAAM;YACN,WAAW;YACX,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,UAAU,EAAE,GAAG;SACT,CAAA;IACV,CAAC,CAAC,CACH,CAAA;IAED,MAAM,2BAA2B,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAE/D,OAAO,MAAM,CAAA;AACf,CAAC;AA9BD,sEA8BC;AAEM,KAAK,UAAU,oCAAoC,CACxD,WAAmB,EACnB,gBAAkC,EAClC,OAAwB;IAExB,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE5B,4CAA4C;IAC5C,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;QACzD,KAAK,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,cAAc,EAAE;QAC9C,SAAS,EAAE,CAAC,OAAO,CAAC;KACrB,CAAC,CAAS,CAAA;IACX,MAAM,SAAS,GAAG,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,KAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAA;IAErF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;KACtD;IAED,4DAA4D;IAC5D,OAAO,MAAM,6BAA6B,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAC/F,CAAC;AApBD,oFAoBC","sourcesContent":["import { Role, User } from '@things-factory/auth-base'\n\nimport { ActivityInstance, ActivityInstanceStatus } from '../service/activity-instance/activity-instance'\nimport { ActivityThread, ActivityThreadStatus } from '../service/activity-thread/activity-thread'\n\nexport async function updateActivityInstanceState(id: string, context: ResolverContext) {\n const { tx } = context.state\n\n await tx.getRepository(ActivityInstance).save({\n ...(await tx.getRepository(ActivityInstance).findOne({\n where: { id },\n relations: [\n 'domain',\n 'activity',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\n })),\n transaction: 'thread' /* change by transaction of activity thread */,\n state: await evalActivityInstanceState(id, context)\n })\n}\n\nexport async function evalActivityInstanceState(id: string, context: ResolverContext): Promise<ActivityInstanceStatus> {\n const { tx } = context.state\n\n const activityInstance = await tx.getRepository(ActivityInstance).findOne({\n where: { id },\n relations: ['activityThreads']\n })\n const { threadsMin, threadsMax, activityThreads, state, dueAt } = activityInstance\n\n const validThreads = activityThreads.filter(thread => thread.isValid())\n const pendingStartedThreads = activityThreads.filter(thread => thread.isPendingStarted())\n const pendingEndedThreads = activityThreads.filter(thread => thread.isPendingEnded())\n\n switch (true) {\n case state === ActivityInstanceStatus.Draft:\n case state === ActivityInstanceStatus.Ended:\n case state === ActivityInstanceStatus.Aborted:\n return state\n case validThreads.length === 0:\n return ActivityInstanceStatus.Posted\n case threadsMin > validThreads.length:\n return ActivityInstanceStatus.WaitingAssignment\n case pendingStartedThreads.length > 0:\n return ActivityInstanceStatus.Assigned\n case pendingEndedThreads.length > 0:\n return !dueAt || dueAt.getTime() > Date.now() ? ActivityInstanceStatus.Started : ActivityInstanceStatus.Pending\n default:\n return ActivityInstanceStatus.Ended\n }\n}\n\nexport async function createActivityThreadsForUsers(\n transaction: string,\n activityInstance: ActivityInstance,\n assignees: User[],\n context: ResolverContext\n): Promise<ActivityThread[]> {\n const { domain, user, tx } = context.state\n\n const threadRepo = tx.getRepository(ActivityThread)\n const now = new Date()\n\n const result = await threadRepo.save(\n assignees.map(assignee => {\n return {\n assignee,\n state: ActivityThreadStatus.Assigned,\n activityInstance,\n domain,\n transaction,\n creator: user,\n updater: user,\n dueAt: activityInstance.dueAt,\n assignedAt: now\n } as any\n })\n )\n\n await updateActivityInstanceState(activityInstance.id, context)\n\n return result\n}\n\nexport async function createActivityThreadsForAllRoleUsers(\n transaction: string,\n activityInstance: ActivityInstance,\n context: ResolverContext\n): Promise<ActivityThread[]> {\n const { tx } = context.state\n\n // find how many users are having given role\n const assigneeRole = (await tx.getRepository(Role).findOne({\n where: { id: activityInstance.assigneeRoleId },\n relations: ['users']\n })) as Role\n const assignees = (assigneeRole?.users || []).filter(user => user.userType == 'user')\n\n if (assignees.length === 0) {\n throw new Error(\"there's no users having given role\")\n }\n\n // create activity-thread for all of users having given role\n return await createActivityThreadsForUsers(transaction, activityInstance, assignees, context)\n}\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../server/controllers/common.ts"],"names":[],"mappings":"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","sourcesContent":["import { Role, User } from '@things-factory/auth-base'\n\nimport { ActivityInstance, ActivityInstanceStatus } from '../service/activity-instance/activity-instance'\nimport { ActivityThread, ActivityThreadStatus } from '../service/activity-thread/activity-thread'\nimport { Department, Employee, ApprovalLineItem, ApprovalLineItemType } from '@things-factory/organization'\n\nexport async function updateActivityInstanceState(id: string, context: ResolverContext) {\n const { tx } = context.state\n\n await tx.getRepository(ActivityInstance).save({\n ...(await tx.getRepository(ActivityInstance).findOne({\n where: { id },\n relations: [\n 'domain',\n 'activity',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\n })),\n transaction: 'thread' /* change by transaction of activity thread */,\n state: await evalActivityInstanceState(id, context)\n })\n}\n\nexport async function evalActivityInstanceState(id: string, context: ResolverContext): Promise<ActivityInstanceStatus> {\n const { tx } = context.state\n\n const activityInstance = await tx.getRepository(ActivityInstance).findOne({\n where: { id },\n relations: ['activityThreads']\n })\n const { threadsMin, threadsMax, activityThreads, state, dueAt } = activityInstance\n\n const validThreads = activityThreads.filter(thread => thread.isValid())\n const pendingStartedThreads = activityThreads.filter(thread => thread.isPendingStarted())\n const pendingEndedThreads = activityThreads.filter(thread => thread.isPendingEnded())\n\n switch (true) {\n case state === ActivityInstanceStatus.Draft:\n case state === ActivityInstanceStatus.Ended:\n case state === ActivityInstanceStatus.Aborted:\n return state\n case validThreads.length === 0:\n return ActivityInstanceStatus.Posted\n case threadsMin > validThreads.length:\n return ActivityInstanceStatus.WaitingAssignment\n case pendingStartedThreads.length > 0:\n return ActivityInstanceStatus.Assigned\n case pendingEndedThreads.length > 0:\n return !dueAt || dueAt.getTime() > Date.now() ? ActivityInstanceStatus.Started : ActivityInstanceStatus.Pending\n default:\n return ActivityInstanceStatus.Ended\n }\n}\n\nexport async function createActivityThreadsForUsers(\n transaction: string,\n activityInstance: ActivityInstance,\n assignees: User[],\n context: ResolverContext\n): Promise<ActivityThread[]> {\n const { domain, user, tx } = context.state\n\n const threadRepo = tx.getRepository(ActivityThread)\n const now = new Date()\n\n const result = await threadRepo.save(\n assignees.map(assignee => {\n return {\n assignee,\n state: ActivityThreadStatus.Assigned,\n activityInstance,\n domain,\n transaction,\n creator: user,\n updater: user,\n dueAt: activityInstance.dueAt,\n assignedAt: now\n } as any\n })\n )\n\n await updateActivityInstanceState(activityInstance.id, context)\n\n return result\n}\n\nexport async function createActivityThreadsForAllRoleUsers(\n transaction: string,\n activityInstance: ActivityInstance,\n context: ResolverContext\n): Promise<ActivityThread[]> {\n const { tx } = context.state\n\n // find how many users are having given role\n const assigneeRole = (await tx.getRepository(Role).findOne({\n where: { id: activityInstance.assigneeRoleId },\n relations: ['users']\n })) as Role\n const assignees = (assigneeRole?.users || []).filter(user => user.userType == 'user')\n\n if (assignees.length === 0) {\n throw new Error(\"there's no users having given role\")\n }\n\n // create activity-thread for all of users having given role\n return await createActivityThreadsForUsers(transaction, activityInstance, assignees, context)\n}\n\nexport async function getSystemUserFromApprovalLineItem(\n approvalLineItem: ApprovalLineItem,\n context: any\n): Promise<User> {\n const { domain, user, tx } = context.state\n\n const { type, value, approver } = approvalLineItem\n const { id: approverId, name, description, controlNo } = approver\n\n if (type == ApprovalLineItemType.Employee) {\n const employee = await tx.getRepository(Employee).findOne({ where: { id: approverId }, relations: ['user'] })\n\n if (!employee || !employee.user) {\n return\n }\n return employee.user\n } else if (type == ApprovalLineItemType.Department) {\n const department = await tx.getRepository(Department).findOne({ where: { id: approverId }, relations: ['manager'] })\n\n if (!department || !department.manager) {\n return\n }\n return await tx.getRepository(User).findOneBy({ id: department.manager.userId })\n } else if (type == ApprovalLineItemType.Role) {\n }\n}\n"]}
@@ -27,7 +27,7 @@ let ActivityQuery = class ActivityQuery {
27
27
  const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
28
28
  domain,
29
29
  params,
30
- repository: await (0, shell_1.getRepository)(activity_1.Activity),
30
+ repository: (0, shell_1.getRepository)(activity_1.Activity),
31
31
  alias: 'activity',
32
32
  searchables: ['name', 'description', 'issuerRole', 'assigneeRole', 'supervisoryRole']
33
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"activity-query.js","sourceRoot":"","sources":["../../../server/service/activity/activity-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { Role, User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { Activity } from './activity'\nimport { ActivityList } from './activity-type'\n\n@Resolver(Activity)\nexport class ActivityQuery {\n @Query(returns => Activity!, { nullable: true, description: 'To fetch a Activity' })\n async activity(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Activity> {\n const { domain } = context.state\n\n return await getRepository(Activity).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => Activity!, { nullable: true, description: 'To fetch a Activity by name' })\n async activityByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Activity> {\n const { domain } = context.state\n\n return await getRepository(Activity).findOne({\n where: { domain: { id: domain.id }, name }\n })\n }\n\n @Query(returns => ActivityList, { description: 'To fetch multiple Activities' })\n async activities(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Activity),\n alias: 'activity',\n searchables: ['name', 'description', 'issuerRole', 'assigneeRole', 'supervisoryRole']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ActivityList, { description: 'To fetch the list of activities I can start' })\n async startableActivities(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityList> {\n var { domain, user } = context.state\n\n /* 조회한 사용자가 assigner 역할을 가진 activity-instance 리스트만 반환 */\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n const roles = user.roles.filter(role => role.domainId === domain.id).map(role => role.id)\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(Activity),\n params,\n domain,\n alias: 'activity',\n searchables: ['name', 'description']\n })\n .andWhere(`activity.startable = :startable`, { startable: true })\n .andWhere(\n roles.length > 0\n ? new Brackets(qb => {\n qb.orWhere(`activity.issuerRole IN (:...roles)`, { roles })\n qb.orWhere(`activity.issuerRole IS NULL`)\n })\n : `activity.issuerRole IS NULL`\n )\n .getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ActivityList, { description: 'To fetch the list of activities that I can report on' })\n async supervisableActivities(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityList> {\n var { domain, user } = context.state\n\n /* 조회한 사용자가 assigner 역할을 가진 activity-instance 리스트만 반환 */\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n const roles = user.roles.filter(role => role.domainId === domain.id).map(role => role.id)\n\n if (!roles.length) {\n return { items: [], total: 0 }\n }\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(Activity),\n params,\n domain,\n alias: 'activity',\n searchables: ['name', 'description']\n })\n .andWhere(`activity.supervisoryRole IN (:...roles)`, { roles })\n .getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Role)\n async issuerRole(@Root() activity: Activity): Promise<Role> {\n return (\n activity.issuerRole ||\n (activity.issuerRoleId &&\n (await getRepository(Role).findOneBy({\n id: activity.issuerRoleId\n })))\n )\n }\n\n @FieldResolver(type => Role)\n async assigneeRole(@Root() activity: Activity): Promise<Role> {\n return (\n activity.assigneeRole ||\n (activity.assigneeRoleId &&\n (await getRepository(Role).findOneBy({\n id: activity.assigneeRoleId\n })))\n )\n }\n\n @FieldResolver(type => Role)\n async supervisoryRole(@Root() activity: Activity): Promise<Role> {\n return (\n activity.supervisoryRole ||\n (activity.supervisoryRoleId &&\n (await getRepository(Role).findOneBy({\n id: activity.supervisoryRoleId\n })))\n )\n }\n\n @FieldResolver(type => String)\n async thumbnail(@Root() activity: Activity): Promise<string | undefined> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: activity.domainId },\n refType: Activity.name,\n refBy: activity.id\n }\n })\n\n return attachment?.fullpath\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() activity: Activity): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: activity.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() activity: Activity): Promise<User> {\n return await getRepository(User).findOneBy({ id: activity.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() activity: Activity): Promise<User> {\n return await getRepository(User).findOneBy({ id: activity.creatorId })\n }\n}\n"]}
1
+ {"version":3,"file":"activity-query.js","sourceRoot":"","sources":["../../../server/service/activity/activity-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { Role, User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { Activity } from './activity'\nimport { ActivityList } from './activity-type'\n\n@Resolver(Activity)\nexport class ActivityQuery {\n @Query(returns => Activity!, { nullable: true, description: 'To fetch a Activity' })\n async activity(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Activity> {\n const { domain } = context.state\n\n return await getRepository(Activity).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => Activity!, { nullable: true, description: 'To fetch a Activity by name' })\n async activityByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Activity> {\n const { domain } = context.state\n\n return await getRepository(Activity).findOne({\n where: { domain: { id: domain.id }, name }\n })\n }\n\n @Query(returns => ActivityList, { description: 'To fetch multiple Activities' })\n async activities(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: getRepository(Activity),\n alias: 'activity',\n searchables: ['name', 'description', 'issuerRole', 'assigneeRole', 'supervisoryRole']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ActivityList, { description: 'To fetch the list of activities I can start' })\n async startableActivities(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityList> {\n var { domain, user } = context.state\n\n /* 조회한 사용자가 assigner 역할을 가진 activity-instance 리스트만 반환 */\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n const roles = user.roles.filter(role => role.domainId === domain.id).map(role => role.id)\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(Activity),\n params,\n domain,\n alias: 'activity',\n searchables: ['name', 'description']\n })\n .andWhere(`activity.startable = :startable`, { startable: true })\n .andWhere(\n roles.length > 0\n ? new Brackets(qb => {\n qb.orWhere(`activity.issuerRole IN (:...roles)`, { roles })\n qb.orWhere(`activity.issuerRole IS NULL`)\n })\n : `activity.issuerRole IS NULL`\n )\n .getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ActivityList, { description: 'To fetch the list of activities that I can report on' })\n async supervisableActivities(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityList> {\n var { domain, user } = context.state\n\n /* 조회한 사용자가 assigner 역할을 가진 activity-instance 리스트만 반환 */\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n const roles = user.roles.filter(role => role.domainId === domain.id).map(role => role.id)\n\n if (!roles.length) {\n return { items: [], total: 0 }\n }\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(Activity),\n params,\n domain,\n alias: 'activity',\n searchables: ['name', 'description']\n })\n .andWhere(`activity.supervisoryRole IN (:...roles)`, { roles })\n .getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Role)\n async issuerRole(@Root() activity: Activity): Promise<Role> {\n return (\n activity.issuerRole ||\n (activity.issuerRoleId &&\n (await getRepository(Role).findOneBy({\n id: activity.issuerRoleId\n })))\n )\n }\n\n @FieldResolver(type => Role)\n async assigneeRole(@Root() activity: Activity): Promise<Role> {\n return (\n activity.assigneeRole ||\n (activity.assigneeRoleId &&\n (await getRepository(Role).findOneBy({\n id: activity.assigneeRoleId\n })))\n )\n }\n\n @FieldResolver(type => Role)\n async supervisoryRole(@Root() activity: Activity): Promise<Role> {\n return (\n activity.supervisoryRole ||\n (activity.supervisoryRoleId &&\n (await getRepository(Role).findOneBy({\n id: activity.supervisoryRoleId\n })))\n )\n }\n\n @FieldResolver(type => String)\n async thumbnail(@Root() activity: Activity): Promise<string | undefined> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: activity.domainId },\n refType: Activity.name,\n refBy: activity.id\n }\n })\n\n return attachment?.fullpath\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() activity: Activity): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: activity.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() activity: Activity): Promise<User> {\n return await getRepository(User).findOneBy({ id: activity.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() activity: Activity): Promise<User> {\n return await getRepository(User).findOneBy({ id: activity.creatorId })\n }\n}\n"]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActivityApprovalMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const activity_approval_1 = require("./activity-approval");
7
+ const abort_1 = require("../../controllers/activity-approval/abort");
8
+ const reject_1 = require("../../controllers/activity-approval/reject");
9
+ const approve_1 = require("../../controllers/activity-approval/approve");
10
+ let ActivityApprovalMutation = class ActivityApprovalMutation {
11
+ /* transactions ... */
12
+ async saveActivityApproval(id, comment, context) {
13
+ const { domain, user, tx } = context.state;
14
+ var repository = tx.getRepository(activity_approval_1.ActivityApproval);
15
+ var activityApproval = await repository.findOne({
16
+ where: { domain: { id: domain.id }, id }
17
+ });
18
+ if (!activityApproval) {
19
+ throw new Error(context.t('error.activity-approval not found', {
20
+ activityApproval: id
21
+ }));
22
+ }
23
+ return await repository.save(Object.assign(Object.assign({}, activityApproval), { comment, updater: user }));
24
+ }
25
+ async approveActivityApproval(id, comment, context) {
26
+ return await (0, approve_1.approve)({ id, comment }, context);
27
+ }
28
+ async rejectActivityApproval(id, comment, context) {
29
+ return await (0, reject_1.reject)({ id, comment }, context);
30
+ }
31
+ async abortActivityApproval(id, comment, context) {
32
+ return await (0, abort_1.abort)({ id, comment }, context);
33
+ }
34
+ };
35
+ tslib_1.__decorate([
36
+ (0, type_graphql_1.Directive)('@transaction'),
37
+ (0, type_graphql_1.Mutation)(returns => activity_approval_1.ActivityApproval, { nullable: true, description: 'To approve ActivityApproval' }),
38
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
39
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('comment', { nullable: true })),
40
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
41
+ tslib_1.__metadata("design:type", Function),
42
+ tslib_1.__metadata("design:paramtypes", [String, String, Object]),
43
+ tslib_1.__metadata("design:returntype", Promise)
44
+ ], ActivityApprovalMutation.prototype, "saveActivityApproval", null);
45
+ tslib_1.__decorate([
46
+ (0, type_graphql_1.Directive)('@transaction'),
47
+ (0, type_graphql_1.Mutation)(returns => activity_approval_1.ActivityApproval, { nullable: true, description: 'To approve ActivityApproval' }),
48
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
49
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('comment', { nullable: true })),
50
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
51
+ tslib_1.__metadata("design:type", Function),
52
+ tslib_1.__metadata("design:paramtypes", [String, String, Object]),
53
+ tslib_1.__metadata("design:returntype", Promise)
54
+ ], ActivityApprovalMutation.prototype, "approveActivityApproval", null);
55
+ tslib_1.__decorate([
56
+ (0, type_graphql_1.Directive)('@transaction'),
57
+ (0, type_graphql_1.Mutation)(returns => activity_approval_1.ActivityApproval, { nullable: true, description: 'To reject ActivityApproval' }),
58
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
59
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('comment', { nullable: true })),
60
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
61
+ tslib_1.__metadata("design:type", Function),
62
+ tslib_1.__metadata("design:paramtypes", [String, String, Object]),
63
+ tslib_1.__metadata("design:returntype", Promise)
64
+ ], ActivityApprovalMutation.prototype, "rejectActivityApproval", null);
65
+ tslib_1.__decorate([
66
+ (0, type_graphql_1.Directive)('@transaction'),
67
+ (0, type_graphql_1.Mutation)(returns => activity_approval_1.ActivityApproval, { nullable: true, description: 'To abort ActivityApproval' }),
68
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
69
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('comment', { nullable: true })),
70
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
71
+ tslib_1.__metadata("design:type", Function),
72
+ tslib_1.__metadata("design:paramtypes", [String, String, Object]),
73
+ tslib_1.__metadata("design:returntype", Promise)
74
+ ], ActivityApprovalMutation.prototype, "abortActivityApproval", null);
75
+ ActivityApprovalMutation = tslib_1.__decorate([
76
+ (0, type_graphql_1.Resolver)(activity_approval_1.ActivityApproval)
77
+ ], ActivityApprovalMutation);
78
+ exports.ActivityApprovalMutation = ActivityApprovalMutation;
79
+ //# sourceMappingURL=activity-approval-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-approval-mutation.js","sourceRoot":"","sources":["../../../server/service/activity-approval/activity-approval-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\n\nimport { ActivityApproval, ActivityApprovalJudgment } from './activity-approval'\nimport { abort } from '../../controllers/activity-approval/abort'\nimport { reject } from '../../controllers/activity-approval/reject'\nimport { approve } from '../../controllers/activity-approval/approve'\n\n@Resolver(ActivityApproval)\nexport class ActivityApprovalMutation {\n /* transactions ... */\n\n @Directive('@transaction')\n @Mutation(returns => ActivityApproval!, { nullable: true, description: 'To approve ActivityApproval' })\n async saveActivityApproval(\n @Arg('id') id: string,\n @Arg('comment', { nullable: true }) comment: string,\n @Ctx() context: ResolverContext\n ): Promise<ActivityApproval> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityApproval)\n\n var activityApproval = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!activityApproval) {\n throw new Error(\n context.t('error.activity-approval not found', {\n activityApproval: id\n })\n )\n }\n\n return await repository.save({\n ...activityApproval,\n comment,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => ActivityApproval!, { nullable: true, description: 'To approve ActivityApproval' })\n async approveActivityApproval(\n @Arg('id') id: string,\n @Arg('comment', { nullable: true }) comment: string,\n @Ctx() context: ResolverContext\n ): Promise<ActivityApproval> {\n return await approve({ id, comment }, context)\n }\n\n @Directive('@transaction')\n @Mutation(returns => ActivityApproval!, { nullable: true, description: 'To reject ActivityApproval' })\n async rejectActivityApproval(\n @Arg('id') id: string,\n @Arg('comment', { nullable: true }) comment: string,\n @Ctx() context: ResolverContext\n ): Promise<ActivityApproval> {\n return await reject({ id, comment }, context)\n }\n\n @Directive('@transaction')\n @Mutation(returns => ActivityApproval!, { nullable: true, description: 'To abort ActivityApproval' })\n async abortActivityApproval(\n @Arg('id') id: string,\n @Arg('comment', { nullable: true }) comment: string,\n @Ctx() context: ResolverContext\n ): Promise<ActivityApproval> {\n return await abort({ id, comment }, context)\n }\n}\n"]}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActivityApprovalQuery = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const activity_thread_1 = require("../activity-thread/activity-thread");
9
+ const activity_approval_1 = require("./activity-approval");
10
+ const activity_approval_type_1 = require("./activity-approval-type");
11
+ let ActivityApprovalQuery = class ActivityApprovalQuery {
12
+ async activityApproval(id, context) {
13
+ const { domain } = context.state;
14
+ return await (0, shell_1.getRepository)(activity_approval_1.ActivityApproval).findOne({
15
+ where: { domain: { id: domain.id }, id }
16
+ });
17
+ }
18
+ async activityApprovals(params, context) {
19
+ const { domain } = context.state;
20
+ const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
21
+ domain,
22
+ params,
23
+ repository: (0, shell_1.getRepository)(activity_approval_1.ActivityApproval),
24
+ searchables: ['name', 'description']
25
+ });
26
+ const [items, total] = await queryBuilder.getManyAndCount();
27
+ return { items, total };
28
+ }
29
+ async approvalWaitingList(params, context) {
30
+ var { domain, user } = context.state;
31
+ const judgment = [
32
+ activity_approval_1.ActivityApprovalJudgment.Escalated,
33
+ activity_approval_1.ActivityApprovalJudgment.Delegated,
34
+ activity_approval_1.ActivityApprovalJudgment.Approved,
35
+ activity_approval_1.ActivityApprovalJudgment.Rejected
36
+ ];
37
+ const [items, total] = await (0, shell_1.getQueryBuilderFromListParams)({
38
+ repository: (0, shell_1.getRepository)(activity_approval_1.ActivityApproval),
39
+ params,
40
+ domain,
41
+ alias: 'ap',
42
+ searchables: ['name', 'description'],
43
+ filtersMap: {
44
+ name: {
45
+ relationColumn: 'activityThread.activityInstance',
46
+ columnName: 'name'
47
+ },
48
+ description: {
49
+ relationColumn: 'activityThread.activityInstance',
50
+ columnName: 'description'
51
+ }
52
+ }
53
+ })
54
+ .andWhere('ap.judgment NOT IN (:...judgment)', { judgment })
55
+ .andWhere('ap.approver = :user', { user: user.id })
56
+ .getManyAndCount();
57
+ return { items, total };
58
+ }
59
+ async activityThread(activityApproval) {
60
+ return await (0, shell_1.getRepository)(activity_thread_1.ActivityThread).findOneBy({ id: activityApproval.activityThreadId });
61
+ }
62
+ async domain(activityApproval) {
63
+ return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: activityApproval.domainId });
64
+ }
65
+ async updater(activityApproval) {
66
+ return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: activityApproval.updaterId });
67
+ }
68
+ async creator(activityApproval) {
69
+ return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: activityApproval.creatorId });
70
+ }
71
+ };
72
+ tslib_1.__decorate([
73
+ (0, type_graphql_1.Query)(returns => activity_approval_1.ActivityApproval, { nullable: true, description: 'To fetch a ActivityApproval' }),
74
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
75
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
76
+ tslib_1.__metadata("design:type", Function),
77
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
78
+ tslib_1.__metadata("design:returntype", Promise)
79
+ ], ActivityApprovalQuery.prototype, "activityApproval", null);
80
+ tslib_1.__decorate([
81
+ (0, type_graphql_1.Query)(returns => activity_approval_type_1.ActivityApprovalList, { description: 'To fetch multiple ActivityApprovals' }),
82
+ tslib_1.__param(0, (0, type_graphql_1.Args)()),
83
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
84
+ tslib_1.__metadata("design:type", Function),
85
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
86
+ tslib_1.__metadata("design:returntype", Promise)
87
+ ], ActivityApprovalQuery.prototype, "activityApprovals", null);
88
+ tslib_1.__decorate([
89
+ (0, type_graphql_1.Query)(returns => activity_approval_type_1.ActivityApprovalList, { description: 'To fetch my own ActivityApprovals' }),
90
+ tslib_1.__param(0, (0, type_graphql_1.Args)()),
91
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
92
+ tslib_1.__metadata("design:type", Function),
93
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
94
+ tslib_1.__metadata("design:returntype", Promise)
95
+ ], ActivityApprovalQuery.prototype, "approvalWaitingList", null);
96
+ tslib_1.__decorate([
97
+ (0, type_graphql_1.FieldResolver)(type => activity_thread_1.ActivityThread),
98
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
99
+ tslib_1.__metadata("design:type", Function),
100
+ tslib_1.__metadata("design:paramtypes", [activity_approval_1.ActivityApproval]),
101
+ tslib_1.__metadata("design:returntype", Promise)
102
+ ], ActivityApprovalQuery.prototype, "activityThread", null);
103
+ tslib_1.__decorate([
104
+ (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
105
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
106
+ tslib_1.__metadata("design:type", Function),
107
+ tslib_1.__metadata("design:paramtypes", [activity_approval_1.ActivityApproval]),
108
+ tslib_1.__metadata("design:returntype", Promise)
109
+ ], ActivityApprovalQuery.prototype, "domain", null);
110
+ tslib_1.__decorate([
111
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
112
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
113
+ tslib_1.__metadata("design:type", Function),
114
+ tslib_1.__metadata("design:paramtypes", [activity_approval_1.ActivityApproval]),
115
+ tslib_1.__metadata("design:returntype", Promise)
116
+ ], ActivityApprovalQuery.prototype, "updater", null);
117
+ tslib_1.__decorate([
118
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
119
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
120
+ tslib_1.__metadata("design:type", Function),
121
+ tslib_1.__metadata("design:paramtypes", [activity_approval_1.ActivityApproval]),
122
+ tslib_1.__metadata("design:returntype", Promise)
123
+ ], ActivityApprovalQuery.prototype, "creator", null);
124
+ ActivityApprovalQuery = tslib_1.__decorate([
125
+ (0, type_graphql_1.Resolver)(activity_approval_1.ActivityApproval)
126
+ ], ActivityApprovalQuery);
127
+ exports.ActivityApprovalQuery = ActivityApprovalQuery;
128
+ //# sourceMappingURL=activity-approval-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-approval-query.js","sourceRoot":"","sources":["../../../server/service/activity-approval/activity-approval-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ActivityInstance } from '../activity-instance/activity-instance'\nimport { ActivityThread } from '../activity-thread/activity-thread'\nimport { ActivityApproval, ActivityApprovalJudgment } from './activity-approval'\nimport { ActivityApprovalList } from './activity-approval-type'\n\n@Resolver(ActivityApproval)\nexport class ActivityApprovalQuery {\n @Query(returns => ActivityApproval!, { nullable: true, description: 'To fetch a ActivityApproval' })\n async activityApproval(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<ActivityApproval> {\n const { domain } = context.state\n\n return await getRepository(ActivityApproval).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => ActivityApprovalList, { description: 'To fetch multiple ActivityApprovals' })\n async activityApprovals(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityApprovalList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: getRepository(ActivityApproval),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ActivityApprovalList, { description: 'To fetch my own ActivityApprovals' })\n async approvalWaitingList(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityApprovalList> {\n var { domain, user } = context.state\n\n const judgment = [\n ActivityApprovalJudgment.Escalated,\n ActivityApprovalJudgment.Delegated,\n ActivityApprovalJudgment.Approved,\n ActivityApprovalJudgment.Rejected\n ]\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(ActivityApproval),\n params,\n domain,\n alias: 'ap',\n searchables: ['name', 'description'],\n filtersMap: {\n name: {\n relationColumn: 'activityThread.activityInstance',\n columnName: 'name'\n },\n description: {\n relationColumn: 'activityThread.activityInstance',\n columnName: 'description'\n }\n }\n })\n .andWhere('ap.judgment NOT IN (:...judgment)', { judgment })\n .andWhere('ap.approver = :user', { user: user.id })\n .getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => ActivityThread)\n async activityThread(@Root() activityApproval: ActivityApproval): Promise<ActivityThread> {\n return await getRepository(ActivityThread).findOneBy({ id: activityApproval.activityThreadId })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() activityApproval: ActivityApproval): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: activityApproval.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() activityApproval: ActivityApproval): Promise<User> {\n return await getRepository(User).findOneBy({ id: activityApproval.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() activityApproval: ActivityApproval): Promise<User> {\n return await getRepository(User).findOneBy({ id: activityApproval.creatorId })\n }\n}\n"]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActivityApprovalList = exports.ActivityApprovalPatch = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const activity_approval_1 = require("./activity-approval");
7
+ let ActivityApprovalPatch = class ActivityApprovalPatch {
8
+ };
9
+ tslib_1.__decorate([
10
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
11
+ tslib_1.__metadata("design:type", String)
12
+ ], ActivityApprovalPatch.prototype, "id", void 0);
13
+ tslib_1.__decorate([
14
+ (0, type_graphql_1.Field)({ nullable: true }),
15
+ tslib_1.__metadata("design:type", String)
16
+ ], ActivityApprovalPatch.prototype, "judgment", void 0);
17
+ tslib_1.__decorate([
18
+ (0, type_graphql_1.Field)({ nullable: true }),
19
+ tslib_1.__metadata("design:type", String)
20
+ ], ActivityApprovalPatch.prototype, "comment", void 0);
21
+ ActivityApprovalPatch = tslib_1.__decorate([
22
+ (0, type_graphql_1.InputType)()
23
+ ], ActivityApprovalPatch);
24
+ exports.ActivityApprovalPatch = ActivityApprovalPatch;
25
+ let ActivityApprovalList = class ActivityApprovalList {
26
+ };
27
+ tslib_1.__decorate([
28
+ (0, type_graphql_1.Field)(type => [activity_approval_1.ActivityApproval]),
29
+ tslib_1.__metadata("design:type", Array)
30
+ ], ActivityApprovalList.prototype, "items", void 0);
31
+ tslib_1.__decorate([
32
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
33
+ tslib_1.__metadata("design:type", Number)
34
+ ], ActivityApprovalList.prototype, "total", void 0);
35
+ ActivityApprovalList = tslib_1.__decorate([
36
+ (0, type_graphql_1.ObjectType)()
37
+ ], ActivityApprovalList);
38
+ exports.ActivityApprovalList = ActivityApprovalList;
39
+ //# sourceMappingURL=activity-approval-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-approval-type.js","sourceRoot":"","sources":["../../../server/service/activity-approval/activity-approval-type.ts"],"names":[],"mappings":";;;;AAEA,+CAAsF;AAItF,2DAAgF;AAGzE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CASjC,CAAA;AARC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACS;AAEnC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACV;AARL,qBAAqB;IADjC,IAAA,wBAAS,GAAE;GACC,qBAAqB,CASjC;AATY,sDAAqB;AAY3B,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAMhC,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oCAAgB,CAAC,CAAC;;mDACT;AAEzB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;mDACN;AALF,oBAAoB;IADhC,IAAA,yBAAU,GAAE;GACA,oBAAoB,CAMhC;AANY,oDAAoB","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { ActivityApproval, ActivityApprovalJudgment } from './activity-approval'\n\n@InputType()\nexport class ActivityApprovalPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n judgment?: ActivityApprovalJudgment\n\n @Field({ nullable: true })\n comment?: string\n}\n\n@ObjectType()\nexport class ActivityApprovalList {\n @Field(type => [ActivityApproval])\n items: ActivityApproval[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActivityApproval = exports.ActivityApprovalJudgment = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const typeorm_1 = require("typeorm");
6
+ const type_graphql_1 = require("type-graphql");
7
+ const shell_1 = require("@things-factory/shell");
8
+ const auth_base_1 = require("@things-factory/auth-base");
9
+ const activity_thread_1 = require("../activity-thread/activity-thread");
10
+ var ActivityApprovalJudgment;
11
+ (function (ActivityApprovalJudgment) {
12
+ ActivityApprovalJudgment["Pending"] = "";
13
+ ActivityApprovalJudgment["Rejected"] = "rejected";
14
+ ActivityApprovalJudgment["Escalated"] = "escalated";
15
+ ActivityApprovalJudgment["Delegated"] = "delegated";
16
+ ActivityApprovalJudgment["Approved"] = "approved";
17
+ ActivityApprovalJudgment["Aborted"] = "aborted";
18
+ })(ActivityApprovalJudgment = exports.ActivityApprovalJudgment || (exports.ActivityApprovalJudgment = {}));
19
+ (0, type_graphql_1.registerEnumType)(ActivityApprovalJudgment, {
20
+ name: 'ActivityApprovalJudgment',
21
+ description: 'judgment enumeration of a activityApproval'
22
+ });
23
+ let ActivityApproval = class ActivityApproval {
24
+ constructor() {
25
+ this.order = 0;
26
+ this.judgment = ActivityApprovalJudgment.Pending;
27
+ }
28
+ };
29
+ tslib_1.__decorate([
30
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
31
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
32
+ tslib_1.__metadata("design:type", String)
33
+ ], ActivityApproval.prototype, "id", void 0);
34
+ tslib_1.__decorate([
35
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
36
+ (0, type_graphql_1.Field)({ nullable: true }),
37
+ tslib_1.__metadata("design:type", shell_1.Domain)
38
+ ], ActivityApproval.prototype, "domain", void 0);
39
+ tslib_1.__decorate([
40
+ (0, typeorm_1.RelationId)((activityApproval) => activityApproval.domain),
41
+ tslib_1.__metadata("design:type", String)
42
+ ], ActivityApproval.prototype, "domainId", void 0);
43
+ tslib_1.__decorate([
44
+ (0, typeorm_1.ManyToOne)(type => activity_thread_1.ActivityThread, { nullable: true }),
45
+ (0, type_graphql_1.Field)(type => activity_thread_1.ActivityThread, { nullable: true }),
46
+ tslib_1.__metadata("design:type", activity_thread_1.ActivityThread)
47
+ ], ActivityApproval.prototype, "activityThread", void 0);
48
+ tslib_1.__decorate([
49
+ (0, typeorm_1.RelationId)((activityApproval) => activityApproval.activityThread),
50
+ tslib_1.__metadata("design:type", String)
51
+ ], ActivityApproval.prototype, "activityThreadId", void 0);
52
+ tslib_1.__decorate([
53
+ (0, typeorm_1.Column)({ nullable: true, default: 0 }),
54
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Nth order approval for given activity thread' }),
55
+ tslib_1.__metadata("design:type", Number)
56
+ ], ActivityApproval.prototype, "order", void 0);
57
+ tslib_1.__decorate([
58
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
59
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
60
+ tslib_1.__metadata("design:type", auth_base_1.User)
61
+ ], ActivityApproval.prototype, "approver", void 0);
62
+ tslib_1.__decorate([
63
+ (0, typeorm_1.RelationId)((activityApproval) => activityApproval.approver),
64
+ tslib_1.__metadata("design:type", String)
65
+ ], ActivityApproval.prototype, "approverId", void 0);
66
+ tslib_1.__decorate([
67
+ (0, typeorm_1.Column)({ nullable: true, default: '' }),
68
+ (0, type_graphql_1.Field)({ nullable: true }),
69
+ tslib_1.__metadata("design:type", String)
70
+ ], ActivityApproval.prototype, "judgment", void 0);
71
+ tslib_1.__decorate([
72
+ (0, typeorm_1.Column)({ nullable: true }),
73
+ (0, type_graphql_1.Field)({ nullable: true }),
74
+ tslib_1.__metadata("design:type", String)
75
+ ], ActivityApproval.prototype, "comment", void 0);
76
+ tslib_1.__decorate([
77
+ (0, typeorm_1.Column)({ nullable: true }),
78
+ (0, type_graphql_1.Field)({ nullable: true }),
79
+ tslib_1.__metadata("design:type", String)
80
+ ], ActivityApproval.prototype, "transaction", void 0);
81
+ tslib_1.__decorate([
82
+ (0, typeorm_1.CreateDateColumn)(),
83
+ (0, type_graphql_1.Field)({ nullable: true }),
84
+ tslib_1.__metadata("design:type", Date)
85
+ ], ActivityApproval.prototype, "createdAt", void 0);
86
+ tslib_1.__decorate([
87
+ (0, typeorm_1.UpdateDateColumn)(),
88
+ (0, type_graphql_1.Field)({ nullable: true }),
89
+ tslib_1.__metadata("design:type", Date)
90
+ ], ActivityApproval.prototype, "updatedAt", void 0);
91
+ tslib_1.__decorate([
92
+ (0, typeorm_1.Column)({ nullable: true }),
93
+ (0, type_graphql_1.Field)({ nullable: true }),
94
+ tslib_1.__metadata("design:type", Date)
95
+ ], ActivityApproval.prototype, "terminatedAt", void 0);
96
+ tslib_1.__decorate([
97
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
98
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
99
+ tslib_1.__metadata("design:type", auth_base_1.User)
100
+ ], ActivityApproval.prototype, "creator", void 0);
101
+ tslib_1.__decorate([
102
+ (0, typeorm_1.RelationId)((activityApproval) => activityApproval.creator),
103
+ tslib_1.__metadata("design:type", String)
104
+ ], ActivityApproval.prototype, "creatorId", void 0);
105
+ tslib_1.__decorate([
106
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
107
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
108
+ tslib_1.__metadata("design:type", auth_base_1.User)
109
+ ], ActivityApproval.prototype, "updater", void 0);
110
+ tslib_1.__decorate([
111
+ (0, typeorm_1.RelationId)((activityApproval) => activityApproval.updater),
112
+ tslib_1.__metadata("design:type", String)
113
+ ], ActivityApproval.prototype, "updaterId", void 0);
114
+ tslib_1.__decorate([
115
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
116
+ (0, type_graphql_1.Field)({ nullable: true }),
117
+ tslib_1.__metadata("design:type", auth_base_1.User)
118
+ ], ActivityApproval.prototype, "terminator", void 0);
119
+ tslib_1.__decorate([
120
+ (0, typeorm_1.RelationId)((activityApproval) => activityApproval.terminator),
121
+ tslib_1.__metadata("design:type", String)
122
+ ], ActivityApproval.prototype, "terminatorId", void 0);
123
+ ActivityApproval = tslib_1.__decorate([
124
+ (0, typeorm_1.Entity)(),
125
+ (0, typeorm_1.Index)('ix_activity_approval_0', (activityApproval) => [
126
+ activityApproval.domain,
127
+ activityApproval.activityThread,
128
+ activityApproval.order,
129
+ activityApproval.approver,
130
+ activityApproval.createdAt
131
+ ], { unique: true }),
132
+ (0, type_graphql_1.ObjectType)({ description: 'Entity for ActivityApproval' })
133
+ ], ActivityApproval);
134
+ exports.ActivityApproval = ActivityApproval;
135
+ //# sourceMappingURL=activity-approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-approval.js","sourceRoot":"","sources":["../../../server/service/activity-approval/activity-approval.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ActivityThread } from '../activity-thread/activity-thread'\n\nexport enum ActivityApprovalJudgment {\n Pending = '',\n Rejected = 'rejected',\n Escalated = 'escalated',\n Delegated = 'delegated',\n Approved = 'approved',\n Aborted = 'aborted'\n}\n\nregisterEnumType(ActivityApprovalJudgment, {\n name: 'ActivityApprovalJudgment',\n description: 'judgment enumeration of a activityApproval'\n})\n\n@Entity()\n@Index(\n 'ix_activity_approval_0',\n (activityApproval: ActivityApproval) => [\n activityApproval.domain,\n activityApproval.activityThread,\n activityApproval.order,\n activityApproval.approver,\n activityApproval.createdAt\n ],\n { unique: true }\n)\n@ObjectType({ description: 'Entity for ActivityApproval' })\nexport class ActivityApproval {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((activityApproval: ActivityApproval) => activityApproval.domain)\n domainId?: string\n\n @ManyToOne(type => ActivityThread, { nullable: true })\n @Field(type => ActivityThread, { nullable: true })\n activityThread?: ActivityThread\n\n @RelationId((activityApproval: ActivityApproval) => activityApproval.activityThread)\n activityThreadId?: string\n\n @Column({ nullable: true, default: 0 })\n @Field({ nullable: true, description: 'Nth order approval for given activity thread' })\n order?: number = 0\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n approver?: User\n\n @RelationId((activityApproval: ActivityApproval) => activityApproval.approver)\n approverId?: string\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n judgment?: ActivityApprovalJudgment = ActivityApprovalJudgment.Pending\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n comment?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n transaction?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n terminatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((activityApproval: ActivityApproval) => activityApproval.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((activityApproval: ActivityApproval) => activityApproval.updater)\n updaterId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n terminator?: User\n\n @RelationId((activityApproval: ActivityApproval) => activityApproval.terminator)\n terminatorId?: string\n}\n"]}