@things-factory/worklist 9.0.0-beta.5 → 9.0.0-beta.7

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 (281) hide show
  1. package/dist-client/components/activity-thread-timeline.d.ts +3 -3
  2. package/dist-client/components/activity-thread-timeline.js +1 -1
  3. package/dist-client/components/activity-thread-timeline.js.map +1 -1
  4. package/dist-client/grist-editor/popup-activity-search-keys-input.d.ts +1 -1
  5. package/dist-client/grist-editor/popup-activity-search-keys-input.js.map +1 -1
  6. package/dist-client/pages/activity/activity-partial-view.d.ts +3 -3
  7. package/dist-client/pages/activity/activity-partial-view.js +1 -1
  8. package/dist-client/pages/activity/activity-partial-view.js.map +1 -1
  9. package/dist-client/pages/activity-approval/activity-approval-list-page.d.ts +2 -2
  10. package/dist-client/pages/activity-approval/activity-approval-list-page.js +1 -1
  11. package/dist-client/pages/activity-approval/activity-approval-list-page.js.map +1 -1
  12. package/dist-client/pages/activity-instance/activity-instance-search-page.d.ts +1 -1
  13. package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +1 -1
  14. package/dist-client/pages/activity-instance/activity-instance-view.d.ts +3 -3
  15. package/dist-client/pages/activity-instance/activity-instance-view.js +1 -1
  16. package/dist-client/pages/activity-instance/activity-instance-view.js.map +1 -1
  17. package/dist-client/pages/activity-stats/activity-stats-list-page.d.ts +2 -2
  18. package/dist-client/pages/activity-stats/activity-stats-list-page.js +1 -1
  19. package/dist-client/pages/activity-stats/activity-stats-list-page.js.map +1 -1
  20. package/dist-client/pages/activity-template/activity-template-model-item-list.js +1 -1
  21. package/dist-client/pages/activity-template/activity-template-model-item-list.js.map +1 -1
  22. package/dist-client/pages/activity-thread/activity-thread-view.d.ts +1 -1
  23. package/dist-client/pages/activity-thread/activity-thread-view.js +1 -1
  24. package/dist-client/pages/activity-thread/activity-thread-view.js.map +1 -1
  25. package/dist-client/pages/installable-activity/installable-activity-model-item-list.js +1 -1
  26. package/dist-client/pages/installable-activity/installable-activity-model-item-list.js.map +1 -1
  27. package/dist-client/pages/todo/done-list-page.js +1 -1
  28. package/dist-client/pages/todo/done-list-page.js.map +1 -1
  29. package/dist-client/pages/todo/todo-list-page.js +1 -1
  30. package/dist-client/pages/todo/todo-list-page.js.map +1 -1
  31. package/dist-client/tsconfig.tsbuildinfo +1 -1
  32. package/dist-client/types/activity-approval.d.ts +1 -1
  33. package/dist-client/types/activity-approval.js.map +1 -1
  34. package/dist-client/types/activity-instance-type.d.ts +2 -2
  35. package/dist-client/types/activity-instance-type.js.map +1 -1
  36. package/dist-client/types/activity-instance.d.ts +2 -2
  37. package/dist-client/types/activity-instance.js.map +1 -1
  38. package/dist-client/types/activity-thread-history.d.ts +3 -3
  39. package/dist-client/types/activity-thread-history.js.map +1 -1
  40. package/dist-client/types/activity-thread-type.d.ts +1 -1
  41. package/dist-client/types/activity-thread-type.js.map +1 -1
  42. package/dist-client/types/activity-thread.d.ts +3 -3
  43. package/dist-client/types/activity-thread.js.map +1 -1
  44. package/dist-client/types/activity.d.ts +2 -2
  45. package/dist-client/types/activity.js.map +1 -1
  46. package/dist-server/controllers/activity-approval/_abort.d.ts +1 -1
  47. package/dist-server/controllers/activity-approval/_abort.js +4 -4
  48. package/dist-server/controllers/activity-approval/_abort.js.map +1 -1
  49. package/dist-server/controllers/activity-approval/abort.d.ts +1 -1
  50. package/dist-server/controllers/activity-approval/abort.js +9 -9
  51. package/dist-server/controllers/activity-approval/abort.js.map +1 -1
  52. package/dist-server/controllers/activity-approval/approve.d.ts +1 -1
  53. package/dist-server/controllers/activity-approval/approve.js +18 -18
  54. package/dist-server/controllers/activity-approval/approve.js.map +1 -1
  55. package/dist-server/controllers/activity-approval/check-authority.d.ts +1 -1
  56. package/dist-server/controllers/activity-approval/check-authority.js.map +1 -1
  57. package/dist-server/controllers/activity-approval/delegate.d.ts +1 -1
  58. package/dist-server/controllers/activity-approval/delegate.js +6 -6
  59. package/dist-server/controllers/activity-approval/delegate.js.map +1 -1
  60. package/dist-server/controllers/activity-approval/reject.d.ts +1 -1
  61. package/dist-server/controllers/activity-approval/reject.js +10 -10
  62. package/dist-server/controllers/activity-approval/reject.js.map +1 -1
  63. package/dist-server/controllers/activity-approval/save.d.ts +1 -1
  64. package/dist-server/controllers/activity-approval/save.js +8 -8
  65. package/dist-server/controllers/activity-approval/save.js.map +1 -1
  66. package/dist-server/controllers/activity-installation/activity-installation-controller.d.ts +1 -1
  67. package/dist-server/controllers/activity-installation/activity-installation-controller.js.map +1 -1
  68. package/dist-server/controllers/activity-instance/abort.d.ts +1 -1
  69. package/dist-server/controllers/activity-instance/abort.js +10 -10
  70. package/dist-server/controllers/activity-instance/abort.js.map +1 -1
  71. package/dist-server/controllers/activity-instance/assign.d.ts +1 -1
  72. package/dist-server/controllers/activity-instance/assign.js +7 -7
  73. package/dist-server/controllers/activity-instance/assign.js.map +1 -1
  74. package/dist-server/controllers/activity-instance/draft.d.ts +2 -2
  75. package/dist-server/controllers/activity-instance/draft.js +8 -8
  76. package/dist-server/controllers/activity-instance/draft.js.map +1 -1
  77. package/dist-server/controllers/activity-instance/end.d.ts +1 -1
  78. package/dist-server/controllers/activity-instance/end.js +8 -8
  79. package/dist-server/controllers/activity-instance/end.js.map +1 -1
  80. package/dist-server/controllers/activity-instance/index.d.ts +6 -6
  81. package/dist-server/controllers/activity-instance/index.js +6 -6
  82. package/dist-server/controllers/activity-instance/index.js.map +1 -1
  83. package/dist-server/controllers/activity-instance/issue.d.ts +2 -2
  84. package/dist-server/controllers/activity-instance/issue.js +18 -18
  85. package/dist-server/controllers/activity-instance/issue.js.map +1 -1
  86. package/dist-server/controllers/activity-instance/pick.d.ts +1 -1
  87. package/dist-server/controllers/activity-instance/pick.js +6 -6
  88. package/dist-server/controllers/activity-instance/pick.js.map +1 -1
  89. package/dist-server/controllers/activity-thread/_abort.d.ts +1 -1
  90. package/dist-server/controllers/activity-thread/_abort.js +8 -8
  91. package/dist-server/controllers/activity-thread/_abort.js.map +1 -1
  92. package/dist-server/controllers/activity-thread/abort.d.ts +1 -1
  93. package/dist-server/controllers/activity-thread/abort.js +9 -9
  94. package/dist-server/controllers/activity-thread/abort.js.map +1 -1
  95. package/dist-server/controllers/activity-thread/check-authority.d.ts +1 -1
  96. package/dist-server/controllers/activity-thread/check-authority.js +5 -5
  97. package/dist-server/controllers/activity-thread/check-authority.js.map +1 -1
  98. package/dist-server/controllers/activity-thread/delegate.d.ts +1 -1
  99. package/dist-server/controllers/activity-thread/delegate.js +8 -8
  100. package/dist-server/controllers/activity-thread/delegate.js.map +1 -1
  101. package/dist-server/controllers/activity-thread/end.d.ts +1 -1
  102. package/dist-server/controllers/activity-thread/end.js +8 -8
  103. package/dist-server/controllers/activity-thread/end.js.map +1 -1
  104. package/dist-server/controllers/activity-thread/index.d.ts +7 -7
  105. package/dist-server/controllers/activity-thread/index.js +7 -7
  106. package/dist-server/controllers/activity-thread/index.js.map +1 -1
  107. package/dist-server/controllers/activity-thread/restart.d.ts +1 -1
  108. package/dist-server/controllers/activity-thread/restart.js +9 -9
  109. package/dist-server/controllers/activity-thread/restart.js.map +1 -1
  110. package/dist-server/controllers/activity-thread/save.d.ts +2 -2
  111. package/dist-server/controllers/activity-thread/save.js +8 -8
  112. package/dist-server/controllers/activity-thread/save.js.map +1 -1
  113. package/dist-server/controllers/activity-thread/start.d.ts +1 -1
  114. package/dist-server/controllers/activity-thread/start.js +8 -8
  115. package/dist-server/controllers/activity-thread/start.js.map +1 -1
  116. package/dist-server/controllers/activity-thread/submit.d.ts +1 -1
  117. package/dist-server/controllers/activity-thread/submit.js +15 -15
  118. package/dist-server/controllers/activity-thread/submit.js.map +1 -1
  119. package/dist-server/controllers/common.d.ts +4 -4
  120. package/dist-server/controllers/common.js +28 -28
  121. package/dist-server/controllers/common.js.map +1 -1
  122. package/dist-server/controllers/index.d.ts +2 -2
  123. package/dist-server/controllers/index.js +2 -2
  124. package/dist-server/controllers/index.js.map +1 -1
  125. package/dist-server/index.d.ts +3 -3
  126. package/dist-server/index.js +3 -3
  127. package/dist-server/index.js.map +1 -1
  128. package/dist-server/routes.js +2 -2
  129. package/dist-server/routes.js.map +1 -1
  130. package/dist-server/service/activity/activity-history.d.ts +2 -2
  131. package/dist-server/service/activity/activity-history.js +4 -4
  132. package/dist-server/service/activity/activity-history.js.map +1 -1
  133. package/dist-server/service/activity/activity-mutation.d.ts +2 -2
  134. package/dist-server/service/activity/activity-mutation.js +24 -24
  135. package/dist-server/service/activity/activity-mutation.js.map +1 -1
  136. package/dist-server/service/activity/activity-query.d.ts +2 -2
  137. package/dist-server/service/activity/activity-query.js +26 -26
  138. package/dist-server/service/activity/activity-query.js.map +1 -1
  139. package/dist-server/service/activity/activity-type.d.ts +3 -3
  140. package/dist-server/service/activity/activity-type.js +2 -2
  141. package/dist-server/service/activity/activity-type.js.map +1 -1
  142. package/dist-server/service/activity/activity.d.ts +2 -2
  143. package/dist-server/service/activity/activity.js +4 -4
  144. package/dist-server/service/activity/activity.js.map +1 -1
  145. package/dist-server/service/activity/event-subscriber.d.ts +2 -2
  146. package/dist-server/service/activity/event-subscriber.js +4 -4
  147. package/dist-server/service/activity/event-subscriber.js.map +1 -1
  148. package/dist-server/service/activity/index.d.ts +5 -5
  149. package/dist-server/service/activity/index.js +8 -8
  150. package/dist-server/service/activity/index.js.map +1 -1
  151. package/dist-server/service/activity-approval/activity-approval-mutation.d.ts +1 -1
  152. package/dist-server/service/activity-approval/activity-approval-mutation.js +14 -14
  153. package/dist-server/service/activity-approval/activity-approval-mutation.js.map +1 -1
  154. package/dist-server/service/activity-approval/activity-approval-query.d.ts +3 -3
  155. package/dist-server/service/activity-approval/activity-approval-query.js +28 -28
  156. package/dist-server/service/activity-approval/activity-approval-query.js.map +1 -1
  157. package/dist-server/service/activity-approval/activity-approval-subscription.d.ts +1 -1
  158. package/dist-server/service/activity-approval/activity-approval-subscription.js +3 -3
  159. package/dist-server/service/activity-approval/activity-approval-subscription.js.map +1 -1
  160. package/dist-server/service/activity-approval/activity-approval-type.d.ts +1 -1
  161. package/dist-server/service/activity-approval/activity-approval-type.js +2 -2
  162. package/dist-server/service/activity-approval/activity-approval-type.js.map +1 -1
  163. package/dist-server/service/activity-approval/activity-approval.d.ts +1 -1
  164. package/dist-server/service/activity-approval/activity-approval.js +4 -4
  165. package/dist-server/service/activity-approval/activity-approval.js.map +1 -1
  166. package/dist-server/service/activity-approval/event-subscriber.d.ts +1 -1
  167. package/dist-server/service/activity-approval/event-subscriber.js +7 -7
  168. package/dist-server/service/activity-approval/event-subscriber.js.map +1 -1
  169. package/dist-server/service/activity-approval/index.d.ts +5 -5
  170. package/dist-server/service/activity-approval/index.js +8 -8
  171. package/dist-server/service/activity-approval/index.js.map +1 -1
  172. package/dist-server/service/activity-instance/activity-instance-history-query.d.ts +2 -2
  173. package/dist-server/service/activity-instance/activity-instance-history-query.js +10 -10
  174. package/dist-server/service/activity-instance/activity-instance-history-query.js.map +1 -1
  175. package/dist-server/service/activity-instance/activity-instance-history-type.d.ts +1 -1
  176. package/dist-server/service/activity-instance/activity-instance-history-type.js +2 -2
  177. package/dist-server/service/activity-instance/activity-instance-history-type.js.map +1 -1
  178. package/dist-server/service/activity-instance/activity-instance-history.d.ts +2 -2
  179. package/dist-server/service/activity-instance/activity-instance-history.js +4 -4
  180. package/dist-server/service/activity-instance/activity-instance-history.js.map +1 -1
  181. package/dist-server/service/activity-instance/activity-instance-mutation.d.ts +3 -3
  182. package/dist-server/service/activity-instance/activity-instance-mutation.js +24 -24
  183. package/dist-server/service/activity-instance/activity-instance-mutation.js.map +1 -1
  184. package/dist-server/service/activity-instance/activity-instance-query.d.ts +4 -4
  185. package/dist-server/service/activity-instance/activity-instance-query.js +37 -37
  186. package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -1
  187. package/dist-server/service/activity-instance/activity-instance-subscription.d.ts +1 -1
  188. package/dist-server/service/activity-instance/activity-instance-subscription.js +3 -3
  189. package/dist-server/service/activity-instance/activity-instance-subscription.js.map +1 -1
  190. package/dist-server/service/activity-instance/activity-instance-type.d.ts +2 -2
  191. package/dist-server/service/activity-instance/activity-instance-type.js +3 -3
  192. package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -1
  193. package/dist-server/service/activity-instance/activity-instance.d.ts +2 -2
  194. package/dist-server/service/activity-instance/activity-instance.js +8 -8
  195. package/dist-server/service/activity-instance/activity-instance.js.map +1 -1
  196. package/dist-server/service/activity-instance/event-subscriber.d.ts +2 -2
  197. package/dist-server/service/activity-instance/event-subscriber.js +5 -5
  198. package/dist-server/service/activity-instance/event-subscriber.js.map +1 -1
  199. package/dist-server/service/activity-instance/index.d.ts +7 -7
  200. package/dist-server/service/activity-instance/index.js +10 -10
  201. package/dist-server/service/activity-instance/index.js.map +1 -1
  202. package/dist-server/service/activity-stats/activity-stats-query.d.ts +1 -1
  203. package/dist-server/service/activity-stats/activity-stats-query.js +15 -15
  204. package/dist-server/service/activity-stats/activity-stats-query.js.map +1 -1
  205. package/dist-server/service/activity-stats/index.d.ts +1 -1
  206. package/dist-server/service/activity-stats/index.js +2 -2
  207. package/dist-server/service/activity-stats/index.js.map +1 -1
  208. package/dist-server/service/activity-summary/activity-summary-query.d.ts +1 -1
  209. package/dist-server/service/activity-summary/activity-summary-query.js +22 -22
  210. package/dist-server/service/activity-summary/activity-summary-query.js.map +1 -1
  211. package/dist-server/service/activity-summary/index.d.ts +2 -2
  212. package/dist-server/service/activity-summary/index.js +4 -4
  213. package/dist-server/service/activity-summary/index.js.map +1 -1
  214. package/dist-server/service/activity-template/activity-template-history.d.ts +3 -3
  215. package/dist-server/service/activity-template/activity-template-history.js +4 -4
  216. package/dist-server/service/activity-template/activity-template-history.js.map +1 -1
  217. package/dist-server/service/activity-template/activity-template-mutation.d.ts +2 -2
  218. package/dist-server/service/activity-template/activity-template-mutation.js +19 -19
  219. package/dist-server/service/activity-template/activity-template-mutation.js.map +1 -1
  220. package/dist-server/service/activity-template/activity-template-query.d.ts +3 -3
  221. package/dist-server/service/activity-template/activity-template-query.js +15 -15
  222. package/dist-server/service/activity-template/activity-template-query.js.map +1 -1
  223. package/dist-server/service/activity-template/activity-template-type.d.ts +3 -3
  224. package/dist-server/service/activity-template/activity-template-type.js +3 -3
  225. package/dist-server/service/activity-template/activity-template-type.js.map +1 -1
  226. package/dist-server/service/activity-template/activity-template.d.ts +2 -2
  227. package/dist-server/service/activity-template/activity-template.js +3 -3
  228. package/dist-server/service/activity-template/activity-template.js.map +1 -1
  229. package/dist-server/service/activity-template/event-subscriber.d.ts +2 -2
  230. package/dist-server/service/activity-template/event-subscriber.js +4 -4
  231. package/dist-server/service/activity-template/event-subscriber.js.map +1 -1
  232. package/dist-server/service/activity-template/index.d.ts +5 -5
  233. package/dist-server/service/activity-template/index.js +8 -8
  234. package/dist-server/service/activity-template/index.js.map +1 -1
  235. package/dist-server/service/activity-thread/activity-thread-history-query.d.ts +1 -1
  236. package/dist-server/service/activity-thread/activity-thread-history-query.js +15 -11
  237. package/dist-server/service/activity-thread/activity-thread-history-query.js.map +1 -1
  238. package/dist-server/service/activity-thread/activity-thread-history.d.ts +2 -2
  239. package/dist-server/service/activity-thread/activity-thread-history.js +19 -19
  240. package/dist-server/service/activity-thread/activity-thread-history.js.map +1 -1
  241. package/dist-server/service/activity-thread/activity-thread-mutation.d.ts +2 -2
  242. package/dist-server/service/activity-thread/activity-thread-mutation.js +22 -22
  243. package/dist-server/service/activity-thread/activity-thread-mutation.js.map +1 -1
  244. package/dist-server/service/activity-thread/activity-thread-query.d.ts +5 -5
  245. package/dist-server/service/activity-thread/activity-thread-query.js +33 -33
  246. package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -1
  247. package/dist-server/service/activity-thread/activity-thread-subscription.d.ts +1 -1
  248. package/dist-server/service/activity-thread/activity-thread-subscription.js +3 -3
  249. package/dist-server/service/activity-thread/activity-thread-subscription.js.map +1 -1
  250. package/dist-server/service/activity-thread/activity-thread-type.d.ts +1 -1
  251. package/dist-server/service/activity-thread/activity-thread-type.js +2 -2
  252. package/dist-server/service/activity-thread/activity-thread-type.js.map +1 -1
  253. package/dist-server/service/activity-thread/activity-thread.d.ts +2 -2
  254. package/dist-server/service/activity-thread/activity-thread.js +7 -7
  255. package/dist-server/service/activity-thread/activity-thread.js.map +1 -1
  256. package/dist-server/service/activity-thread/event-subscriber.d.ts +2 -2
  257. package/dist-server/service/activity-thread/event-subscriber.js +5 -5
  258. package/dist-server/service/activity-thread/event-subscriber.js.map +1 -1
  259. package/dist-server/service/activity-thread/index.d.ts +7 -7
  260. package/dist-server/service/activity-thread/index.js +10 -10
  261. package/dist-server/service/activity-thread/index.js.map +1 -1
  262. package/dist-server/service/index.d.ts +10 -10
  263. package/dist-server/service/index.js +34 -34
  264. package/dist-server/service/index.js.map +1 -1
  265. package/dist-server/service/installable-activity/index.d.ts +3 -3
  266. package/dist-server/service/installable-activity/index.js +5 -5
  267. package/dist-server/service/installable-activity/index.js.map +1 -1
  268. package/dist-server/service/installable-activity/installable-activity-mutation.d.ts +1 -1
  269. package/dist-server/service/installable-activity/installable-activity-mutation.js +12 -12
  270. package/dist-server/service/installable-activity/installable-activity-mutation.js.map +1 -1
  271. package/dist-server/service/installable-activity/installable-activity-query.d.ts +2 -2
  272. package/dist-server/service/installable-activity/installable-activity-query.js +10 -10
  273. package/dist-server/service/installable-activity/installable-activity-query.js.map +1 -1
  274. package/dist-server/service/installable-activity/installable-activity-type.d.ts +1 -1
  275. package/dist-server/service/installable-activity/installable-activity-type.js +2 -2
  276. package/dist-server/service/installable-activity/installable-activity-type.js.map +1 -1
  277. package/dist-server/service/installable-activity/installable-activity.d.ts +3 -3
  278. package/dist-server/service/installable-activity/installable-activity.js +5 -5
  279. package/dist-server/service/installable-activity/installable-activity.js.map +1 -1
  280. package/dist-server/tsconfig.tsbuildinfo +1 -1
  281. package/package.json +3 -3
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.start = start;
4
- const activity_thread_1 = require("../../service/activity-thread/activity-thread");
5
- const common_1 = require("../common");
6
- const check_authority_1 = require("./check-authority");
4
+ const activity_thread_js_1 = require("../../service/activity-thread/activity-thread.js");
5
+ const common_js_1 = require("../common.js");
6
+ const check_authority_js_1 = require("./check-authority.js");
7
7
  async function start(id, output, reason, context) {
8
8
  const { domain, user, tx } = context.state;
9
- const repository = tx.getRepository(activity_thread_1.ActivityThread);
9
+ const repository = tx.getRepository(activity_thread_js_1.ActivityThread);
10
10
  const activityThread = await repository.findOne({
11
11
  where: { domain: { id: domain.id }, id }
12
12
  });
@@ -15,12 +15,12 @@ async function start(id, output, reason, context) {
15
15
  activityThread: id
16
16
  }));
