@things-factory/worklist 9.0.0-beta.4 → 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.
- package/dist-client/components/activity-thread-timeline.d.ts +3 -3
- package/dist-client/components/activity-thread-timeline.js +1 -1
- package/dist-client/components/activity-thread-timeline.js.map +1 -1
- package/dist-client/grist-editor/popup-activity-search-keys-input.d.ts +1 -1
- package/dist-client/grist-editor/popup-activity-search-keys-input.js.map +1 -1
- package/dist-client/pages/activity/activity-partial-view.d.ts +3 -3
- package/dist-client/pages/activity/activity-partial-view.js +1 -1
- package/dist-client/pages/activity/activity-partial-view.js.map +1 -1
- package/dist-client/pages/activity-approval/activity-approval-list-page.d.ts +2 -2
- package/dist-client/pages/activity-approval/activity-approval-list-page.js +1 -1
- package/dist-client/pages/activity-approval/activity-approval-list-page.js.map +1 -1
- package/dist-client/pages/activity-instance/activity-instance-search-page.d.ts +1 -1
- package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +1 -1
- package/dist-client/pages/activity-instance/activity-instance-view.d.ts +3 -3
- package/dist-client/pages/activity-instance/activity-instance-view.js +1 -1
- package/dist-client/pages/activity-instance/activity-instance-view.js.map +1 -1
- package/dist-client/pages/activity-stats/activity-stats-list-page.d.ts +2 -2
- package/dist-client/pages/activity-stats/activity-stats-list-page.js +1 -1
- package/dist-client/pages/activity-stats/activity-stats-list-page.js.map +1 -1
- package/dist-client/pages/activity-template/activity-template-model-item-list.js +1 -1
- package/dist-client/pages/activity-template/activity-template-model-item-list.js.map +1 -1
- package/dist-client/pages/activity-thread/activity-thread-view.d.ts +1 -1
- package/dist-client/pages/activity-thread/activity-thread-view.js +1 -1
- package/dist-client/pages/activity-thread/activity-thread-view.js.map +1 -1
- package/dist-client/pages/installable-activity/installable-activity-model-item-list.js +1 -1
- package/dist-client/pages/installable-activity/installable-activity-model-item-list.js.map +1 -1
- package/dist-client/pages/todo/done-list-page.js +1 -1
- package/dist-client/pages/todo/done-list-page.js.map +1 -1
- package/dist-client/pages/todo/todo-list-page.js +1 -1
- package/dist-client/pages/todo/todo-list-page.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/types/activity-approval.d.ts +1 -1
- package/dist-client/types/activity-approval.js.map +1 -1
- package/dist-client/types/activity-instance-type.d.ts +2 -2
- package/dist-client/types/activity-instance-type.js.map +1 -1
- package/dist-client/types/activity-instance.d.ts +2 -2
- package/dist-client/types/activity-instance.js.map +1 -1
- package/dist-client/types/activity-thread-history.d.ts +3 -3
- package/dist-client/types/activity-thread-history.js.map +1 -1
- package/dist-client/types/activity-thread-type.d.ts +1 -1
- package/dist-client/types/activity-thread-type.js.map +1 -1
- package/dist-client/types/activity-thread.d.ts +3 -3
- package/dist-client/types/activity-thread.js.map +1 -1
- package/dist-client/types/activity.d.ts +2 -2
- package/dist-client/types/activity.js.map +1 -1
- package/dist-server/controllers/activity-approval/_abort.d.ts +1 -1
- package/dist-server/controllers/activity-approval/_abort.js +4 -4
- package/dist-server/controllers/activity-approval/_abort.js.map +1 -1
- package/dist-server/controllers/activity-approval/abort.d.ts +1 -1
- package/dist-server/controllers/activity-approval/abort.js +9 -9
- package/dist-server/controllers/activity-approval/abort.js.map +1 -1
- package/dist-server/controllers/activity-approval/approve.d.ts +1 -1
- package/dist-server/controllers/activity-approval/approve.js +18 -18
- package/dist-server/controllers/activity-approval/approve.js.map +1 -1
- package/dist-server/controllers/activity-approval/check-authority.d.ts +1 -1
- package/dist-server/controllers/activity-approval/check-authority.js.map +1 -1
- package/dist-server/controllers/activity-approval/delegate.d.ts +1 -1
- package/dist-server/controllers/activity-approval/delegate.js +6 -6
- package/dist-server/controllers/activity-approval/delegate.js.map +1 -1
- package/dist-server/controllers/activity-approval/reject.d.ts +1 -1
- package/dist-server/controllers/activity-approval/reject.js +10 -10
- package/dist-server/controllers/activity-approval/reject.js.map +1 -1
- package/dist-server/controllers/activity-approval/save.d.ts +1 -1
- package/dist-server/controllers/activity-approval/save.js +8 -8
- package/dist-server/controllers/activity-approval/save.js.map +1 -1
- package/dist-server/controllers/activity-installation/activity-installation-controller.d.ts +1 -1
- package/dist-server/controllers/activity-installation/activity-installation-controller.js.map +1 -1
- package/dist-server/controllers/activity-instance/abort.d.ts +1 -1
- package/dist-server/controllers/activity-instance/abort.js +10 -10
- package/dist-server/controllers/activity-instance/abort.js.map +1 -1
- package/dist-server/controllers/activity-instance/assign.d.ts +1 -1
- package/dist-server/controllers/activity-instance/assign.js +7 -7
- package/dist-server/controllers/activity-instance/assign.js.map +1 -1
- package/dist-server/controllers/activity-instance/draft.d.ts +2 -2
- package/dist-server/controllers/activity-instance/draft.js +8 -8
- package/dist-server/controllers/activity-instance/draft.js.map +1 -1
- package/dist-server/controllers/activity-instance/end.d.ts +1 -1
- package/dist-server/controllers/activity-instance/end.js +8 -8
- package/dist-server/controllers/activity-instance/end.js.map +1 -1
- package/dist-server/controllers/activity-instance/index.d.ts +6 -6
- package/dist-server/controllers/activity-instance/index.js +6 -6
- package/dist-server/controllers/activity-instance/index.js.map +1 -1
- package/dist-server/controllers/activity-instance/issue.d.ts +2 -2
- package/dist-server/controllers/activity-instance/issue.js +18 -18
- package/dist-server/controllers/activity-instance/issue.js.map +1 -1
- package/dist-server/controllers/activity-instance/pick.d.ts +1 -1
- package/dist-server/controllers/activity-instance/pick.js +6 -6
- package/dist-server/controllers/activity-instance/pick.js.map +1 -1
- package/dist-server/controllers/activity-thread/_abort.d.ts +1 -1
- package/dist-server/controllers/activity-thread/_abort.js +8 -8
- package/dist-server/controllers/activity-thread/_abort.js.map +1 -1
- package/dist-server/controllers/activity-thread/abort.d.ts +1 -1
- package/dist-server/controllers/activity-thread/abort.js +9 -9
- package/dist-server/controllers/activity-thread/abort.js.map +1 -1
- package/dist-server/controllers/activity-thread/check-authority.d.ts +1 -1
- package/dist-server/controllers/activity-thread/check-authority.js +5 -5
- package/dist-server/controllers/activity-thread/check-authority.js.map +1 -1
- package/dist-server/controllers/activity-thread/delegate.d.ts +1 -1
- package/dist-server/controllers/activity-thread/delegate.js +8 -8
- package/dist-server/controllers/activity-thread/delegate.js.map +1 -1
- package/dist-server/controllers/activity-thread/end.d.ts +1 -1
- package/dist-server/controllers/activity-thread/end.js +8 -8
- package/dist-server/controllers/activity-thread/end.js.map +1 -1
- package/dist-server/controllers/activity-thread/index.d.ts +7 -7
- package/dist-server/controllers/activity-thread/index.js +7 -7
- package/dist-server/controllers/activity-thread/index.js.map +1 -1
- package/dist-server/controllers/activity-thread/restart.d.ts +1 -1
- package/dist-server/controllers/activity-thread/restart.js +9 -9
- package/dist-server/controllers/activity-thread/restart.js.map +1 -1
- package/dist-server/controllers/activity-thread/save.d.ts +2 -2
- package/dist-server/controllers/activity-thread/save.js +8 -8
- package/dist-server/controllers/activity-thread/save.js.map +1 -1
- package/dist-server/controllers/activity-thread/start.d.ts +1 -1
- package/dist-server/controllers/activity-thread/start.js +8 -8
- package/dist-server/controllers/activity-thread/start.js.map +1 -1
- package/dist-server/controllers/activity-thread/submit.d.ts +1 -1
- package/dist-server/controllers/activity-thread/submit.js +15 -15
- package/dist-server/controllers/activity-thread/submit.js.map +1 -1
- package/dist-server/controllers/common.d.ts +4 -4
- package/dist-server/controllers/common.js +28 -28
- package/dist-server/controllers/common.js.map +1 -1
- package/dist-server/controllers/index.d.ts +2 -2
- package/dist-server/controllers/index.js +2 -2
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/index.d.ts +3 -3
- package/dist-server/index.js +3 -3
- package/dist-server/index.js.map +1 -1
- package/dist-server/routes.js +2 -2
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/activity/activity-history.d.ts +2 -2
- package/dist-server/service/activity/activity-history.js +4 -4
- package/dist-server/service/activity/activity-history.js.map +1 -1
- package/dist-server/service/activity/activity-mutation.d.ts +2 -2
- package/dist-server/service/activity/activity-mutation.js +24 -24
- package/dist-server/service/activity/activity-mutation.js.map +1 -1
- package/dist-server/service/activity/activity-query.d.ts +2 -2
- package/dist-server/service/activity/activity-query.js +26 -26
- package/dist-server/service/activity/activity-query.js.map +1 -1
- package/dist-server/service/activity/activity-type.d.ts +3 -3
- package/dist-server/service/activity/activity-type.js +2 -2
- package/dist-server/service/activity/activity-type.js.map +1 -1
- package/dist-server/service/activity/activity.d.ts +2 -2
- package/dist-server/service/activity/activity.js +4 -4
- package/dist-server/service/activity/activity.js.map +1 -1
- package/dist-server/service/activity/event-subscriber.d.ts +2 -2
- package/dist-server/service/activity/event-subscriber.js +4 -4
- package/dist-server/service/activity/event-subscriber.js.map +1 -1
- package/dist-server/service/activity/index.d.ts +5 -5
- package/dist-server/service/activity/index.js +8 -8
- package/dist-server/service/activity/index.js.map +1 -1
- package/dist-server/service/activity-approval/activity-approval-mutation.d.ts +1 -1
- package/dist-server/service/activity-approval/activity-approval-mutation.js +14 -14
- package/dist-server/service/activity-approval/activity-approval-mutation.js.map +1 -1
- package/dist-server/service/activity-approval/activity-approval-query.d.ts +3 -3
- package/dist-server/service/activity-approval/activity-approval-query.js +28 -28
- package/dist-server/service/activity-approval/activity-approval-query.js.map +1 -1
- package/dist-server/service/activity-approval/activity-approval-subscription.d.ts +1 -1
- package/dist-server/service/activity-approval/activity-approval-subscription.js +3 -3
- package/dist-server/service/activity-approval/activity-approval-subscription.js.map +1 -1
- package/dist-server/service/activity-approval/activity-approval-type.d.ts +1 -1
- package/dist-server/service/activity-approval/activity-approval-type.js +2 -2
- package/dist-server/service/activity-approval/activity-approval-type.js.map +1 -1
- package/dist-server/service/activity-approval/activity-approval.d.ts +1 -1
- package/dist-server/service/activity-approval/activity-approval.js +4 -4
- package/dist-server/service/activity-approval/activity-approval.js.map +1 -1
- package/dist-server/service/activity-approval/event-subscriber.d.ts +1 -1
- package/dist-server/service/activity-approval/event-subscriber.js +7 -7
- package/dist-server/service/activity-approval/event-subscriber.js.map +1 -1
- package/dist-server/service/activity-approval/index.d.ts +5 -5
- package/dist-server/service/activity-approval/index.js +8 -8
- package/dist-server/service/activity-approval/index.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-history-query.d.ts +2 -2
- package/dist-server/service/activity-instance/activity-instance-history-query.js +10 -10
- package/dist-server/service/activity-instance/activity-instance-history-query.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-history-type.d.ts +1 -1
- package/dist-server/service/activity-instance/activity-instance-history-type.js +2 -2
- package/dist-server/service/activity-instance/activity-instance-history-type.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-history.d.ts +2 -2
- package/dist-server/service/activity-instance/activity-instance-history.js +4 -4
- package/dist-server/service/activity-instance/activity-instance-history.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-mutation.d.ts +3 -3
- package/dist-server/service/activity-instance/activity-instance-mutation.js +24 -24
- package/dist-server/service/activity-instance/activity-instance-mutation.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-query.d.ts +4 -4
- package/dist-server/service/activity-instance/activity-instance-query.js +37 -37
- package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-subscription.d.ts +1 -1
- package/dist-server/service/activity-instance/activity-instance-subscription.js +3 -3
- package/dist-server/service/activity-instance/activity-instance-subscription.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-type.d.ts +2 -2
- package/dist-server/service/activity-instance/activity-instance-type.js +3 -3
- package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance.d.ts +2 -2
- package/dist-server/service/activity-instance/activity-instance.js +8 -8
- package/dist-server/service/activity-instance/activity-instance.js.map +1 -1
- package/dist-server/service/activity-instance/event-subscriber.d.ts +2 -2
- package/dist-server/service/activity-instance/event-subscriber.js +5 -5
- package/dist-server/service/activity-instance/event-subscriber.js.map +1 -1
- package/dist-server/service/activity-instance/index.d.ts +7 -7
- package/dist-server/service/activity-instance/index.js +10 -10
- package/dist-server/service/activity-instance/index.js.map +1 -1
- package/dist-server/service/activity-stats/activity-stats-query.d.ts +1 -1
- package/dist-server/service/activity-stats/activity-stats-query.js +15 -15
- package/dist-server/service/activity-stats/activity-stats-query.js.map +1 -1
- package/dist-server/service/activity-stats/index.d.ts +1 -1
- package/dist-server/service/activity-stats/index.js +2 -2
- package/dist-server/service/activity-stats/index.js.map +1 -1
- package/dist-server/service/activity-summary/activity-summary-query.d.ts +1 -1
- package/dist-server/service/activity-summary/activity-summary-query.js +22 -22
- package/dist-server/service/activity-summary/activity-summary-query.js.map +1 -1
- package/dist-server/service/activity-summary/index.d.ts +2 -2
- package/dist-server/service/activity-summary/index.js +4 -4
- package/dist-server/service/activity-summary/index.js.map +1 -1
- package/dist-server/service/activity-template/activity-template-history.d.ts +3 -3
- package/dist-server/service/activity-template/activity-template-history.js +4 -4
- package/dist-server/service/activity-template/activity-template-history.js.map +1 -1
- package/dist-server/service/activity-template/activity-template-mutation.d.ts +2 -2
- package/dist-server/service/activity-template/activity-template-mutation.js +19 -19
- package/dist-server/service/activity-template/activity-template-mutation.js.map +1 -1
- package/dist-server/service/activity-template/activity-template-query.d.ts +3 -3
- package/dist-server/service/activity-template/activity-template-query.js +15 -15
- package/dist-server/service/activity-template/activity-template-query.js.map +1 -1
- package/dist-server/service/activity-template/activity-template-type.d.ts +3 -3
- package/dist-server/service/activity-template/activity-template-type.js +3 -3
- package/dist-server/service/activity-template/activity-template-type.js.map +1 -1
- package/dist-server/service/activity-template/activity-template.d.ts +2 -2
- package/dist-server/service/activity-template/activity-template.js +3 -3
- package/dist-server/service/activity-template/activity-template.js.map +1 -1
- package/dist-server/service/activity-template/event-subscriber.d.ts +2 -2
- package/dist-server/service/activity-template/event-subscriber.js +4 -4
- package/dist-server/service/activity-template/event-subscriber.js.map +1 -1
- package/dist-server/service/activity-template/index.d.ts +5 -5
- package/dist-server/service/activity-template/index.js +8 -8
- package/dist-server/service/activity-template/index.js.map +1 -1
- package/dist-server/service/activity-thread/activity-thread-history-query.d.ts +1 -1
- package/dist-server/service/activity-thread/activity-thread-history-query.js +15 -11
- package/dist-server/service/activity-thread/activity-thread-history-query.js.map +1 -1
- package/dist-server/service/activity-thread/activity-thread-history.d.ts +2 -2
- package/dist-server/service/activity-thread/activity-thread-history.js +19 -19
- package/dist-server/service/activity-thread/activity-thread-history.js.map +1 -1
- package/dist-server/service/activity-thread/activity-thread-mutation.d.ts +2 -2
- package/dist-server/service/activity-thread/activity-thread-mutation.js +22 -22
- package/dist-server/service/activity-thread/activity-thread-mutation.js.map +1 -1
- package/dist-server/service/activity-thread/activity-thread-query.d.ts +5 -5
- package/dist-server/service/activity-thread/activity-thread-query.js +33 -33
- package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -1
- package/dist-server/service/activity-thread/activity-thread-subscription.d.ts +1 -1
- package/dist-server/service/activity-thread/activity-thread-subscription.js +3 -3
- package/dist-server/service/activity-thread/activity-thread-subscription.js.map +1 -1
- package/dist-server/service/activity-thread/activity-thread-type.d.ts +1 -1
- package/dist-server/service/activity-thread/activity-thread-type.js +2 -2
- package/dist-server/service/activity-thread/activity-thread-type.js.map +1 -1
- package/dist-server/service/activity-thread/activity-thread.d.ts +2 -2
- package/dist-server/service/activity-thread/activity-thread.js +7 -7
- package/dist-server/service/activity-thread/activity-thread.js.map +1 -1
- package/dist-server/service/activity-thread/event-subscriber.d.ts +2 -2
- package/dist-server/service/activity-thread/event-subscriber.js +5 -5
- package/dist-server/service/activity-thread/event-subscriber.js.map +1 -1
- package/dist-server/service/activity-thread/index.d.ts +7 -7
- package/dist-server/service/activity-thread/index.js +10 -10
- package/dist-server/service/activity-thread/index.js.map +1 -1
- package/dist-server/service/index.d.ts +10 -10
- package/dist-server/service/index.js +34 -34
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/installable-activity/index.d.ts +3 -3
- package/dist-server/service/installable-activity/index.js +5 -5
- package/dist-server/service/installable-activity/index.js.map +1 -1
- package/dist-server/service/installable-activity/installable-activity-mutation.d.ts +1 -1
- package/dist-server/service/installable-activity/installable-activity-mutation.js +12 -12
- package/dist-server/service/installable-activity/installable-activity-mutation.js.map +1 -1
- package/dist-server/service/installable-activity/installable-activity-query.d.ts +2 -2
- package/dist-server/service/installable-activity/installable-activity-query.js +10 -10
- package/dist-server/service/installable-activity/installable-activity-query.js.map +1 -1
- package/dist-server/service/installable-activity/installable-activity-type.d.ts +1 -1
- package/dist-server/service/installable-activity/installable-activity-type.js +2 -2
- package/dist-server/service/installable-activity/installable-activity-type.js.map +1 -1
- package/dist-server/service/installable-activity/installable-activity.d.ts +3 -3
- package/dist-server/service/installable-activity/installable-activity.js +5 -5
- package/dist-server/service/installable-activity/installable-activity.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.start = start;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
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(
|
|
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,
|
|
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 !==
|
|
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(
|
|
33
|
-
await (0,
|
|
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,
|
|
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,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
|
|
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(
|
|
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,
|
|
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 !==
|
|
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(
|
|
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:
|
|
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,
|
|
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(
|
|
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:
|
|
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:
|
|
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:
|
|
87
|
+
output, transaction: 'end', state: activity_thread_js_1.ActivityThreadStatus.Ended, updater: user, terminator: user, terminatedAt: new Date() }));
|
|
88
88
|
}
|
|
89
|
-
await (0,
|
|
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":";;AAOA,wBAuHC;AA9HD
|
|
1
|
+
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../server/controllers/activity-thread/submit.ts"],"names":[],"mappings":";;AAOA,wBAuHC;AA9HD,+DAAoF;AACpF,yDAAgD;AAChD,yFAAuG;AACvG,+FAAiH;AACjH,4CAA0F;AAC1F,6DAAqD;AAE9C,KAAK,UAAU,MAAM,CAC1B,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAoD,EACxE,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,+DAA+D;IAC/D,0DAA0D;IAE1D,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,mCAAc,CAAC,CAAA;IAEnD,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,kBAAkB,CAAC;KAChC,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,IAAI,cAAc,CAAC,KAAK,KAAK,yCAAoB,CAAC,OAAO,EAAE,CAAC;QACpH,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,+CAA+C,EAAE;YACzD,EAAE;YACF,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;IAED,2FAA2F;IAC3F,mEAAmE;IAEnE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QAC9B,cAAc,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;IACvC,CAAC;IAED,MAAM,YAAY,GAAuB,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAA;IAErF,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,kCAAmB,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YAE5C,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,yDAAyD,CAAA;YACjE,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,SAAS,CAAC;gBAC1D,EAAE,EAAE,cAAc;aACnB,CAAC,CAAA;YAEF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,sDAAsD,CAAA;YAC9D,CAAC;YAED,MAAM,EAAE,CAAC,aAAa,CAAC,uCAAgB,CAAC,CAAC,IAAI,CAAC;gBAC5C,MAAM;gBACN,cAAc;gBACd,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,+CAAwB,CAAC,OAAO;gBAC1C,WAAW,EAAE,QAAQ;gBACrB,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,YAAY,GAAG,MAAM,IAAA,0CAA8B,EAAC,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAEjF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,yDAAyD,CAAA;YACjE,CAAC;YAED,MAAM,EAAE,CAAC,aAAa,CAAC,uCAAgB,CAAC,CAAC,IAAI,CAAC;gBAC5C,MAAM;gBACN,cAAc;gBACd,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,+CAAwB,CAAC,OAAO;gBAC1C,WAAW,EAAE,QAAQ;gBACrB,QAAQ,EAAE,YAAY;gBACtB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;QACJ,CAAC;QAED,cAAc,GAAG,MAAM,UAAU,CAAC,IAAI,iCACjC,cAAc,KACjB,MAAM;YACN,MAAM,EACN,WAAW,EAAE,QAAQ,EACrB,KAAK,EAAE,yCAAoB,CAAC,SAAS,EACrC,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,MAAM,UAAU,CAAC,IAAI,iCACjC,cAAc,KACjB,MAAM;YACN,MAAM,EACN,WAAW,EAAE,KAAK,EAClB,KAAK,EAAE,yCAAoB,CAAC,KAAK,EACjC,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,IAAI,EAChB,YAAY,EAAE,IAAI,IAAI,EAAE,IACxB,CAAA;IACJ,CAAC;IAED,MAAM,IAAA,uCAA2B,EAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAE7G,OAAO,cAAc,CAAA;AACvB,CAAC","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
|
|
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(
|
|
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
|
|
39
|
-
await tx.getRepository(
|
|
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(
|
|
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 ===
|
|
53
|
-
case state ===
|
|
54
|
-
case state ===
|
|
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:
|
|
58
|
+
state: activity_instance_js_1.ActivityInstanceStatus.Issued
|
|
59
59
|
};
|
|
60
60
|
case threadsMin > validThreads.length:
|
|
61
61
|
return {
|
|
62
|
-
state:
|
|
62
|
+
state: activity_instance_js_1.ActivityInstanceStatus.Unassigned
|
|
63
63
|
};
|
|
64
64
|
case pendingStartedThreads.length > 0:
|
|
65
65
|
return {
|
|
66
|
-
state:
|
|
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 !==
|
|
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:
|
|
76
|
+
state: activity_instance_js_1.ActivityInstanceStatus.Started,
|
|
77
77
|
startedAt: new Date(),
|
|
78
78
|
starter: user
|
|
79
79
|
}
|
|
80
80
|
: {
|
|
81
|
-
state:
|
|
81
|
+
state: activity_instance_js_1.ActivityInstanceStatus.Pending
|
|
82
82
|
};
|
|
83
83
|
default:
|
|
84
84
|
return {
|
|
85
|
-
state: activityThreads.some(thread => thread.state ==
|
|
86
|
-
?
|
|
87
|
-
:
|
|
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: [
|
|
89
|
+
output: [activity_js_1.MultipleInstanceType.Parallel, activity_js_1.MultipleInstanceType.Sequential].includes(activityInstance.activity.multiple)
|
|
90
90
|
? activityThreads
|
|
91
|
-
.filter(thread => (thread.state =
|
|
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(
|
|
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:
|
|
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(
|
|
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:
|
|
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(
|
|
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:
|
|
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,
|
|
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"]}
|
package/dist-server/index.d.ts
CHANGED
|
@@ -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';
|
package/dist-server/index.js
CHANGED
|
@@ -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
|
package/dist-server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
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"]}
|
package/dist-server/routes.js
CHANGED
|
@@ -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
|
|
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,
|
|
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":";;
|
|
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
|
|
13
|
-
const
|
|
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 => [
|
|
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 => [
|
|
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([
|