17
17
  }
18
- await (0, check_authority_1.checkAuthority)(activityThread, context);
18
+ await (0, check_authority_js_1.checkAuthority)(activityThread, context);
19
19
  /*
20
20
  Prerequisites for a activity thread to Be Started.
21
21
  - The previous state of the activity thread must not be terminated.
22
22
  */
23
- if (activityThread.state !== activity_thread_1.ActivityThreadStatus.Assigned) {
23
+ if (activityThread.state !== activity_thread_js_1.ActivityThreadStatus.Assigned) {
24
24
  throw new Error(context.t(`error.activity-thread should not be started`, {
25
25
  id,
26
26
  actual: activityThread.state
@@ -29,8 +29,8 @@ async function start(id, output, reason, context) {
29
29
  if (output) {
30
30
  activityThread.output = output;
31
31
  }
32
- const result = await tx.getRepository(activity_thread_1.ActivityThread).save(Object.assign(Object.assign({}, activityThread), { reason, state: activity_thread_1.ActivityThreadStatus.Started, transaction: 'start', updater: user, startedAt: new Date() }));
33
- await (0, common_1.updateActivityInstanceState)(activityThread.activityInstanceId, { causedBy: [result] }, context);
32
+ const result = await tx.getRepository(activity_thread_js_1.ActivityThread).save(Object.assign(Object.assign({}, activityThread), { reason, state: activity_thread_js_1.ActivityThreadStatus.Started, transaction: 'start', updater: user, startedAt: new Date() }));
33
+ await (0, common_js_1.updateActivityInstanceState)(activityThread.activityInstanceId, { causedBy: [result] }, context);
34
34
  return result;
35
35
  }
36
36
  //# sourceMappingURL=start.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../server/controllers/activity-thread/start.ts"],"names":[],"mappings":";;AAIA,sBAoDC;AAxDD,mFAAoG;AACpG,sCAAuD;AACvD,uDAAkD;AAE3C,KAAK,UAAU,KAAK,CACzB,EAAU,EACV,MAAc,EACd,MAAc,EACd,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,cAAc,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;KACzC,CAAC,CAAA;IAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,iCAAiC,EAAE;YAC3C,cAAc,EAAE,EAAE;SACnB,CAAC,CACH,CAAA;IACH,CAAC;IAED,MAAM,IAAA,gCAAc,EAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IAE7C;;;MAGE;IACF,IAAI,cAAc,CAAC,KAAK,KAAK,sCAAoB,CAAC,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,6CAA6C,EAAE;YACvD,EAAE;YACF,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,cAAc,CAAC,MAAM,GAAG,MAAM,CAAA;IAChC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,IAAI,iCACrD,cAAc,KACjB,MAAM,EACN,KAAK,EAAE,sCAAoB,CAAC,OAAO,EACnC,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,IAAI,IAAI,EAAE,IACrB,CAAA;IAEF,MAAM,IAAA,oCAA2B,EAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAErG,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["import { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread'\nimport { updateActivityInstanceState } from '../common'\nimport { checkAuthority } from './check-authority'\n\nexport async function start(\n id: string,\n output: object,\n reason: string,\n context: ResolverContext\n): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ActivityThread)\n const activityThread = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!activityThread) {\n throw new Error(\n context.t('error.activity-thread not found', {\n activityThread: id\n })\n )\n }\n\n await checkAuthority(activityThread, context)\n\n /* \n Prerequisites for a activity thread to Be Started.\n - The previous state of the activity thread must not be terminated.\n */\n if (activityThread.state !== ActivityThreadStatus.Assigned) {\n throw new Error(\n context.t(`error.activity-thread should not be started`, {\n id,\n actual: activityThread.state\n })\n )\n }\n\n if (output) {\n activityThread.output = output\n }\n\n const result = await tx.getRepository(ActivityThread).save({\n ...activityThread,\n reason,\n state: ActivityThreadStatus.Started,\n transaction: 'start',\n updater: user,\n startedAt: new Date()\n })\n\n await updateActivityInstanceState(activityThread.activityInstanceId, { causedBy: [result] }, context)\n\n return result\n}\n"]}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../server/controllers/activity-thread/start.ts"],"names":[],"mappings":";;AAIA,sBAoDC;AAxDD,yFAAuG;AACvG,4CAA0D;AAC1D,6DAAqD;AAE9C,KAAK,UAAU,KAAK,CACzB,EAAU,EACV,MAAc,EACd,MAAc,EACd,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,mCAAc,CAAC,CAAA;IACnD,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;KACzC,CAAC,CAAA;IAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,iCAAiC,EAAE;YAC3C,cAAc,EAAE,EAAE;SACnB,CAAC,CACH,CAAA;IACH,CAAC;IAED,MAAM,IAAA,mCAAc,EAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IAE7C;;;MAGE;IACF,IAAI,cAAc,CAAC,KAAK,KAAK,yCAAoB,CAAC,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,6CAA6C,EAAE;YACvD,EAAE;YACF,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,cAAc,CAAC,MAAM,GAAG,MAAM,CAAA;IAChC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,mCAAc,CAAC,CAAC,IAAI,iCACrD,cAAc,KACjB,MAAM,EACN,KAAK,EAAE,yCAAoB,CAAC,OAAO,EACnC,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,IAAI,IAAI,EAAE,IACrB,CAAA;IAEF,MAAM,IAAA,uCAA2B,EAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAErG,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["import { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread.js'\nimport { updateActivityInstanceState } from '../common.js'\nimport { checkAuthority } from './check-authority.js'\n\nexport async function start(\n id: string,\n output: object,\n reason: string,\n context: ResolverContext\n): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ActivityThread)\n const activityThread = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!activityThread) {\n throw new Error(\n context.t('error.activity-thread not found', {\n activityThread: id\n })\n )\n }\n\n await checkAuthority(activityThread, context)\n\n /* \n Prerequisites for a activity thread to Be Started.\n - The previous state of the activity thread must not be terminated.\n */\n if (activityThread.state !== ActivityThreadStatus.Assigned) {\n throw new Error(\n context.t(`error.activity-thread should not be started`, {\n id,\n actual: activityThread.state\n })\n )\n }\n\n if (output) {\n activityThread.output = output\n }\n\n const result = await tx.getRepository(ActivityThread).save({\n ...activityThread,\n reason,\n state: ActivityThreadStatus.Started,\n transaction: 'start',\n updater: user,\n startedAt: new Date()\n })\n\n await updateActivityInstanceState(activityThread.activityInstanceId, { causedBy: [result] }, context)\n\n return result\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ActivityThread } from '../../service/activity-thread/activity-thread';
1
+ import { ActivityThread } from '../../service/activity-thread/activity-thread.js';
2
2
  export declare function submit({ id, output, reason }: {
3
3
  id: string;
4
4
  output?: object;
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.submit = submit;
4
- const activity_thread_1 = require("../../service/activity-thread/activity-thread");
5
- const activity_approval_1 = require("../../service/activity-approval/activity-approval");
6
- const common_1 = require("../common");
7
4
  const organization_1 = require("@things-factory/organization");
8
5
  const auth_base_1 = require("@things-factory/auth-base");
9
- const check_authority_1 = require("./check-authority");
6
+ const activity_thread_js_1 = require("../../service/activity-thread/activity-thread.js");
7
+ const activity_approval_js_1 = require("../../service/activity-approval/activity-approval.js");
8
+ const common_js_1 = require("../common.js");
9
+ const check_authority_js_1 = require("./check-authority.js");
10
10
  async function submit({ id, output, reason }, context) {
11
11
  const { domain, user, tx } = context.state;
12
12
  // TODO - output값 체크해서 필수필드, validation 을 만족하지 못하면, Error를 던진다.
13
13
  // 필수 필드가 빈 값인 경우나, validation 이 있는 경우에 체크하여 false가 되는 경우.
14
- const repository = tx.getRepository(activity_thread_1.ActivityThread);
14
+ const repository = tx.getRepository(activity_thread_js_1.ActivityThread);
15
15
  var activityThread = await repository.findOne({
16
16
  where: { domain: { id: domain.id }, id },
17
17
  relations: ['activityInstance']
@@ -21,12 +21,12 @@ async function submit({ id, output, reason }, context) {
21
21
  activityThread: id
22
22
  }));
23
23
  }
24
- await (0, check_authority_1.checkAuthority)(activityThread, context);
24
+ await (0, check_authority_js_1.checkAuthority)(activityThread, context);
25
25
  /*
26
26
  Prerequisites for a activity thread to Be Started.
27
27
  - The previous state of the activity thread must not be terminated.
28
28
  */
29
- if (activityThread.state !== activity_thread_1.ActivityThreadStatus.Assigned && activityThread.state !== activity_thread_1.ActivityThreadStatus.Started) {
29
+ if (activityThread.state !== activity_thread_js_1.ActivityThreadStatus.Assigned && activityThread.state !== activity_thread_js_1.ActivityThreadStatus.Started) {
30
30
  throw new Error(context.t(`error.activity-thread should not be submitted`, {
31
31
  id,
32
32
  actual: activityThread.state
@@ -50,12 +50,12 @@ async function submit({ id, output, reason }, context) {
50
50
  if (!approverRole) {
51
51
  throw 'Cannot find the approver role for this approval line';
52
52
  }
53
- await tx.getRepository(activity_approval_1.ActivityApproval).save({
53
+ await tx.getRepository(activity_approval_js_1.ActivityApproval).save({
54
54
  domain,
55
55
  activityThread,
56
56
  round: activityThread.round,
57
57
  order: 1,
58
- judgment: activity_approval_1.ActivityApprovalJudgment.Pending,
58
+ judgment: activity_approval_js_1.ActivityApprovalJudgment.Pending,
59
59
  transaction: 'submit',
60
60
  approverRole: approverRole,
61
61
  creator: user,
@@ -63,16 +63,16 @@ async function submit({ id, output, reason }, context) {
63
63
  });
64
64
  }
65
65
  else {
66
- var approverUser = await (0, common_1.getSystemUserFromOrgMemberItem)(approvalLine[0], context);
66
+ var approverUser = await (0, common_js_1.getSystemUserFromOrgMemberItem)(approvalLine[0], context);
67
67
  if (!approverUser) {
68
68
  throw 'Cannot specify the approval user for this approval line';
69
69
  }
70
- await tx.getRepository(activity_approval_1.ActivityApproval).save({
70
+ await tx.getRepository(activity_approval_js_1.ActivityApproval).save({
71
71
  domain,
72
72
  activityThread,
73
73
  round: activityThread.round,
74
74
  order: 1,
75
- judgment: activity_approval_1.ActivityApprovalJudgment.Pending,
75
+ judgment: activity_approval_js_1.ActivityApprovalJudgment.Pending,
76
76
  transaction: 'submit',
77
77
  approver: approverUser,
78
78
  creator: user,
@@ -80,13 +80,13 @@ async function submit({ id, output, reason }, context) {
80
80
  });
81
81
  }
82
82
  activityThread = await repository.save(Object.assign(Object.assign({}, activityThread), { reason,
83
- output, transaction: 'submit', state: activity_thread_1.ActivityThreadStatus.Submitted, updater: user }));
83
+ output, transaction: 'submit', state: activity_thread_js_1.ActivityThreadStatus.Submitted, updater: user }));
84
84
  }
85
85
  else {
86
86
  activityThread = await repository.save(Object.assign(Object.assign({}, activityThread), { reason,
87
- output, transaction: 'end', state: activity_thread_1.ActivityThreadStatus.Ended, updater: user, terminator: user, terminatedAt: new Date() }));
87
+ output, transaction: 'end', state: activity_thread_js_1.ActivityThreadStatus.Ended, updater: user, terminator: user, terminatedAt: new Date() }));
88
88
  }
89
- await (0, common_1.updateActivityInstanceState)(activityThread.activityInstanceId, { causedBy: [activityThread] }, context);
89
+ await (0, common_js_1.updateActivityInstanceState)(activityThread.activityInstanceId, { causedBy: [activityThread] }, context);
90
90
  return activityThread;
91
91
  }
92
92
  //# sourceMappingURL=submit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../server/controllers/activity-thread/submit.ts"],"names":[],"mappings":"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","sourcesContent":["import { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread'\nimport { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval'\nimport { getSystemUserFromOrgMemberItem, updateActivityInstanceState } from '../common'\nimport { ApprovalLineItem, OrgMemberTargetType } from '@things-factory/organization'\nimport { Role } from '@things-factory/auth-base'\nimport { checkAuthority } from './check-authority'\n\nexport async function submit(\n { id, output, reason }: { id: string; output?: object; reason?: string },\n context: ResolverContext\n): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n\n // TODO - output값 체크해서 필수필드, validation 을 만족하지 못하면, Error를 던진다.\n // 필수 필드가 빈 값인 경우나, validation 이 있는 경우에 체크하여 false가 되는 경우.\n\n const repository = tx.getRepository(ActivityThread)\n\n var activityThread = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['activityInstance']\n })\n\n if (!activityThread) {\n throw new Error(\n context.t('error.activity-thread not found', {\n activityThread: id\n })\n )\n }\n\n await checkAuthority(activityThread, context)\n\n /* \n Prerequisites for a activity thread to Be Started.\n - The previous state of the activity thread must not be terminated.\n */\n if (activityThread.state !== ActivityThreadStatus.Assigned && activityThread.state !== ActivityThreadStatus.Started) {\n throw new Error(\n context.t(`error.activity-thread should not be submitted`, {\n id,\n actual: activityThread.state\n })\n )\n }\n\n // TODO 만약 activityInstance의 threadsMin 갯수를 아직 채우지 못했다면, 새로운 activityThread를 만들어서 처리하도록 한다.\n // (다른 사용자들이 threadsMin 개수만큼의 activityThread를 채울 수 있는 기회를 제공하기 위해서)\n\n if (!activityThread.startedAt) {\n activityThread.startedAt = new Date()\n }\n\n const approvalLine: ApprovalLineItem[] = activityThread.activityInstance.approvalLine\n\n if (approvalLine && approvalLine.length > 0) {\n if (approvalLine[0].type == OrgMemberTargetType.Role) {\n const approverRoleId = approvalLine[0].value\n\n if (approverRoleId) {\n throw 'Cannot specify the approver role for this approval line'\n }\n\n const approverRole = await tx.getRepository(Role).findOneBy({\n id: approverRoleId\n })\n\n if (!approverRole) {\n throw 'Cannot find the approver role for this approval line'\n }\n\n await tx.getRepository(ActivityApproval).save({\n domain,\n activityThread,\n round: activityThread.round,\n order: 1,\n judgment: ActivityApprovalJudgment.Pending,\n transaction: 'submit',\n approverRole: approverRole,\n creator: user,\n updater: user\n })\n } else {\n var approverUser = await getSystemUserFromOrgMemberItem(approvalLine[0], context)\n\n if (!approverUser) {\n throw 'Cannot specify the approval user for this approval line'\n }\n\n await tx.getRepository(ActivityApproval).save({\n domain,\n activityThread,\n round: activityThread.round,\n order: 1,\n judgment: ActivityApprovalJudgment.Pending,\n transaction: 'submit',\n approver: approverUser,\n creator: user,\n updater: user\n })\n }\n\n activityThread = await repository.save({\n ...activityThread,\n reason,\n output,\n transaction: 'submit',\n state: ActivityThreadStatus.Submitted,\n updater: user\n })\n } else {\n activityThread = await repository.save({\n ...activityThread,\n reason,\n output,\n transaction: 'end',\n state: ActivityThreadStatus.Ended,\n updater: user,\n terminator: user,\n terminatedAt: new Date()\n })\n }\n\n await updateActivityInstanceState(activityThread.activityInstanceId, { causedBy: [activityThread] }, context)\n\n return activityThread\n}\n"]}
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../server/controllers/activity-thread/submit.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApprovalLineItem, OrgMemberTargetType } from '@things-factory/organization'\nimport { Role } from '@things-factory/auth-base'\nimport { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread.js'\nimport { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval.js'\nimport { getSystemUserFromOrgMemberItem, updateActivityInstanceState } from '../common.js'\nimport { checkAuthority } from './check-authority.js'\n\nexport async function submit(\n { id, output, reason }: { id: string; output?: object; reason?: string },\n context: ResolverContext\n): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n\n // TODO - output값 체크해서 필수필드, validation 을 만족하지 못하면, Error를 던진다.\n // 필수 필드가 빈 값인 경우나, validation 이 있는 경우에 체크하여 false가 되는 경우.\n\n const repository = tx.getRepository(ActivityThread)\n\n var activityThread = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['activityInstance']\n })\n\n if (!activityThread) {\n throw new Error(\n context.t('error.activity-thread not found', {\n activityThread: id\n })\n )\n }\n\n await checkAuthority(activityThread, context)\n\n /* \n Prerequisites for a activity thread to Be Started.\n - The previous state of the activity thread must not be terminated.\n */\n if (activityThread.state !== ActivityThreadStatus.Assigned && activityThread.state !== ActivityThreadStatus.Started) {\n throw new Error(\n context.t(`error.activity-thread should not be submitted`, {\n id,\n actual: activityThread.state\n })\n )\n }\n\n // TODO 만약 activityInstance의 threadsMin 갯수를 아직 채우지 못했다면, 새로운 activityThread를 만들어서 처리하도록 한다.\n // (다른 사용자들이 threadsMin 개수만큼의 activityThread를 채울 수 있는 기회를 제공하기 위해서)\n\n if (!activityThread.startedAt) {\n activityThread.startedAt = new Date()\n }\n\n const approvalLine: ApprovalLineItem[] = activityThread.activityInstance.approvalLine\n\n if (approvalLine && approvalLine.length > 0) {\n if (approvalLine[0].type == OrgMemberTargetType.Role) {\n const approverRoleId = approvalLine[0].value\n\n if (approverRoleId) {\n throw 'Cannot specify the approver role for this approval line'\n }\n\n const approverRole = await tx.getRepository(Role).findOneBy({\n id: approverRoleId\n })\n\n if (!approverRole) {\n throw 'Cannot find the approver role for this approval line'\n }\n\n await tx.getRepository(ActivityApproval).save({\n domain,\n activityThread,\n round: activityThread.round,\n order: 1,\n judgment: ActivityApprovalJudgment.Pending,\n transaction: 'submit',\n approverRole: approverRole,\n creator: user,\n updater: user\n })\n } else {\n var approverUser = await getSystemUserFromOrgMemberItem(approvalLine[0], context)\n\n if (!approverUser) {\n throw 'Cannot specify the approval user for this approval line'\n }\n\n await tx.getRepository(ActivityApproval).save({\n domain,\n activityThread,\n round: activityThread.round,\n order: 1,\n judgment: ActivityApprovalJudgment.Pending,\n transaction: 'submit',\n approver: approverUser,\n creator: user,\n updater: user\n })\n }\n\n activityThread = await repository.save({\n ...activityThread,\n reason,\n output,\n transaction: 'submit',\n state: ActivityThreadStatus.Submitted,\n updater: user\n })\n } else {\n activityThread = await repository.save({\n ...activityThread,\n reason,\n output,\n transaction: 'end',\n state: ActivityThreadStatus.Ended,\n updater: user,\n terminator: user,\n terminatedAt: new Date()\n })\n }\n\n await updateActivityInstanceState(activityThread.activityInstanceId, { causedBy: [activityThread] }, context)\n\n return activityThread\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import { User } from '@things-factory/auth-base';
2
- import { ActivitySearchKeyItem } from '../service/activity/activity-search-key-item-type';
3
- import { AssigneeItem } from '../service/activity/activity';
4
- import { ActivityInstance } from '../service/activity-instance/activity-instance';
5
- import { ActivityThread } from '../service/activity-thread/activity-thread';
6
2
  import { ApprovalLineItem } from '@things-factory/organization';
3
+ import { ActivitySearchKeyItem } from '../service/activity/activity-search-key-item-type.js';
4
+ import { AssigneeItem } from '../service/activity/activity.js';
5
+ import { ActivityInstance } from '../service/activity-instance/activity-instance.js';
6
+ import { ActivityThread } from '../service/activity-thread/activity-thread.js';
7
7
  export type UpdateActivityInstanceStateAddendum = {
8
8
  causedBy?: ActivityThread[];
9
9
  };
@@ -11,14 +11,14 @@ exports.getSystemUserFromMySupervosor = getSystemUserFromMySupervosor;
11
11
  exports.getSystemUserFromOrgMemberItem = getSystemUserFromOrgMemberItem;
12
12
  exports.fillActivitySearchKeys = fillActivitySearchKeys;
13
13
  const auth_base_1 = require("@things-factory/auth-base");
14
- const activity_1 = require("../service/activity/activity");
15
- const activity_instance_1 = require("../service/activity-instance/activity-instance");
16
- const activity_thread_1 = require("../service/activity-thread/activity-thread");
17
14
  const organization_1 = require("@things-factory/organization");
18
- const activity_installation_controller_1 = require("./activity-installation/activity-installation-controller");
15
+ const activity_js_1 = require("../service/activity/activity.js");
16
+ const activity_instance_js_1 = require("../service/activity-instance/activity-instance.js");
17
+ const activity_thread_js_1 = require("../service/activity-thread/activity-thread.js");
18
+ const activity_installation_controller_js_1 = require("./activity-installation/activity-installation-controller.js");
19
19
  async function updateActivityInstanceState(id, { causedBy }, context) {
20
20
  const { tx } = context.state;
21
- var activityInstance = await tx.getRepository(activity_instance_1.ActivityInstance).findOne({
21
+ var activityInstance = await tx.getRepository(activity_instance_js_1.ActivityInstance).findOne({
22
22
  where: { id },
23
23
  relations: [
24
24
  'domain',
@@ -35,12 +35,12 @@ async function updateActivityInstanceState(id, { causedBy }, context) {
35
35
  activityInstance.transaction = 'thread'; /* activity thread에 의해서 변경된 것임을 의미 */
36
36
  Object.assign(activityInstance, await evalActivityInstanceState(id, context));
37
37
  /* callback에서 업무적인 처리도 하고, activityInstance를 일부(주로 input) 수정할 수 있는 기회도 제공. */
38
- await activity_installation_controller_1.ActivityInstallations.callback(activityInstance.activity.name, activityInstance, causedBy, context);
39
- await tx.getRepository(activity_instance_1.ActivityInstance).save(activityInstance);
38
+ await activity_installation_controller_js_1.ActivityInstallations.callback(activityInstance.activity.name, activityInstance, causedBy, context);
39
+ await tx.getRepository(activity_instance_js_1.ActivityInstance).save(activityInstance);
40
40
  }
41
41
  async function evalActivityInstanceState(id, context) {
42
42
  const { tx, user } = context.state;
43
- const activityInstance = await tx.getRepository(activity_instance_1.ActivityInstance).findOne({
43
+ const activityInstance = await tx.getRepository(activity_instance_js_1.ActivityInstance).findOne({
44
44
  where: { id },
45
45
  relations: ['activityThreads', 'activity']
46
46
  });
@@ -49,46 +49,46 @@ async function evalActivityInstanceState(id, context) {
49
49
  const pendingStartedThreads = activityThreads.filter(thread => thread.isPendingStarted());
50
50
  const pendingEndedThreads = activityThreads.filter(thread => thread.isPendingEnded());
51
51
  switch (true) {
52
- case state === activity_instance_1.ActivityInstanceStatus.Draft:
53
- case state === activity_instance_1.ActivityInstanceStatus.Ended:
54
- case state === activity_instance_1.ActivityInstanceStatus.Aborted:
52
+ case state === activity_instance_js_1.ActivityInstanceStatus.Draft:
53
+ case state === activity_instance_js_1.ActivityInstanceStatus.Ended:
54
+ case state === activity_instance_js_1.ActivityInstanceStatus.Aborted:
55
55
  return {};
56
56
  case validThreads.length === 0:
57
57
  return {
58
- state: activity_instance_1.ActivityInstanceStatus.Issued
58
+ state: activity_instance_js_1.ActivityInstanceStatus.Issued
59
59
  };
60
60
  case threadsMin > validThreads.length:
61
61
  return {
62
- state: activity_instance_1.ActivityInstanceStatus.Unassigned
62
+ state: activity_instance_js_1.ActivityInstanceStatus.Unassigned
63
63
  };
64
64
  case pendingStartedThreads.length > 0:
65
65
  return {
66
- state: activity_instance_1.ActivityInstanceStatus.Assigned,
66
+ state: activity_instance_js_1.ActivityInstanceStatus.Assigned,
67
67
  assignedAt: new Date()
68
68
  };
69
69
  case pendingEndedThreads.length > 0:
70
70
  var started = !dueAt || dueAt.getTime() > Date.now();
71
- var changed = (started && state !== activity_instance_1.ActivityInstanceStatus.Started) || (!started && state !== activity_instance_1.ActivityInstanceStatus.Pending);
71
+ var changed = (started && state !== activity_instance_js_1.ActivityInstanceStatus.Started) || (!started && state !== activity_instance_js_1.ActivityInstanceStatus.Pending);
72
72
  return !changed
73
73
  ? null
74
74
  : started
75
75
  ? {
76
- state: activity_instance_1.ActivityInstanceStatus.Started,
76
+ state: activity_instance_js_1.ActivityInstanceStatus.Started,
77
77
  startedAt: new Date(),
78
78
  starter: user
79
79
  }
80
80
  : {
81
- state: activity_instance_1.ActivityInstanceStatus.Pending
81
+ state: activity_instance_js_1.ActivityInstanceStatus.Pending
82
82
  };
83
83
  default:
84
84
  return {
85
- state: activityThreads.some(thread => thread.state == activity_thread_1.ActivityThreadStatus.Aborted)
86
- ? activity_instance_1.ActivityInstanceStatus.Aborted
87
- : activity_instance_1.ActivityInstanceStatus.Ended,
85
+ state: activityThreads.some(thread => thread.state == activity_thread_js_1.ActivityThreadStatus.Aborted)
86
+ ? activity_instance_js_1.ActivityInstanceStatus.Aborted
87
+ : activity_instance_js_1.ActivityInstanceStatus.Ended,
88
88
  reason: '',
89
- output: [activity_1.MultipleInstanceType.Parallel, activity_1.MultipleInstanceType.Sequential].includes(activityInstance.activity.multiple)
89
+ output: [activity_js_1.MultipleInstanceType.Parallel, activity_js_1.MultipleInstanceType.Sequential].includes(activityInstance.activity.multiple)
90
90
  ? activityThreads
91
- .filter(thread => (thread.state = activity_thread_1.ActivityThreadStatus.Ended))
91
+ .filter(thread => (thread.state = activity_thread_js_1.ActivityThreadStatus.Ended))
92
92
  .reduce((sum, thread) => {
93
93
  sum[thread.assigneeId] = thread.output;
94
94
  return sum;
@@ -101,11 +101,11 @@ async function evalActivityInstanceState(id, context) {
101
101
  }
102
102
  async function createActivityThreadWithUnassigned(transaction, activityInstance, context) {
103
103
  const { domain, user, tx } = context.state;
104
- const threadRepo = tx.getRepository(activity_thread_1.ActivityThread);
104
+ const threadRepo = tx.getRepository(activity_thread_js_1.ActivityThread);
105
105
  const now = new Date();
106
106
  const result = await threadRepo.save({
107
107
  domain,
108
- state: activity_thread_1.ActivityThreadStatus.Unassigned,
108
+ state: activity_thread_js_1.ActivityThreadStatus.Unassigned,
109
109
  activityInstance,
110
110
  transaction,
111
111
  output: activityInstance.output,
@@ -120,12 +120,12 @@ async function createActivityThreadWithUnassigned(transaction, activityInstance,
120
120
  }
121
121
  async function createActivityThreadForUser(transaction, activityInstance, assignee, context) {
122
122
  const { domain, user, tx } = context.state;
123
- const threadRepo = tx.getRepository(activity_thread_1.ActivityThread);
123
+ const threadRepo = tx.getRepository(activity_thread_js_1.ActivityThread);
124
124
  const now = new Date();
125
125
  const result = await threadRepo.save({
126
126
  domain,
127
127
  assignee,
128
- state: activity_thread_1.ActivityThreadStatus.Assigned,
128
+ state: activity_thread_js_1.ActivityThreadStatus.Assigned,
129
129
  activityInstance,
130
130
  transaction,
131
131
  output: activityInstance.output,
@@ -140,7 +140,7 @@ async function createActivityThreadForUser(transaction, activityInstance, assign
140
140
  }
141
141
  async function createActivityThreadsForUsers(transaction, activityInstance, assignees, context) {
142
142
  const { domain, user, tx } = context.state;
143
- const threadRepo = tx.getRepository(activity_thread_1.ActivityThread);
143
+ const threadRepo = tx.getRepository(activity_thread_js_1.ActivityThread);
144
144
  const now = new Date();
145
145
  const distinct = assignees.filter((assignee, idx) => {
146
146
  return assignee && !assignees.slice(0, idx).find(x => x.id == assignee.id);
@@ -148,7 +148,7 @@ async function createActivityThreadsForUsers(transaction, activityInstance, assi
148
148
  const result = await threadRepo.save(distinct.map(assignee => {
149
149
  return {
150
150
  assignee,
151
- state: activity_thread_1.ActivityThreadStatus.Assigned,
151
+ state: activity_thread_js_1.ActivityThreadStatus.Assigned,
152
152
  activityInstance,
153
153
  domain,
154
154
  transaction,
@@ -1 +1 @@
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 { ActivitySearchKeyItem } from '../service/activity/activity-search-key-item-type'\nimport { AssigneeItem, MultipleInstanceType } from '../service/activity/activity'\nimport { ActivityInstance, ActivityInstanceStatus } from '../service/activity-instance/activity-instance'\nimport { ActivityThread, ActivityThreadStatus } from '../service/activity-thread/activity-thread'\nimport { Department, Employee, ApprovalLineItem, OrgMemberTargetType } from '@things-factory/organization'\nimport { ActivityInstallations } from './activity-installation/activity-installation-controller'\n\nexport type UpdateActivityInstanceStateAddendum = {\n causedBy?: ActivityThread[]\n}\n\nexport async function updateActivityInstanceState(\n id: string,\n { causedBy }: UpdateActivityInstanceStateAddendum,\n context: ResolverContext\n) {\n const { tx } = context.state\n\n var activityInstance = await tx.getRepository(ActivityInstance).findOne({\n where: { id },\n relations: [\n 'domain',\n 'activity',\n 'activityThreads',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\n })\n\n activityInstance.transaction = 'thread' /* activity thread에 의해서 변경된 것임을 의미 */\n Object.assign(activityInstance, await evalActivityInstanceState(id, context))\n\n /* callback에서 업무적인 처리도 하고, activityInstance를 일부(주로 input) 수정할 수 있는 기회도 제공. */\n await ActivityInstallations.callback(activityInstance.activity.name, activityInstance, causedBy, context)\n\n await tx.getRepository(ActivityInstance).save(activityInstance)\n}\n\nexport async function evalActivityInstanceState(\n id: string,\n context: ResolverContext\n): Promise<Partial<ActivityInstance>> {\n const { tx, user } = context.state\n\n const activityInstance = await tx.getRepository(ActivityInstance).findOne({\n where: { id },\n relations: ['activityThreads', 'activity']\n })\n const { threadsMin, 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 {}\n case validThreads.length === 0:\n return {\n state: ActivityInstanceStatus.Issued\n }\n case threadsMin > validThreads.length:\n return {\n state: ActivityInstanceStatus.Unassigned\n }\n case pendingStartedThreads.length > 0:\n return {\n state: ActivityInstanceStatus.Assigned,\n assignedAt: new Date()\n }\n case pendingEndedThreads.length > 0:\n var started = !dueAt || dueAt.getTime() > Date.now()\n var changed =\n (started && state !== ActivityInstanceStatus.Started) || (!started && state !== ActivityInstanceStatus.Pending)\n\n return !changed\n ? null\n : started\n ? {\n state: ActivityInstanceStatus.Started,\n startedAt: new Date(),\n starter: user\n }\n : {\n state: ActivityInstanceStatus.Pending\n }\n default:\n return {\n state: activityThreads.some(thread => thread.state == ActivityThreadStatus.Aborted)\n ? ActivityInstanceStatus.Aborted\n : ActivityInstanceStatus.Ended,\n reason: '',\n output: [MultipleInstanceType.Parallel, MultipleInstanceType.Sequential].includes(\n activityInstance.activity.multiple\n )\n ? activityThreads\n .filter(thread => (thread.state = ActivityThreadStatus.Ended))\n .reduce((sum, thread) => {\n sum[thread.assigneeId] = thread.output\n return sum\n }, {} as any)\n : activityThreads[0].output,\n terminatedAt: new Date(),\n terminator: user\n }\n }\n}\n\nexport async function createActivityThreadWithUnassigned(\n transaction: string,\n activityInstance: ActivityInstance,\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 domain,\n state: ActivityThreadStatus.Unassigned,\n activityInstance,\n transaction,\n output: activityInstance.output,\n dueAt: activityInstance.dueAt,\n assignedAt: now,\n creator: user,\n updater: user,\n createdAt: now\n })\n\n await updateActivityInstanceState(activityInstance.id, { causedBy: [result] }, context)\n\n return result\n}\n\nexport async function createActivityThreadForUser(\n transaction: string,\n activityInstance: ActivityInstance,\n assignee: 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 domain,\n assignee,\n state: ActivityThreadStatus.Assigned,\n activityInstance,\n transaction,\n output: activityInstance.output,\n dueAt: activityInstance.dueAt,\n assignedAt: now,\n creator: user,\n updater: user,\n createdAt: now\n })\n\n await updateActivityInstanceState(activityInstance.id, { causedBy: [result] }, context)\n\n return result\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 distinct = assignees.filter((assignee, idx) => {\n return assignee && !assignees.slice(0, idx).find(x => x.id == assignee.id)\n })\n\n const result = await threadRepo.save(\n distinct.map(assignee => {\n return {\n assignee,\n state: ActivityThreadStatus.Assigned,\n activityInstance,\n domain,\n transaction,\n output: activityInstance.output,\n creator: user,\n updater: user,\n dueAt: activityInstance.dueAt,\n assignedAt: now\n } as any\n })\n )\n\n await updateActivityInstanceState(activityInstance.id, { causedBy: result }, 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 getSystemUserFromMyDepartmentManager(context: ResolverContext): Promise<User> {\n const { domain, user, tx } = context.state\n\n const employee = await tx.getRepository(Employee).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee || !employee.departmentId) {\n return\n }\n\n const department = await tx.getRepository(Department).findOne({\n where: {\n id: employee.departmentId\n }\n })\n\n if (!department || !department.managerId) return\n\n const manager = await tx.getRepository(Employee).findOne({\n where: {\n domain: { id: domain.id },\n id: department.managerId\n },\n relations: ['user']\n })\n\n return manager?.user\n}\n\nexport async function getSystemUserFromMySupervosor(context: ResolverContext): Promise<User> {\n const { domain, user, tx } = context.state\n\n const employee = await tx.getRepository(Employee).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee || !employee.supervisorId) {\n return\n }\n\n const supervisor = await tx.getRepository(Employee).findOne({\n where: {\n id: employee.supervisorId\n },\n relations: ['user']\n })\n\n return supervisor?.user\n}\n\nexport async function getSystemUserFromOrgMemberItem(\n item: AssigneeItem | ApprovalLineItem,\n context: ResolverContext\n): Promise<User> {\n const { domain, user, tx } = context.state\n\n const { type, approver, assignee, value } = item as AssigneeItem & ApprovalLineItem\n const id = approver?.id || assignee?.id || value\n\n if (type == OrgMemberTargetType.Employee) {\n const employee = id && (await tx.getRepository(Employee).findOne({ where: { id }, relations: ['user'] }))\n\n if (!employee || !employee.user) {\n return\n }\n return employee.user\n } else if (type == OrgMemberTargetType.Department) {\n const department = id && (await tx.getRepository(Department).findOne({ where: { id }, 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 == OrgMemberTargetType.Role) {\n const role = id && (await tx.getRepository(Role).findOne({ where: { id }, relations: ['users'] }))\n\n if (!role || !role.users || !role.users[0]) {\n return\n }\n\n return await tx.getRepository(User).findOneBy({ id: role.users[0].id })\n } else if (type == OrgMemberTargetType.Myself) {\n return user\n } else if (type == OrgMemberTargetType.MyDepartment) {\n return await getSystemUserFromMyDepartmentManager(context)\n } else if (type == OrgMemberTargetType.MySupervisor) {\n return await getSystemUserFromMySupervosor(context)\n }\n}\n\nexport function fillActivitySearchKeys(searchKeys: ActivitySearchKeyItem[], input: { [key: string]: any }) {\n if (!input || typeof input !== 'object') {\n return\n }\n\n return searchKeys?.reduce((sum, key, index) => {\n const value = input[key.inputKey]\n if (value != null) {\n sum[`key0${index + 1}`] = value instanceof Array ? value[0] : value\n }\n return sum\n }, {})\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 { Department, Employee, ApprovalLineItem, OrgMemberTargetType } from '@things-factory/organization'\nimport { ActivitySearchKeyItem } from '../service/activity/activity-search-key-item-type.js'\nimport { AssigneeItem, MultipleInstanceType } from '../service/activity/activity.js'\nimport { ActivityInstance, ActivityInstanceStatus } from '../service/activity-instance/activity-instance.js'\nimport { ActivityThread, ActivityThreadStatus } from '../service/activity-thread/activity-thread.js'\nimport { ActivityInstallations } from './activity-installation/activity-installation-controller.js'\n\nexport type UpdateActivityInstanceStateAddendum = {\n causedBy?: ActivityThread[]\n}\n\nexport async function updateActivityInstanceState(\n id: string,\n { causedBy }: UpdateActivityInstanceStateAddendum,\n context: ResolverContext\n) {\n const { tx } = context.state\n\n var activityInstance = await tx.getRepository(ActivityInstance).findOne({\n where: { id },\n relations: [\n 'domain',\n 'activity',\n 'activityThreads',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\n })\n\n activityInstance.transaction = 'thread' /* activity thread에 의해서 변경된 것임을 의미 */\n Object.assign(activityInstance, await evalActivityInstanceState(id, context))\n\n /* callback에서 업무적인 처리도 하고, activityInstance를 일부(주로 input) 수정할 수 있는 기회도 제공. */\n await ActivityInstallations.callback(activityInstance.activity.name, activityInstance, causedBy, context)\n\n await tx.getRepository(ActivityInstance).save(activityInstance)\n}\n\nexport async function evalActivityInstanceState(\n id: string,\n context: ResolverContext\n): Promise<Partial<ActivityInstance>> {\n const { tx, user } = context.state\n\n const activityInstance = await tx.getRepository(ActivityInstance).findOne({\n where: { id },\n relations: ['activityThreads', 'activity']\n })\n const { threadsMin, 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 {}\n case validThreads.length === 0:\n return {\n state: ActivityInstanceStatus.Issued\n }\n case threadsMin > validThreads.length:\n return {\n state: ActivityInstanceStatus.Unassigned\n }\n case pendingStartedThreads.length > 0:\n return {\n state: ActivityInstanceStatus.Assigned,\n assignedAt: new Date()\n }\n case pendingEndedThreads.length > 0:\n var started = !dueAt || dueAt.getTime() > Date.now()\n var changed =\n (started && state !== ActivityInstanceStatus.Started) || (!started && state !== ActivityInstanceStatus.Pending)\n\n return !changed\n ? null\n : started\n ? {\n state: ActivityInstanceStatus.Started,\n startedAt: new Date(),\n starter: user\n }\n : {\n state: ActivityInstanceStatus.Pending\n }\n default:\n return {\n state: activityThreads.some(thread => thread.state == ActivityThreadStatus.Aborted)\n ? ActivityInstanceStatus.Aborted\n : ActivityInstanceStatus.Ended,\n reason: '',\n output: [MultipleInstanceType.Parallel, MultipleInstanceType.Sequential].includes(\n activityInstance.activity.multiple\n )\n ? activityThreads\n .filter(thread => (thread.state = ActivityThreadStatus.Ended))\n .reduce((sum, thread) => {\n sum[thread.assigneeId] = thread.output\n return sum\n }, {} as any)\n : activityThreads[0].output,\n terminatedAt: new Date(),\n terminator: user\n }\n }\n}\n\nexport async function createActivityThreadWithUnassigned(\n transaction: string,\n activityInstance: ActivityInstance,\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 domain,\n state: ActivityThreadStatus.Unassigned,\n activityInstance,\n transaction,\n output: activityInstance.output,\n dueAt: activityInstance.dueAt,\n assignedAt: now,\n creator: user,\n updater: user,\n createdAt: now\n })\n\n await updateActivityInstanceState(activityInstance.id, { causedBy: [result] }, context)\n\n return result\n}\n\nexport async function createActivityThreadForUser(\n transaction: string,\n activityInstance: ActivityInstance,\n assignee: 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 domain,\n assignee,\n state: ActivityThreadStatus.Assigned,\n activityInstance,\n transaction,\n output: activityInstance.output,\n dueAt: activityInstance.dueAt,\n assignedAt: now,\n creator: user,\n updater: user,\n createdAt: now\n })\n\n await updateActivityInstanceState(activityInstance.id, { causedBy: [result] }, context)\n\n return result\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 distinct = assignees.filter((assignee, idx) => {\n return assignee && !assignees.slice(0, idx).find(x => x.id == assignee.id)\n })\n\n const result = await threadRepo.save(\n distinct.map(assignee => {\n return {\n assignee,\n state: ActivityThreadStatus.Assigned,\n activityInstance,\n domain,\n transaction,\n output: activityInstance.output,\n creator: user,\n updater: user,\n dueAt: activityInstance.dueAt,\n assignedAt: now\n } as any\n })\n )\n\n await updateActivityInstanceState(activityInstance.id, { causedBy: result }, 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 getSystemUserFromMyDepartmentManager(context: ResolverContext): Promise<User> {\n const { domain, user, tx } = context.state\n\n const employee = await tx.getRepository(Employee).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee || !employee.departmentId) {\n return\n }\n\n const department = await tx.getRepository(Department).findOne({\n where: {\n id: employee.departmentId\n }\n })\n\n if (!department || !department.managerId) return\n\n const manager = await tx.getRepository(Employee).findOne({\n where: {\n domain: { id: domain.id },\n id: department.managerId\n },\n relations: ['user']\n })\n\n return manager?.user\n}\n\nexport async function getSystemUserFromMySupervosor(context: ResolverContext): Promise<User> {\n const { domain, user, tx } = context.state\n\n const employee = await tx.getRepository(Employee).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee || !employee.supervisorId) {\n return\n }\n\n const supervisor = await tx.getRepository(Employee).findOne({\n where: {\n id: employee.supervisorId\n },\n relations: ['user']\n })\n\n return supervisor?.user\n}\n\nexport async function getSystemUserFromOrgMemberItem(\n item: AssigneeItem | ApprovalLineItem,\n context: ResolverContext\n): Promise<User> {\n const { domain, user, tx } = context.state\n\n const { type, approver, assignee, value } = item as AssigneeItem & ApprovalLineItem\n const id = approver?.id || assignee?.id || value\n\n if (type == OrgMemberTargetType.Employee) {\n const employee = id && (await tx.getRepository(Employee).findOne({ where: { id }, relations: ['user'] }))\n\n if (!employee || !employee.user) {\n return\n }\n return employee.user\n } else if (type == OrgMemberTargetType.Department) {\n const department = id && (await tx.getRepository(Department).findOne({ where: { id }, 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 == OrgMemberTargetType.Role) {\n const role = id && (await tx.getRepository(Role).findOne({ where: { id }, relations: ['users'] }))\n\n if (!role || !role.users || !role.users[0]) {\n return\n }\n\n return await tx.getRepository(User).findOneBy({ id: role.users[0].id })\n } else if (type == OrgMemberTargetType.Myself) {\n return user\n } else if (type == OrgMemberTargetType.MyDepartment) {\n return await getSystemUserFromMyDepartmentManager(context)\n } else if (type == OrgMemberTargetType.MySupervisor) {\n return await getSystemUserFromMySupervosor(context)\n }\n}\n\nexport function fillActivitySearchKeys(searchKeys: ActivitySearchKeyItem[], input: { [key: string]: any }) {\n if (!input || typeof input !== 'object') {\n return\n }\n\n return searchKeys?.reduce((sum, key, index) => {\n const value = input[key.inputKey]\n if (value != null) {\n sum[`key0${index + 1}`] = value instanceof Array ? value[0] : value\n }\n return sum\n }, {})\n}\n"]}
@@ -1,3 +1,3 @@
1
- export * from './activity-installation/activity-installation-controller';
2
- export * from './activity-instance';
1
+ export * from './activity-installation/activity-installation-controller.js';
2
+ export * from './activity-instance/index.js';
3
3
  export * from './common.js';
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./activity-installation/activity-installation-controller"), exports);
5
- tslib_1.__exportStar(require("./activity-instance"), exports);
4
+ tslib_1.__exportStar(require("./activity-installation/activity-installation-controller.js"), exports);
5
+ tslib_1.__exportStar(require("./activity-instance/index.js"), exports);
6
6
  tslib_1.__exportStar(require("./common.js"), exports);
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/controllers/index.ts"],"names":[],"mappings":";;;AAAA,mGAAwE;AACxE,8DAAmC;AACnC,sDAA2B","sourcesContent":["export * from './activity-installation/activity-installation-controller'\nexport * from './activity-instance'\nexport * from './common.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/controllers/index.ts"],"names":[],"mappings":";;;AAAA,sGAA2E;AAC3E,uEAA4C;AAC5C,sDAA2B","sourcesContent":["export * from './activity-installation/activity-installation-controller.js'\nexport * from './activity-instance/index.js'\nexport * from './common.js'\n"]}
@@ -1,3 +1,3 @@
1
- import './routes';
2
- export * from './controllers';
3
- export * from './service';
1
+ import './routes.js';
2
+ export * from './controllers/index.js';
3
+ export * from './service/index.js';
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- require("./routes");
5
- tslib_1.__exportStar(require("./controllers"), exports);
6
- tslib_1.__exportStar(require("./service"), exports);
4
+ require("./routes.js");
5
+ tslib_1.__exportStar(require("./controllers/index.js"), exports);
6
+ tslib_1.__exportStar(require("./service/index.js"), exports);
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;AAAA,oBAAiB;AAEjB,wDAA6B;AAC7B,oDAAyB","sourcesContent":["import './routes'\n\nexport * from './controllers'\nexport * from './service'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;AAAA,uBAAoB;AAEpB,iEAAsC;AACtC,6DAAkC","sourcesContent":["import './routes.js'\n\nexport * from './controllers/index.js'\nexport * from './service/index.js'\n"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const shell_1 = require("@things-factory/shell");
4
- const issue_1 = require("./controllers/activity-instance/issue");
4
+ const issue_js_1 = require("./controllers/activity-instance/issue.js");
5
5
  process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
6
6
  /*
7
7
  * can add global public routes to application (auth not required, tenancy not required)
@@ -29,7 +29,7 @@ process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) =>
29
29
  }
30
30
  context.state = Object.assign(Object.assign({}, context.state), { domain,
31
31
  tx });
32
- await (0, issue_1.issue)({
32
+ await (0, issue_js_1.issue)({
33
33
  activityId
34
34
  }, context);
35
35
  });
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;AACA,iDAA6D;AAE7D,iEAA6D;AAE7D,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;;;;OAKG;IAEH,+IAA+I;IAC/I,kBAAkB,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAA+B,CAAA;QAElE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;QAEnD,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,aAAa,UAAU,kCAAkC,CAAC,CAAA;QAC7F,CAAC;QAED,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,oBAAoB,UAAU,kCAAkC,CAAC,CAAA;QACvG,CAAC;QAED,MAAM,IAAA,qBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;YAEzE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,aAAa,CAAC,CAAA;YAClD,CAAC;YAED,OAAO,CAAC,KAAK,mCACR,OAAO,CAAC,KAAK,KAChB,MAAM;gBACN,EAAE,GACH,CAAA;YAED,MAAM,IAAA,aAAK,EACT;gBACE,UAAU;aACX,EACD,OAAO,CACR,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA","sourcesContent":["import { logger } from '@things-factory/env'\nimport { Domain, getDataSource } from '@things-factory/shell'\nimport { ScheduleRegisterRequest } from '@things-factory/scheduler-client'\nimport { issue } from './controllers/activity-instance/issue'\n\nprocess.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {\n /*\n * can add global public routes to application (auth not required, tenancy not required)\n *\n * ex) routes.get('/path', async(context, next) => {})\n * ex) routes.post('/path', async(context, next) => {})\n */\n\n /* When a callback occurs from the scheduler when a scheduled dataset is on schedule, data collection task for the dataset should be issued. */\n globalPublicRouter.post('/callback-schedule-for-activity', async (context, next) => {\n const { client } = context.request.body as ScheduleRegisterRequest\n\n if (!client || typeof client !== 'object') {\n throw new Error('client property should be a part of callback body.')\n }\n\n const { group: domainId, key: activityId } = client\n\n if (!domainId || !activityId) {\n throw new Error(`group(${domainId}) and key(${activityId}) properties should not be empty`)\n }\n\n if (!domainId || !activityId) {\n throw new Error(`domainId(${domainId}) and activityId(${activityId}) properties should not be empty`)\n }\n\n await getDataSource().transaction(async tx => {\n const domain = await tx.getRepository(Domain).findOneBy({ id: domainId })\n\n if (!domain) {\n throw new Error(`domain(${domainId}) not found`)\n }\n\n context.state = {\n ...context.state,\n domain,\n tx\n }\n\n await issue(\n {\n activityId\n },\n context\n )\n })\n\n context.status = 200\n })\n})\n\nprocess.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRouter) => {\n /*\n * can add global private routes to application (auth required, tenancy not required)\n */\n})\n\nprocess.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n /*\n * can add domain public routes to application (auth not required, tenancy required)\n */\n})\n\nprocess.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {\n /*\n * can add domain private routes to application (auth required, tenancy required)\n */\n})\n"]}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;AAAA,iDAA6D;AAE7D,uEAAgE;AAEhE,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;;;;OAKG;IAEH,+IAA+I;IAC/I,kBAAkB,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAA+B,CAAA;QAElE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;QAEnD,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,aAAa,UAAU,kCAAkC,CAAC,CAAA;QAC7F,CAAC;QAED,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,oBAAoB,UAAU,kCAAkC,CAAC,CAAA;QACvG,CAAC;QAED,MAAM,IAAA,qBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;YAEzE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,aAAa,CAAC,CAAA;YAClD,CAAC;YAED,OAAO,CAAC,KAAK,mCACR,OAAO,CAAC,KAAK,KAChB,MAAM;gBACN,EAAE,GACH,CAAA;YAED,MAAM,IAAA,gBAAK,EACT;gBACE,UAAU;aACX,EACD,OAAO,CACR,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA","sourcesContent":["import { Domain, getDataSource } from '@things-factory/shell'\nimport { ScheduleRegisterRequest } from '@things-factory/scheduler-client'\nimport { issue } from './controllers/activity-instance/issue.js'\n\nprocess.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {\n /*\n * can add global public routes to application (auth not required, tenancy not required)\n *\n * ex) routes.get('/path', async(context, next) => {})\n * ex) routes.post('/path', async(context, next) => {})\n */\n\n /* When a callback occurs from the scheduler when a scheduled dataset is on schedule, data collection task for the dataset should be issued. */\n globalPublicRouter.post('/callback-schedule-for-activity', async (context, next) => {\n const { client } = context.request.body as ScheduleRegisterRequest\n\n if (!client || typeof client !== 'object') {\n throw new Error('client property should be a part of callback body.')\n }\n\n const { group: domainId, key: activityId } = client\n\n if (!domainId || !activityId) {\n throw new Error(`group(${domainId}) and key(${activityId}) properties should not be empty`)\n }\n\n if (!domainId || !activityId) {\n throw new Error(`domainId(${domainId}) and activityId(${activityId}) properties should not be empty`)\n }\n\n await getDataSource().transaction(async tx => {\n const domain = await tx.getRepository(Domain).findOneBy({ id: domainId })\n\n if (!domain) {\n throw new Error(`domain(${domainId}) not found`)\n }\n\n context.state = {\n ...context.state,\n domain,\n tx\n }\n\n await issue(\n {\n activityId\n },\n context\n )\n })\n\n context.status = 200\n })\n})\n\nprocess.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRouter) => {\n /*\n * can add global private routes to application (auth required, tenancy not required)\n */\n})\n\nprocess.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n /*\n * can add domain public routes to application (auth not required, tenancy required)\n */\n})\n\nprocess.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {\n /*\n * can add domain private routes to application (auth required, tenancy required)\n */\n})\n"]}
@@ -2,8 +2,8 @@ import { HistoryActionType, HistoryEntityInterface } from '@operato/typeorm-hist
2
2
  import { Role, User } from '@things-factory/auth-base';
3
3
  import { Domain } from '@things-factory/shell';
4
4
  import { ApprovalLineItem } from '@things-factory/organization';
5
- import { Activity, ActivityStartingType, ActivityStatus, ActivityType, ActivityUIType, AssigneeItem } from './activity';
6
- import { ActivityModelItem } from './activity-model-type';
5
+ import { Activity, ActivityStartingType, ActivityStatus, ActivityType, ActivityUIType, AssigneeItem } from './activity.js';
6
+ import { ActivityModelItem } from './activity-model-type.js';
7
7
  export declare class ActivityHistory implements HistoryEntityInterface<Activity> {
8
8
  readonly id: string;
9
9
  version?: number;
@@ -9,8 +9,8 @@ const auth_base_1 = require("@things-factory/auth-base");
9
9
  const env_1 = require("@things-factory/env");
10
10
  const shell_1 = require("@things-factory/shell");
11
11
  const organization_1 = require("@things-factory/organization");
12
- const activity_1 = require("./activity");
13
- const activity_model_type_1 = require("./activity-model-type");
12
+ const activity_js_1 = require("./activity.js");
13
+ const activity_model_type_js_1 = require("./activity-model-type.js");
14
14
  const ORMCONFIG = env_1.config.get('ormconfig', {});
15
15
  const DATABASE_TYPE = ORMCONFIG.type;
16
16
  let ActivityHistory = class ActivityHistory {
@@ -61,7 +61,7 @@ tslib_1.__decorate([
61
61
  ], ActivityHistory.prototype, "state", void 0);
62
62
  tslib_1.__decorate([
63
63
  (0, typeorm_1.Column)('simple-json', { nullable: true }),
64
- (0, type_graphql_1.Field)(type => [activity_model_type_1.ActivityModelItem], { nullable: true }),
64
+ (0, type_graphql_1.Field)(type => [activity_model_type_js_1.ActivityModelItem], { nullable: true }),
65
65
  tslib_1.__metadata("design:type", Array)
66
66
  ], ActivityHistory.prototype, "model", void 0);
67
67
  tslib_1.__decorate([
@@ -125,7 +125,7 @@ tslib_1.__decorate([
125
125
  ], ActivityHistory.prototype, "supervisoryRoleId", void 0);
126
126
  tslib_1.__decorate([
127
127
  (0, typeorm_1.Column)('simple-json', { nullable: true }),
128
- (0, type_graphql_1.Field)(type => [activity_1.AssigneeItem], { nullable: true, description: 'Who to resolve for the activity.' }),
128
+ (0, type_graphql_1.Field)(type => [activity_js_1.AssigneeItem], { nullable: true, description: 'Who to resolve for the activity.' }),
129
129
  tslib_1.__metadata("design:type", Array)
130
130
  ], ActivityHistory.prototype, "assignees", void 0);
131
131
  tslib_1.__decorate([