@things-factory/worklist 6.1.58 → 6.1.59

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 (38) hide show
  1. package/client/pages/activity-instance/activity-instance-view.ts +116 -26
  2. package/client/types/activity-approval.ts +62 -0
  3. package/client/types/activity-thread.ts +3 -36
  4. package/dist-client/pages/activity-instance/activity-instance-view.d.ts +6 -2
  5. package/dist-client/pages/activity-instance/activity-instance-view.js +95 -24
  6. package/dist-client/pages/activity-instance/activity-instance-view.js.map +1 -1
  7. package/dist-client/tsconfig.tsbuildinfo +1 -1
  8. package/dist-client/types/activity-approval.d.ts +36 -0
  9. package/dist-client/types/activity-approval.js +17 -0
  10. package/dist-client/types/activity-approval.js.map +1 -0
  11. package/dist-client/types/activity-thread.d.ts +2 -0
  12. package/dist-client/types/activity-thread.js +0 -33
  13. package/dist-client/types/activity-thread.js.map +1 -1
  14. package/dist-server/controllers/activity-approval/abort.js +1 -1
  15. package/dist-server/controllers/activity-approval/abort.js.map +1 -1
  16. package/dist-server/controllers/activity-approval/approve.js +1 -1
  17. package/dist-server/controllers/activity-approval/approve.js.map +1 -1
  18. package/dist-server/controllers/activity-approval/delegate.js +1 -1
  19. package/dist-server/controllers/activity-approval/delegate.js.map +1 -1
  20. package/dist-server/controllers/activity-approval/reject.js +1 -1
  21. package/dist-server/controllers/activity-approval/reject.js.map +1 -1
  22. package/dist-server/service/activity-thread/activity-thread-query.js +14 -0
  23. package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -1
  24. package/dist-server/service/activity-thread/activity-thread.js +6 -0
  25. package/dist-server/service/activity-thread/activity-thread.js.map +1 -1
  26. package/dist-server/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +3 -3
  28. package/server/controllers/activity-approval/abort.ts +1 -1
  29. package/server/controllers/activity-approval/approve.ts +1 -1
  30. package/server/controllers/activity-approval/delegate.ts +1 -1
  31. package/server/controllers/activity-approval/reject.ts +1 -1
  32. package/server/service/activity-thread/activity-thread-query.ts +11 -0
  33. package/server/service/activity-thread/activity-thread.ts +5 -0
  34. package/translations/en.json +2 -0
  35. package/translations/ja.json +2 -0
  36. package/translations/ko.json +2 -0
  37. package/translations/ms.json +2 -0
  38. package/translations/zh.json +2 -0
@@ -0,0 +1,36 @@
1
+ import { Domain, User } from '@operato/shell';
2
+ import { ActivityThread } from './activity-thread';
3
+ export declare enum ActivityApprovalJudgment {
4
+ Pending = "",
5
+ Rejected = "rejected",
6
+ Escalated = "escalated",
7
+ Delegated = "delegated",
8
+ Approved = "approved",
9
+ Aborted = "aborted"
10
+ }
11
+ export declare class ActivityApproval {
12
+ id?: string;
13
+ domain?: Domain;
14
+ domainId?: string;
15
+ originalApproval?: ActivityApproval;
16
+ originalApprovalId?: string;
17
+ derivedApprovals?: ActivityApproval;
18
+ activityThread?: ActivityThread;
19
+ activityThreadId?: string;
20
+ round: number;
21
+ order?: number;
22
+ approver?: User;
23
+ approverId?: string;
24
+ judgment?: ActivityApprovalJudgment;
25
+ comment?: string;
26
+ transaction?: string;
27
+ createdAt?: Date;
28
+ updatedAt?: Date;
29
+ terminatedAt?: Date;
30
+ creator?: User;
31
+ creatorId?: string;
32
+ updater?: User;
33
+ updaterId?: string;
34
+ terminator?: User;
35
+ terminatorId?: string;
36
+ }
@@ -0,0 +1,17 @@
1
+ export var ActivityApprovalJudgment;
2
+ (function (ActivityApprovalJudgment) {
3
+ ActivityApprovalJudgment["Pending"] = "";
4
+ ActivityApprovalJudgment["Rejected"] = "rejected";
5
+ ActivityApprovalJudgment["Escalated"] = "escalated";
6
+ ActivityApprovalJudgment["Delegated"] = "delegated";
7
+ ActivityApprovalJudgment["Approved"] = "approved";
8
+ ActivityApprovalJudgment["Aborted"] = "aborted";
9
+ })(ActivityApprovalJudgment || (ActivityApprovalJudgment = {}));
10
+ export class ActivityApproval {
11
+ constructor() {
12
+ this.round = 1;
13
+ this.order = 0;
14
+ this.judgment = ActivityApprovalJudgment.Pending;
15
+ }
16
+ }
17
+ //# sourceMappingURL=activity-approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-approval.js","sourceRoot":"","sources":["../../client/types/activity-approval.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,wBAOX;AAPD,WAAY,wBAAwB;IAClC,wCAAY,CAAA;IACZ,iDAAqB,CAAA;IACrB,mDAAuB,CAAA;IACvB,mDAAuB,CAAA;IACvB,iDAAqB,CAAA;IACrB,+CAAmB,CAAA;AACrB,CAAC,EAPW,wBAAwB,KAAxB,wBAAwB,QAOnC;AAED,MAAM,OAAO,gBAAgB;IAA7B;QAiBE,UAAK,GAAW,CAAC,CAAA;QAEjB,UAAK,GAAY,CAAC,CAAA;QAMlB,aAAQ,GAA8B,wBAAwB,CAAC,OAAO,CAAA;IAuBxE,CAAC;CAAA","sourcesContent":["import { Domain, User } from '@operato/shell'\n\nimport { ActivityThread } from './activity-thread'\n\nexport enum ActivityApprovalJudgment {\n Pending = '',\n Rejected = 'rejected',\n Escalated = 'escalated',\n Delegated = 'delegated',\n Approved = 'approved',\n Aborted = 'aborted'\n}\n\nexport class ActivityApproval {\n id?: string\n\n domain?: Domain\n\n domainId?: string\n\n originalApproval?: ActivityApproval\n\n originalApprovalId?: string\n\n derivedApprovals?: ActivityApproval\n\n activityThread?: ActivityThread\n\n activityThreadId?: string\n\n round: number = 1\n\n order?: number = 0\n\n approver?: User\n\n approverId?: string\n\n judgment?: ActivityApprovalJudgment = ActivityApprovalJudgment.Pending\n\n comment?: string\n\n transaction?: string\n\n createdAt?: Date\n\n updatedAt?: Date\n\n terminatedAt?: Date\n\n creator?: User\n\n creatorId?: string\n\n updater?: User\n\n updaterId?: string\n\n terminator?: User\n\n terminatorId?: string\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { Domain, User } from '@operato/shell';
2
2
  import { ActivityInstance } from './activity-instance';
3
+ import { ActivityApproval } from './activity-approval';
3
4
  export declare enum ActivityThreadStatus {
4
5
  Assigned = "assigned",
5
6
  Started = "started",
@@ -15,6 +16,7 @@ export declare class ActivityThread {
15
16
  domain?: Domain;
16
17
  version?: number;
17
18
  activityInstance?: ActivityInstance;
19
+ activityApprovals?: ActivityApproval[];
18
20
  state?: ActivityThreadStatus;
19
21
  output?: {
20
22
  [key: string]: any;
@@ -13,39 +13,6 @@ export class ActivityThread {
13
13
  constructor() {
14
14
  this.version = 1;
15
15
  this.round = 1;
16
- // isPendingStarted(): boolean {
17
- // switch (this.state) {
18
- // case ActivityThreadStatus.Assigned:
19
- // return true
20
- // default:
21
- // return false
22
- // }
23
- // }
24
- // isPendingEnded(): boolean {
25
- // switch (this.state) {
26
- // case ActivityThreadStatus.Started:
27
- // case ActivityThreadStatus.Rejected:
28
- // case ActivityThreadStatus.Submitted:
29
- // case ActivityThreadStatus.Escalated:
30
- // return true
31
- // default:
32
- // return false
33
- // }
34
- // }
35
- // isValid(): boolean {
36
- // switch (this.state) {
37
- // case ActivityThreadStatus.Assigned:
38
- // case ActivityThreadStatus.Started:
39
- // case ActivityThreadStatus.Ended:
40
- // case ActivityThreadStatus.Rejected:
41
- // case ActivityThreadStatus.Escalated:
42
- // case ActivityThreadStatus.Aborted:
43
- // case ActivityThreadStatus.Submitted:
44
- // return true
45
- // default:
46
- // return false
47
- // }
48
- // }
49
16
  }
50
17
  }
51
18
  //# sourceMappingURL=activity-thread.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"activity-thread.js","sourceRoot":"","sources":["../../client/types/activity-thread.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,oBASX;AATD,WAAY,oBAAoB;IAC9B,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,+CAAuB,CAAA;IACvB,+CAAuB,CAAA;IACvB,+CAAuB,CAAA;IACvB,6CAAqB,CAAA;IACrB,uCAAe,CAAA;IACf,2CAAmB,CAAA;AACrB,CAAC,EATW,oBAAoB,KAApB,oBAAoB,QAS/B;AAED,MAAM,OAAO,cAAc;IAA3B;QAKE,YAAO,GAAY,CAAC,CAAA;QAUpB,UAAK,GAAY,CAAC,CAAA;QAsBlB,gCAAgC;QAChC,0BAA0B;QAC1B,0CAA0C;QAC1C,oBAAoB;QACpB,eAAe;QACf,qBAAqB;QACrB,MAAM;QACN,IAAI;QAEJ,8BAA8B;QAC9B,0BAA0B;QAC1B,yCAAyC;QACzC,0CAA0C;QAC1C,2CAA2C;QAC3C,2CAA2C;QAC3C,oBAAoB;QACpB,eAAe;QACf,qBAAqB;QACrB,MAAM;QACN,IAAI;QAEJ,uBAAuB;QACvB,0BAA0B;QAC1B,0CAA0C;QAC1C,yCAAyC;QACzC,uCAAuC;QACvC,0CAA0C;QAC1C,2CAA2C;QAC3C,yCAAyC;QACzC,2CAA2C;QAC3C,oBAAoB;QACpB,eAAe;QACf,qBAAqB;QACrB,MAAM;QACN,IAAI;IACN,CAAC;CAAA","sourcesContent":["import { Domain, User } from '@operato/shell'\n\nimport { ActivityInstance } from './activity-instance'\n\nexport enum ActivityThreadStatus {\n Assigned = 'assigned',\n Started = 'started',\n Delegated = 'delegated',\n Submitted = 'submitted',\n Escalated = 'escalated',\n Rejected = 'rejected',\n Ended = 'ended',\n Aborted = 'aborted'\n}\n\nexport class ActivityThread {\n id?: string\n\n domain?: Domain\n\n version?: number = 1\n\n activityInstance?: ActivityInstance\n\n state?: ActivityThreadStatus\n\n output?: { [key: string]: any }\n\n assignee?: User\n\n round?: number = 1\n\n transaction?: string\n\n dueAt?: Date\n\n assignedAt?: Date\n\n startedAt?: Date\n\n terminatedAt?: Date\n\n createdAt?: Date\n\n updatedAt?: Date\n\n creator?: User\n\n updater?: User\n\n terminator?: User\n\n // isPendingStarted(): boolean {\n // switch (this.state) {\n // case ActivityThreadStatus.Assigned:\n // return true\n // default:\n // return false\n // }\n // }\n\n // isPendingEnded(): boolean {\n // switch (this.state) {\n // case ActivityThreadStatus.Started:\n // case ActivityThreadStatus.Rejected:\n // case ActivityThreadStatus.Submitted:\n // case ActivityThreadStatus.Escalated:\n // return true\n // default:\n // return false\n // }\n // }\n\n // isValid(): boolean {\n // switch (this.state) {\n // case ActivityThreadStatus.Assigned:\n // case ActivityThreadStatus.Started:\n // case ActivityThreadStatus.Ended:\n // case ActivityThreadStatus.Rejected:\n // case ActivityThreadStatus.Escalated:\n // case ActivityThreadStatus.Aborted:\n // case ActivityThreadStatus.Submitted:\n // return true\n // default:\n // return false\n // }\n // }\n}\n"]}
1
+ {"version":3,"file":"activity-thread.js","sourceRoot":"","sources":["../../client/types/activity-thread.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,oBASX;AATD,WAAY,oBAAoB;IAC9B,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,+CAAuB,CAAA;IACvB,+CAAuB,CAAA;IACvB,+CAAuB,CAAA;IACvB,6CAAqB,CAAA;IACrB,uCAAe,CAAA;IACf,2CAAmB,CAAA;AACrB,CAAC,EATW,oBAAoB,KAApB,oBAAoB,QAS/B;AAED,MAAM,OAAO,cAAc;IAA3B;QAKE,YAAO,GAAY,CAAC,CAAA;QAYpB,UAAK,GAAY,CAAC,CAAA;IAqBpB,CAAC;CAAA","sourcesContent":["import { Domain, User } from '@operato/shell'\n\nimport { ActivityInstance } from './activity-instance'\nimport { ActivityApproval } from './activity-approval'\n\nexport enum ActivityThreadStatus {\n Assigned = 'assigned',\n Started = 'started',\n Delegated = 'delegated',\n Submitted = 'submitted',\n Escalated = 'escalated',\n Rejected = 'rejected',\n Ended = 'ended',\n Aborted = 'aborted'\n}\n\nexport class ActivityThread {\n id?: string\n\n domain?: Domain\n\n version?: number = 1\n\n activityInstance?: ActivityInstance\n\n activityApprovals?: ActivityApproval[]\n\n state?: ActivityThreadStatus\n\n output?: { [key: string]: any }\n\n assignee?: User\n\n round?: number = 1\n\n transaction?: string\n\n dueAt?: Date\n\n assignedAt?: Date\n\n startedAt?: Date\n\n terminatedAt?: Date\n\n createdAt?: Date\n\n updatedAt?: Date\n\n creator?: User\n\n updater?: User\n\n terminator?: User\n}\n"]}
@@ -18,7 +18,7 @@ async function abort({ id, comment }, context) {
18
18
  }
19
19
  /*
20
20
  Prerequisite of Abortion
21
- - Previous judgement should be 'pending'
21
+ - Previous judgment should be 'pending'
22
22
  */
23
23
  if (activityApproval.judgment !== activity_approval_1.ActivityApprovalJudgment.Pending) {
24
24
  throw new Error(context.t(`error.activity-approval is already terminated`, {
@@ -1 +1 @@
1
- {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../server/controllers/activity-approval/abort.ts"],"names":[],"mappings":";;;AAAA,yFAA8G;AAC9G,sCAAuD;AACvD,qCAAiC;AAE1B,KAAK,UAAU,KAAK,CACzB,EAAE,EAAE,EAAE,OAAO,EAAmC,EAChD,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;IAEnD,IAAI,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,gBAAgB,CAAC;KAC9B,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IAAI,gBAAgB,CAAC,QAAQ,KAAK,4CAAwB,CAAC,OAAO,EAAE;QAClE,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,+CAA+C,EAAE;YACzD,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,gBAAgB,CAAC,QAAQ;SAClC,CAAC,CACH,CAAA;KACF;IAED,IAAI,MAAM,GAAG,MAAM,IAAA,eAAM,EAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;IAEjE,MAAM,IAAA,oCAA2B,EAC/B,gBAAgB,CAAC,cAAc,CAAC,kBAAkB,EAClD,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,EAC/C,OAAO,CACR,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AA3CD,sBA2CC","sourcesContent":["import { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval'\nimport { updateActivityInstanceState } from '../common'\nimport { _abort } from './_abort'\n\nexport async function abort(\n { id, comment }: { id: string; comment: string },\n context: ResolverContext\n): Promise<ActivityApproval> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityApproval)\n\n var activityApproval = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['activityThread']\n })\n\n if (!activityApproval) {\n throw new Error(\n context.t('error.activity-approval not found', {\n activityApproval: id\n })\n )\n }\n\n /* \n Prerequisite of Abortion\n - Previous judgement should be 'pending'\n */\n if (activityApproval.judgment !== ActivityApprovalJudgment.Pending) {\n throw new Error(\n context.t(`error.activity-approval is already terminated`, {\n activityInstance: id,\n actual: activityApproval.judgment\n })\n )\n }\n\n var result = await _abort({ activityApproval, comment }, context)\n\n await updateActivityInstanceState(\n activityApproval.activityThread.activityInstanceId,\n { causedBy: [activityApproval.activityThread] },\n context\n )\n\n return result\n}\n"]}
1
+ {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../server/controllers/activity-approval/abort.ts"],"names":[],"mappings":";;;AAAA,yFAA8G;AAC9G,sCAAuD;AACvD,qCAAiC;AAE1B,KAAK,UAAU,KAAK,CACzB,EAAE,EAAE,EAAE,OAAO,EAAmC,EAChD,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;IAEnD,IAAI,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,gBAAgB,CAAC;KAC9B,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IAAI,gBAAgB,CAAC,QAAQ,KAAK,4CAAwB,CAAC,OAAO,EAAE;QAClE,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,+CAA+C,EAAE;YACzD,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,gBAAgB,CAAC,QAAQ;SAClC,CAAC,CACH,CAAA;KACF;IAED,IAAI,MAAM,GAAG,MAAM,IAAA,eAAM,EAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;IAEjE,MAAM,IAAA,oCAA2B,EAC/B,gBAAgB,CAAC,cAAc,CAAC,kBAAkB,EAClD,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,EAC/C,OAAO,CACR,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AA3CD,sBA2CC","sourcesContent":["import { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval'\nimport { updateActivityInstanceState } from '../common'\nimport { _abort } from './_abort'\n\nexport async function abort(\n { id, comment }: { id: string; comment: string },\n context: ResolverContext\n): Promise<ActivityApproval> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityApproval)\n\n var activityApproval = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['activityThread']\n })\n\n if (!activityApproval) {\n throw new Error(\n context.t('error.activity-approval not found', {\n activityApproval: id\n })\n )\n }\n\n /* \n Prerequisite of Abortion\n - Previous judgment should be 'pending'\n */\n if (activityApproval.judgment !== ActivityApprovalJudgment.Pending) {\n throw new Error(\n context.t(`error.activity-approval is already terminated`, {\n activityInstance: id,\n actual: activityApproval.judgment\n })\n )\n }\n\n var result = await _abort({ activityApproval, comment }, context)\n\n await updateActivityInstanceState(\n activityApproval.activityThread.activityInstanceId,\n { causedBy: [activityApproval.activityThread] },\n context\n )\n\n return result\n}\n"]}
@@ -18,7 +18,7 @@ async function approve({ id, comment }, context) {
18
18
  }
19
19
  /*
20
20
  Prerequisite of Approval
21
- - Previous judgement should be 'pending'
21
+ - Previous judgment should be 'pending'
22
22
  */
23
23
  if (activityApproval.judgment !== activity_approval_1.ActivityApprovalJudgment.Pending) {
24
24
  throw new Error(context.t(`error.activity-approval is already terminated`, {
@@ -1 +1 @@
1
- {"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../server/controllers/activity-approval/approve.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSystemUserFromOrgMemberItem } from '../../controllers/common'\nimport { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread'\nimport { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval'\nimport { ApprovalLineItem } from '@things-factory/organization'\nimport { updateActivityInstanceState } from '../common'\n\nexport async function approve(\n { id, comment }: { id: string; comment: string },\n context: ResolverContext\n): Promise<ActivityApproval> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityApproval)\n\n var activityApproval = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!activityApproval) {\n throw new Error(\n context.t('error.activity-approval not found', {\n activityApproval: id\n })\n )\n }\n\n /* \n Prerequisite of Approval\n - Previous judgement should be 'pending'\n */\n if (activityApproval.judgment !== ActivityApprovalJudgment.Pending) {\n throw new Error(\n context.t(`error.activity-approval is already terminated`, {\n activityInstance: id,\n actual: activityApproval.judgment\n })\n )\n }\n\n var activityThread = await tx.getRepository(ActivityThread).findOne({\n where: { domain: { id: domain.id }, id: activityApproval.activityThreadId },\n relations: ['activityInstance']\n })\n\n const approvalLine: ApprovalLineItem[] = activityThread.activityInstance.approvalLine\n const order = activityApproval.order\n\n const result = await tx.getRepository(ActivityApproval).save({\n ...activityApproval,\n judgment: approvalLine[order] ? ActivityApprovalJudgment.Escalated : ActivityApprovalJudgment.Approved,\n comment,\n transaction: approvalLine[order] ? 'escalate' : 'approve',\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n })\n\n if (approvalLine && approvalLine.length > order) {\n // approvalLine에서 후속 승인자에게 escalating.\n var approverUser = await getSystemUserFromOrgMemberItem(approvalLine[order], 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 order: order + 1,\n judgment: ActivityApprovalJudgment.Pending,\n transaction: 'escalate',\n approver: approverUser,\n creator: user,\n updater: user\n })\n\n activityThread = await tx.getRepository(ActivityThread).save({\n ...activityThread,\n transaction: 'escalate',\n state: ActivityThreadStatus.Escalated,\n updater: user\n })\n } else {\n activityThread = await tx.getRepository(ActivityThread).save({\n ...activityThread,\n transaction: 'approve',\n state: ActivityThreadStatus.Ended,\n terminatedAt: new Date(),\n terminator: user,\n updater: user\n })\n }\n\n await updateActivityInstanceState(activityThread.activityInstanceId, { causedBy: [activityThread] }, context)\n\n return result\n}\n"]}
1
+ {"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../server/controllers/activity-approval/approve.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSystemUserFromOrgMemberItem } from '../../controllers/common'\nimport { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread'\nimport { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval'\nimport { ApprovalLineItem } from '@things-factory/organization'\nimport { updateActivityInstanceState } from '../common'\n\nexport async function approve(\n { id, comment }: { id: string; comment: string },\n context: ResolverContext\n): Promise<ActivityApproval> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityApproval)\n\n var activityApproval = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!activityApproval) {\n throw new Error(\n context.t('error.activity-approval not found', {\n activityApproval: id\n })\n )\n }\n\n /* \n Prerequisite of Approval\n - Previous judgment should be 'pending'\n */\n if (activityApproval.judgment !== ActivityApprovalJudgment.Pending) {\n throw new Error(\n context.t(`error.activity-approval is already terminated`, {\n activityInstance: id,\n actual: activityApproval.judgment\n })\n )\n }\n\n var activityThread = await tx.getRepository(ActivityThread).findOne({\n where: { domain: { id: domain.id }, id: activityApproval.activityThreadId },\n relations: ['activityInstance']\n })\n\n const approvalLine: ApprovalLineItem[] = activityThread.activityInstance.approvalLine\n const order = activityApproval.order\n\n const result = await tx.getRepository(ActivityApproval).save({\n ...activityApproval,\n judgment: approvalLine[order] ? ActivityApprovalJudgment.Escalated : ActivityApprovalJudgment.Approved,\n comment,\n transaction: approvalLine[order] ? 'escalate' : 'approve',\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n })\n\n if (approvalLine && approvalLine.length > order) {\n // approvalLine에서 후속 승인자에게 escalating.\n var approverUser = await getSystemUserFromOrgMemberItem(approvalLine[order], 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 order: order + 1,\n judgment: ActivityApprovalJudgment.Pending,\n transaction: 'escalate',\n approver: approverUser,\n creator: user,\n updater: user\n })\n\n activityThread = await tx.getRepository(ActivityThread).save({\n ...activityThread,\n transaction: 'escalate',\n state: ActivityThreadStatus.Escalated,\n updater: user\n })\n } else {\n activityThread = await tx.getRepository(ActivityThread).save({\n ...activityThread,\n transaction: 'approve',\n state: ActivityThreadStatus.Ended,\n terminatedAt: new Date(),\n terminator: user,\n updater: user\n })\n }\n\n await updateActivityInstanceState(activityThread.activityInstanceId, { causedBy: [activityThread] }, context)\n\n return result\n}\n"]}
@@ -17,7 +17,7 @@ async function delegate({ id, to, comment }, context) {
17
17
  }
18
18
  /*
19
19
  Prerequisite of Delegation
20
- - Previous judgement should be 'pending'
20
+ - Previous judgment should be 'pending'
21
21
  */
22
22
  if (activityApproval.judgment !== activity_approval_1.ActivityApprovalJudgment.Pending) {
23
23
  throw new Error(context.t(`error.activity-approval is already terminated`, {
@@ -1 +1 @@
1
- {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../server/controllers/activity-approval/delegate.ts"],"names":[],"mappings":";;;AAAA,yDAAgD;AAEhD,yFAA8G;AAEvG,KAAK,UAAU,QAAQ,CAC5B,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAkD,EACnE,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;IAEnD,IAAI,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KACxC,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IAAI,gBAAgB,CAAC,QAAQ,KAAK,4CAAwB,CAAC,OAAO,EAAE;QAClE,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,+CAA+C,EAAE;YACzD,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,gBAAgB,CAAC,QAAQ;SAClC,CAAC,CACH,CAAA;KACF;IAED,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEtE,mCAAmC;IACnC,MAAM,UAAU,CAAC,IAAI,iCAChB,gBAAgB,KACnB,gBAAgB,EAAE,gBAAgB,EAClC,OAAO;QACP,QAAQ,EACR,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;IAEF,+BAA+B;IAC/B,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,gBAAgB,KACnB,QAAQ,EAAE,4CAAwB,CAAC,SAAS,EAC5C,OAAO,EACP,WAAW,EAAE,UAAU,EACvB,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,IAAI,EAChB,YAAY,EAAE,IAAI,IAAI,EAAE,IACxB,CAAA;AACJ,CAAC;AAzDD,4BAyDC","sourcesContent":["import { User } from '@things-factory/auth-base'\nimport { ObjectRef } from '@things-factory/shell'\nimport { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval'\n\nexport async function delegate(\n { id, to, comment }: { id: string; to: ObjectRef; comment: string },\n context: ResolverContext\n): Promise<ActivityApproval> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityApproval)\n\n var activityApproval = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activityThread']\n })\n\n if (!activityApproval) {\n throw new Error(\n context.t('error.activity-approval not found', {\n activityApproval: id\n })\n )\n }\n\n /* \n Prerequisite of Delegation\n - Previous judgement should be 'pending'\n */\n if (activityApproval.judgment !== ActivityApprovalJudgment.Pending) {\n throw new Error(\n context.t(`error.activity-approval is already terminated`, {\n activityInstance: id,\n actual: activityApproval.judgment\n })\n )\n }\n\n /* TODO user validation .. */\n const approver = await tx.getRepository(User).findOneBy({ id: to.id })\n\n /* create new delegated approval */\n await repository.save({\n ...activityApproval,\n originalApproval: activityApproval,\n comment,\n approver,\n creator: user,\n updater: user\n })\n\n /* terminate origin approval */\n return await repository.save({\n ...activityApproval,\n judgment: ActivityApprovalJudgment.Delegated,\n comment,\n transaction: 'delegate',\n updater: user,\n terminator: user,\n terminatedAt: new Date()\n })\n}\n"]}
1
+ {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../server/controllers/activity-approval/delegate.ts"],"names":[],"mappings":";;;AAAA,yDAAgD;AAEhD,yFAA8G;AAEvG,KAAK,UAAU,QAAQ,CAC5B,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAkD,EACnE,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;IAEnD,IAAI,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KACxC,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IAAI,gBAAgB,CAAC,QAAQ,KAAK,4CAAwB,CAAC,OAAO,EAAE;QAClE,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,+CAA+C,EAAE;YACzD,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,gBAAgB,CAAC,QAAQ;SAClC,CAAC,CACH,CAAA;KACF;IAED,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEtE,mCAAmC;IACnC,MAAM,UAAU,CAAC,IAAI,iCAChB,gBAAgB,KACnB,gBAAgB,EAAE,gBAAgB,EAClC,OAAO;QACP,QAAQ,EACR,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;IAEF,+BAA+B;IAC/B,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,gBAAgB,KACnB,QAAQ,EAAE,4CAAwB,CAAC,SAAS,EAC5C,OAAO,EACP,WAAW,EAAE,UAAU,EACvB,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,IAAI,EAChB,YAAY,EAAE,IAAI,IAAI,EAAE,IACxB,CAAA;AACJ,CAAC;AAzDD,4BAyDC","sourcesContent":["import { User } from '@things-factory/auth-base'\nimport { ObjectRef } from '@things-factory/shell'\nimport { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval'\n\nexport async function delegate(\n { id, to, comment }: { id: string; to: ObjectRef; comment: string },\n context: ResolverContext\n): Promise<ActivityApproval> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityApproval)\n\n var activityApproval = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activityThread']\n })\n\n if (!activityApproval) {\n throw new Error(\n context.t('error.activity-approval not found', {\n activityApproval: id\n })\n )\n }\n\n /* \n Prerequisite of Delegation\n - Previous judgment should be 'pending'\n */\n if (activityApproval.judgment !== ActivityApprovalJudgment.Pending) {\n throw new Error(\n context.t(`error.activity-approval is already terminated`, {\n activityInstance: id,\n actual: activityApproval.judgment\n })\n )\n }\n\n /* TODO user validation .. */\n const approver = await tx.getRepository(User).findOneBy({ id: to.id })\n\n /* create new delegated approval */\n await repository.save({\n ...activityApproval,\n originalApproval: activityApproval,\n comment,\n approver,\n creator: user,\n updater: user\n })\n\n /* terminate origin approval */\n return await repository.save({\n ...activityApproval,\n judgment: ActivityApprovalJudgment.Delegated,\n comment,\n transaction: 'delegate',\n updater: user,\n terminator: user,\n terminatedAt: new Date()\n })\n}\n"]}
@@ -18,7 +18,7 @@ async function reject({ id, comment }, context) {
18
18
  }
19
19
  /*
20
20
  Prerequisite of Rejection
21
- - Previous judgement should be 'pending'
21
+ - Previous judgment should be 'pending'
22
22
  */
23
23
  if (activityApproval.judgment !== activity_approval_1.ActivityApprovalJudgment.Pending) {
24
24
  throw new Error(context.t(`error.activity-approval is already terminated`, {
@@ -1 +1 @@
1
- {"version":3,"file":"reject.js","sourceRoot":"","sources":["../../../server/controllers/activity-approval/reject.ts"],"names":[],"mappings":";;;AAAA,mFAAoG;AACpG,yFAA8G;AAC9G,sCAAuD;AAEhD,KAAK,UAAU,MAAM,CAC1B,EAAE,EAAE,EAAE,OAAO,EAAmC,EAChD,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;IAEnD,IAAI,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,gBAAgB,CAAC;KAC9B,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IAAI,gBAAgB,CAAC,QAAQ,KAAK,4CAAwB,CAAC,OAAO,EAAE;QAClE,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,+CAA+C,EAAE;YACzD,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,gBAAgB,CAAC,QAAQ;SAClC,CAAC,CACH,CAAA;KACF;IAED,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,iCAC7B,gBAAgB,KACnB,QAAQ,EAAE,4CAAwB,CAAC,QAAQ,EAC3C,OAAO,EACP,WAAW,EAAE,QAAQ,EACrB,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,UAAU,EAAE,IAAI,IAChB,CAAA;IAEF,IAAI,cAAc,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,IAAI,iCAC3D,gBAAgB,CAAC,cAAc,KAClC,WAAW,EAAE,QAAQ,EACrB,KAAK,EAAE,sCAAoB,CAAC,QAAQ,EACpC,OAAO,EAAE,IAAI,IACb,CAAA;IAEF,MAAM,IAAA,oCAA2B,EAC/B,gBAAgB,CAAC,cAAc,CAAC,kBAAkB,EAClD,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAC9B,OAAO,CACR,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AA1DD,wBA0DC","sourcesContent":["import { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread'\nimport { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval'\nimport { updateActivityInstanceState } from '../common'\n\nexport async function reject(\n { id, comment }: { id: string; comment: string },\n context: ResolverContext\n): Promise<ActivityApproval> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityApproval)\n\n var activityApproval = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['activityThread']\n })\n\n if (!activityApproval) {\n throw new Error(\n context.t('error.activity-approval not found', {\n activityApproval: id\n })\n )\n }\n\n /* \n Prerequisite of Rejection\n - Previous judgement should be 'pending'\n */\n if (activityApproval.judgment !== ActivityApprovalJudgment.Pending) {\n throw new Error(\n context.t(`error.activity-approval is already terminated`, {\n activityInstance: id,\n actual: activityApproval.judgment\n })\n )\n }\n\n var result = await repository.save({\n ...activityApproval,\n judgment: ActivityApprovalJudgment.Rejected,\n comment,\n transaction: 'reject',\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n })\n\n var activityThread = await tx.getRepository(ActivityThread).save({\n ...activityApproval.activityThread,\n transaction: 'reject',\n state: ActivityThreadStatus.Rejected,\n updater: user\n })\n\n await updateActivityInstanceState(\n activityApproval.activityThread.activityInstanceId,\n { causedBy: [activityThread] },\n context\n )\n\n return result\n}\n"]}
1
+ {"version":3,"file":"reject.js","sourceRoot":"","sources":["../../../server/controllers/activity-approval/reject.ts"],"names":[],"mappings":";;;AAAA,mFAAoG;AACpG,yFAA8G;AAC9G,sCAAuD;AAEhD,KAAK,UAAU,MAAM,CAC1B,EAAE,EAAE,EAAE,OAAO,EAAmC,EAChD,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;IAEnD,IAAI,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,gBAAgB,CAAC;KAC9B,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IAAI,gBAAgB,CAAC,QAAQ,KAAK,4CAAwB,CAAC,OAAO,EAAE;QAClE,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,+CAA+C,EAAE;YACzD,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,gBAAgB,CAAC,QAAQ;SAClC,CAAC,CACH,CAAA;KACF;IAED,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,iCAC7B,gBAAgB,KACnB,QAAQ,EAAE,4CAAwB,CAAC,QAAQ,EAC3C,OAAO,EACP,WAAW,EAAE,QAAQ,EACrB,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,UAAU,EAAE,IAAI,IAChB,CAAA;IAEF,IAAI,cAAc,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,IAAI,iCAC3D,gBAAgB,CAAC,cAAc,KAClC,WAAW,EAAE,QAAQ,EACrB,KAAK,EAAE,sCAAoB,CAAC,QAAQ,EACpC,OAAO,EAAE,IAAI,IACb,CAAA;IAEF,MAAM,IAAA,oCAA2B,EAC/B,gBAAgB,CAAC,cAAc,CAAC,kBAAkB,EAClD,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAC9B,OAAO,CACR,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AA1DD,wBA0DC","sourcesContent":["import { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread'\nimport { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval'\nimport { updateActivityInstanceState } from '../common'\n\nexport async function reject(\n { id, comment }: { id: string; comment: string },\n context: ResolverContext\n): Promise<ActivityApproval> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityApproval)\n\n var activityApproval = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['activityThread']\n })\n\n if (!activityApproval) {\n throw new Error(\n context.t('error.activity-approval not found', {\n activityApproval: id\n })\n )\n }\n\n /* \n Prerequisite of Rejection\n - Previous judgment should be 'pending'\n */\n if (activityApproval.judgment !== ActivityApprovalJudgment.Pending) {\n throw new Error(\n context.t(`error.activity-approval is already terminated`, {\n activityInstance: id,\n actual: activityApproval.judgment\n })\n )\n }\n\n var result = await repository.save({\n ...activityApproval,\n judgment: ActivityApprovalJudgment.Rejected,\n comment,\n transaction: 'reject',\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n })\n\n var activityThread = await tx.getRepository(ActivityThread).save({\n ...activityApproval.activityThread,\n transaction: 'reject',\n state: ActivityThreadStatus.Rejected,\n updater: user\n })\n\n await updateActivityInstanceState(\n activityApproval.activityThread.activityInstanceId,\n { causedBy: [activityThread] },\n context\n )\n\n return result\n}\n"]}
@@ -7,6 +7,7 @@ const auth_base_1 = require("@things-factory/auth-base");
7
7
  const shell_1 = require("@things-factory/shell");
8
8
  const activity_instance_1 = require("../activity-instance/activity-instance");
9
9
  const activity_thread_1 = require("./activity-thread");
10
+ const activity_approval_1 = require("../activity-approval/activity-approval");
10
11
  const activity_thread_type_1 = require("./activity-thread-type");
11
12
  let ActivityThreadQuery = class ActivityThreadQuery {
12
13
  async activityThread(id, context) {
@@ -82,6 +83,11 @@ let ActivityThreadQuery = class ActivityThreadQuery {
82
83
  async activityInstance(activityThread) {
83
84
  return await (0, shell_1.getRepository)(activity_instance_1.ActivityInstance).findOneBy({ id: activityThread.activityInstanceId });
84
85
  }
86
+ async activityApprovals(activityThread, context) {
87
+ return await (0, shell_1.getRepository)(activity_approval_1.ActivityApproval).findBy({
88
+ activityThread: { id: activityThread.id }
89
+ });
90
+ }
85
91
  async domain(activityThread) {
86
92
  return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: activityThread.domainId });
87
93
  }
@@ -141,6 +147,14 @@ tslib_1.__decorate([
141
147
  tslib_1.__metadata("design:paramtypes", [activity_thread_1.ActivityThread]),
142
148
  tslib_1.__metadata("design:returntype", Promise)
143
149
  ], ActivityThreadQuery.prototype, "activityInstance", null);
150
+ tslib_1.__decorate([
151
+ (0, type_graphql_1.FieldResolver)(type => [activity_approval_1.ActivityApproval]),
152
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
153
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
154
+ tslib_1.__metadata("design:type", Function),
155
+ tslib_1.__metadata("design:paramtypes", [activity_thread_1.ActivityThread, Object]),
156
+ tslib_1.__metadata("design:returntype", Promise)
157
+ ], ActivityThreadQuery.prototype, "activityApprovals", null);
144
158
  tslib_1.__decorate([
145
159
  (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
146
160
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
@@ -1 +1 @@
1
- {"version":3,"file":"activity-thread-query.js","sourceRoot":"","sources":["../../../server/service/activity-thread/activity-thread-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ActivityInstance } from '../activity-instance/activity-instance'\nimport { ActivityThread, ActivityThreadStatus } from './activity-thread'\nimport { ActivityThreadList } from './activity-thread-type'\n\n@Resolver(ActivityThread)\nexport class ActivityThreadQuery {\n @Query(returns => ActivityThread!, { nullable: true, description: 'To fetch a ActivityThread' })\n async activityThread(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<ActivityThread> {\n const { domain } = context.state\n\n return await getRepository(ActivityThread).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => ActivityThreadList, { description: 'To fetch multiple ActivityThreads' })\n async activityThreads(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityThreadList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: getRepository(ActivityThread),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ActivityThreadList, { description: 'To fetch my own ActivityThreads' })\n async todoList(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityThreadList> {\n var { domain, user } = context.state\n\n const status = [\n // ActivityThreadStatus.Assigned,\n // ActivityThreadStatus.Started,\n // ActivityThreadStatus.Submitted,\n // ActivityThreadStatus.Escalated,\n // ActivityThreadStatus.Rejected,\n ActivityThreadStatus.Ended,\n ActivityThreadStatus.Aborted\n ]\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(ActivityThread),\n params,\n domain,\n alias: 'at',\n searchables: ['name', 'description'],\n filtersMap: {\n name: { columnName: 'name', relationColumn: 'activityInstance' },\n description: { columnName: 'description', relationColumn: 'activityInstance' },\n priority: { columnName: 'priority', relationColumn: 'activityInstance' }\n }\n })\n .andWhere('at.state NOT IN (:...status)', { status })\n .andWhere('at.assignee = :user', { user: user.id })\n .getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ActivityThreadList, { description: 'To fetch the tasks(ActivityThreads) which has done by me' })\n async doneList(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityThreadList> {\n var { domain, user } = context.state\n\n const status = [ActivityThreadStatus.Ended, ActivityThreadStatus.Aborted]\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(ActivityThread),\n params,\n domain,\n alias: 'at',\n searchables: ['name', 'description'],\n filtersMap: {\n name: { columnName: 'name', relationColumn: 'activityInstance' },\n description: { columnName: 'description', relationColumn: 'activityInstance' },\n priority: { columnName: 'priority', relationColumn: 'activityInstance' }\n }\n })\n .andWhere('at.state IN (:...status)', { status })\n .andWhere('at.assignee = :user', { user: user.id })\n .getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => User)\n async assignee(@Root() activityThread: ActivityThread): Promise<User> {\n return activityThread.assigneeId\n ? activityThread.assignee || (await getRepository(User).findOneBy({ id: activityThread.assigneeId }))\n : null\n }\n\n @FieldResolver(type => ActivityInstance)\n async activityInstance(@Root() activityThread: ActivityThread): Promise<ActivityInstance> {\n return await getRepository(ActivityInstance).findOneBy({ id: activityThread.activityInstanceId })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() activityThread: ActivityThread): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: activityThread.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() activityThread: ActivityThread): Promise<User> {\n return activityThread.updater && (await getRepository(User).findOneBy({ id: activityThread.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() activityThread: ActivityThread): Promise<User> {\n return activityThread.creator && (await getRepository(User).findOneBy({ id: activityThread.creatorId }))\n }\n\n @FieldResolver(type => User)\n async terminator(@Root() activityThread: ActivityThread): Promise<User> {\n return activityThread.terminator && (await getRepository(User).findOneBy({ id: activityThread.terminatorId }))\n }\n}\n"]}
1
+ {"version":3,"file":"activity-thread-query.js","sourceRoot":"","sources":["../../../server/service/activity-thread/activity-thread-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ActivityInstance } from '../activity-instance/activity-instance'\nimport { ActivityThread, ActivityThreadStatus } from './activity-thread'\nimport { ActivityApproval } from '../activity-approval/activity-approval'\nimport { ActivityThreadList } from './activity-thread-type'\n\n@Resolver(ActivityThread)\nexport class ActivityThreadQuery {\n @Query(returns => ActivityThread!, { nullable: true, description: 'To fetch a ActivityThread' })\n async activityThread(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<ActivityThread> {\n const { domain } = context.state\n\n return await getRepository(ActivityThread).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => ActivityThreadList, { description: 'To fetch multiple ActivityThreads' })\n async activityThreads(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityThreadList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: getRepository(ActivityThread),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ActivityThreadList, { description: 'To fetch my own ActivityThreads' })\n async todoList(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityThreadList> {\n var { domain, user } = context.state\n\n const status = [\n // ActivityThreadStatus.Assigned,\n // ActivityThreadStatus.Started,\n // ActivityThreadStatus.Submitted,\n // ActivityThreadStatus.Escalated,\n // ActivityThreadStatus.Rejected,\n ActivityThreadStatus.Ended,\n ActivityThreadStatus.Aborted\n ]\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(ActivityThread),\n params,\n domain,\n alias: 'at',\n searchables: ['name', 'description'],\n filtersMap: {\n name: { columnName: 'name', relationColumn: 'activityInstance' },\n description: { columnName: 'description', relationColumn: 'activityInstance' },\n priority: { columnName: 'priority', relationColumn: 'activityInstance' }\n }\n })\n .andWhere('at.state NOT IN (:...status)', { status })\n .andWhere('at.assignee = :user', { user: user.id })\n .getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ActivityThreadList, { description: 'To fetch the tasks(ActivityThreads) which has done by me' })\n async doneList(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ActivityThreadList> {\n var { domain, user } = context.state\n\n const status = [ActivityThreadStatus.Ended, ActivityThreadStatus.Aborted]\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(ActivityThread),\n params,\n domain,\n alias: 'at',\n searchables: ['name', 'description'],\n filtersMap: {\n name: { columnName: 'name', relationColumn: 'activityInstance' },\n description: { columnName: 'description', relationColumn: 'activityInstance' },\n priority: { columnName: 'priority', relationColumn: 'activityInstance' }\n }\n })\n .andWhere('at.state IN (:...status)', { status })\n .andWhere('at.assignee = :user', { user: user.id })\n .getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => User)\n async assignee(@Root() activityThread: ActivityThread): Promise<User> {\n return activityThread.assigneeId\n ? activityThread.assignee || (await getRepository(User).findOneBy({ id: activityThread.assigneeId }))\n : null\n }\n\n @FieldResolver(type => ActivityInstance)\n async activityInstance(@Root() activityThread: ActivityThread): Promise<ActivityInstance> {\n return await getRepository(ActivityInstance).findOneBy({ id: activityThread.activityInstanceId })\n }\n\n @FieldResolver(type => [ActivityApproval])\n async activityApprovals(\n @Root() activityThread: ActivityThread,\n @Ctx() context: ResolverContext\n ): Promise<ActivityApproval[]> {\n return await getRepository(ActivityApproval).findBy({\n activityThread: { id: activityThread.id }\n })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() activityThread: ActivityThread): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: activityThread.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() activityThread: ActivityThread): Promise<User> {\n return activityThread.updater && (await getRepository(User).findOneBy({ id: activityThread.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() activityThread: ActivityThread): Promise<User> {\n return activityThread.creator && (await getRepository(User).findOneBy({ id: activityThread.creatorId }))\n }\n\n @FieldResolver(type => User)\n async terminator(@Root() activityThread: ActivityThread): Promise<User> {\n return activityThread.terminator && (await getRepository(User).findOneBy({ id: activityThread.terminatorId }))\n }\n}\n"]}
@@ -7,6 +7,7 @@ const typeorm_1 = require("typeorm");
7
7
  const auth_base_1 = require("@things-factory/auth-base");
8
8
  const shell_1 = require("@things-factory/shell");
9
9
  const activity_instance_1 = require("../activity-instance/activity-instance");
10
+ const activity_approval_1 = require("../activity-approval/activity-approval");
10
11
  var ActivityThreadStatus;
11
12
  (function (ActivityThreadStatus) {
12
13
  ActivityThreadStatus["Assigned"] = "assigned";
@@ -117,6 +118,11 @@ tslib_1.__decorate([
117
118
  (0, type_graphql_1.Field)({ nullable: true }),
118
119
  tslib_1.__metadata("design:type", String)
119
120
  ], ActivityThread.prototype, "transaction", void 0);
121
+ tslib_1.__decorate([
122
+ (0, typeorm_1.OneToMany)(type => activity_approval_1.ActivityApproval, activityApproval => activityApproval.activityThread),
123
+ (0, type_graphql_1.Field)(type => [activity_approval_1.ActivityApproval]),
124
+ tslib_1.__metadata("design:type", Array)
125
+ ], ActivityThread.prototype, "activityApprovals", void 0);
120
126
  tslib_1.__decorate([
121
127
  (0, typeorm_1.Column)({ nullable: true }),
122
128
  (0, type_graphql_1.Field)({ nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"activity-thread.js","sourceRoot":"","sources":["../../../server/service/activity-thread/activity-thread.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType, registerEnumType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n OneToMany,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n VersionColumn,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, ScalarObject } from '@things-factory/shell'\n\nimport { ActivityInstance } from '../activity-instance/activity-instance'\n\nexport enum ActivityThreadStatus {\n Assigned = 'assigned',\n Started = 'started',\n Submitted = 'submitted',\n Escalated = 'escalated',\n Rejected = 'rejected',\n Ended = 'ended',\n Aborted = 'aborted'\n}\n\nregisterEnumType(ActivityThreadStatus, {\n name: 'ActivityThreadStatus',\n description: 'state enumeration of a ActivityThread'\n})\n\n@Entity()\n@Index(\n 'ix_activity_thread_0',\n (activityThread: ActivityThread) => [activityThread.activityInstance, activityThread.assignee],\n {\n unique: true\n }\n)\n@ObjectType({ description: 'Entity for ActivityThread' })\nexport class ActivityThread {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((activityThread: ActivityThread) => activityThread.domain)\n domainId?: string\n\n @VersionColumn({ default: 1 })\n @Field({ nullable: true })\n version?: number = 1\n\n @ManyToOne(type => ActivityInstance, activityInstance => activityInstance.activityThreads)\n @Field(type => ActivityInstance, { nullable: true })\n activityInstance?: ActivityInstance\n\n @RelationId((activityThread: ActivityThread) => activityThread.activityInstance)\n activityInstanceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n state?: ActivityThreadStatus\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n output?: { [key: string]: any }\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n assignee?: User\n\n @RelationId((activityThread: ActivityThread) => activityThread.assignee)\n assigneeId?: string\n\n @Column({ nullable: true, default: 1 })\n @Field({ nullable: true })\n round?: number = 1\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n transaction?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n dueAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n assignedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n startedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n terminatedAt?: Date\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n creator?: User\n\n @RelationId((activityThread: ActivityThread) => activityThread.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n updater?: User\n\n @RelationId((activityThread: ActivityThread) => activityThread.updater)\n updaterId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n terminator?: User\n\n @RelationId((activityThread: ActivityThread) => activityThread.terminator)\n terminatorId?: string\n\n isPendingStarted(): boolean {\n switch (this.state) {\n case ActivityThreadStatus.Assigned:\n return true\n default:\n return false\n }\n }\n\n isPendingEnded(): boolean {\n switch (this.state) {\n case ActivityThreadStatus.Started:\n case ActivityThreadStatus.Rejected:\n case ActivityThreadStatus.Submitted:\n case ActivityThreadStatus.Escalated:\n return true\n default:\n return false\n }\n }\n\n isValid(): boolean {\n switch (this.state) {\n case ActivityThreadStatus.Assigned:\n case ActivityThreadStatus.Started:\n case ActivityThreadStatus.Ended:\n case ActivityThreadStatus.Rejected:\n case ActivityThreadStatus.Escalated:\n case ActivityThreadStatus.Aborted:\n case ActivityThreadStatus.Submitted:\n return true\n default:\n return false\n }\n }\n}\n"]}
1
+ {"version":3,"file":"activity-thread.js","sourceRoot":"","sources":["../../../server/service/activity-thread/activity-thread.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAWgB;AAEhB,yDAAgD;AAChD,iDAA4D;AAE5D,8EAAyE;AACzE,8EAAyE;AAEzE,IAAY,oBAQX;AARD,WAAY,oBAAoB;IAC9B,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,+CAAuB,CAAA;IACvB,+CAAuB,CAAA;IACvB,6CAAqB,CAAA;IACrB,uCAAe,CAAA;IACf,2CAAmB,CAAA;AACrB,CAAC,EARW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAQ/B;AAED,IAAA,+BAAgB,EAAC,oBAAoB,EAAE;IACrC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,uCAAuC;CACrD,CAAC,CAAA;AAWK,IAAM,cAAc,GAApB,MAAM,cAAc;IAApB;QAcL,YAAO,GAAY,CAAC,CAAA;QA0BpB,UAAK,GAAY,CAAC,CAAA;IA0FpB,CAAC;IAnCC,gBAAgB;QACd,QAAQ,IAAI,CAAC,KAAK,EAAE;YAClB,KAAK,oBAAoB,CAAC,QAAQ;gBAChC,OAAO,IAAI,CAAA;YACb;gBACE,OAAO,KAAK,CAAA;SACf;IACH,CAAC;IAED,cAAc;QACZ,QAAQ,IAAI,CAAC,KAAK,EAAE;YAClB,KAAK,oBAAoB,CAAC,OAAO,CAAC;YAClC,KAAK,oBAAoB,CAAC,QAAQ,CAAC;YACnC,KAAK,oBAAoB,CAAC,SAAS,CAAC;YACpC,KAAK,oBAAoB,CAAC,SAAS;gBACjC,OAAO,IAAI,CAAA;YACb;gBACE,OAAO,KAAK,CAAA;SACf;IACH,CAAC;IAED,OAAO;QACL,QAAQ,IAAI,CAAC,KAAK,EAAE;YAClB,KAAK,oBAAoB,CAAC,QAAQ,CAAC;YACnC,KAAK,oBAAoB,CAAC,OAAO,CAAC;YAClC,KAAK,oBAAoB,CAAC,KAAK,CAAC;YAChC,KAAK,oBAAoB,CAAC,QAAQ,CAAC;YACnC,KAAK,oBAAoB,CAAC,SAAS,CAAC;YACpC,KAAK,oBAAoB,CAAC,OAAO,CAAC;YAClC,KAAK,oBAAoB,CAAC,SAAS;gBACjC,OAAO,IAAI,CAAA;YACb;gBACE,OAAO,KAAK,CAAA;SACf;IACH,CAAC;CACF,CAAA;AAjIC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;0CACC;AAEnB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,cAAM;8CAAA;AAEf;IAAC,IAAA,oBAAU,EAAC,CAAC,cAA8B,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;;gDACrD;AAEjB;IAAC,IAAA,uBAAa,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC7B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACN;AAEpB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,oCAAgB,EAAE,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC;IACzF,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oCAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjC,oCAAgB;wDAAA;AAEnC;IAAC,IAAA,oBAAU,EAAC,CAAC,cAA8B,EAAE,EAAE,CAAC,cAAc,CAAC,gBAAgB,CAAC;;0DACrD;AAE3B;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACE;AAE5B;IAAC,IAAA,gBAAM,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACjB;AAE/B;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,gBAAI;gDAAA;AAEf;IAAC,IAAA,oBAAU,EAAC,CAAC,cAA8B,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC;;kDACrD;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACR;AAElB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACN;AAEpB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,oCAAgB,EAAE,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC;IACxF,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oCAAgB,CAAC,CAAC;;yDACI;AAEtC;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAClB,IAAI;6CAAA;AAEZ;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACb,IAAI;kDAAA;AAEjB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;iDAAA;AAEhB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACX,IAAI;oDAAA;AAEnB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;iDAAA;AAEhB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;iDAAA;AAEhB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,gBAAI;+CAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,cAA8B,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC;;iDACrD;AAElB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,gBAAI;+CAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,cAA8B,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC;;iDACrD;AAElB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACb,gBAAI;kDAAA;AAEjB;IAAC,IAAA,oBAAU,EAAC,CAAC,cAA8B,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;;oDACrD;AA7FV,cAAc;IAT1B,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EACJ,sBAAsB,EACtB,CAAC,cAA8B,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC9F;QACE,MAAM,EAAE,IAAI;KACb,CACF;IACA,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;GAC5C,cAAc,CAkI1B;AAlIY,wCAAc","sourcesContent":["import { Field, ID, ObjectType, registerEnumType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n OneToMany,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n VersionColumn,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, ScalarObject } from '@things-factory/shell'\n\nimport { ActivityInstance } from '../activity-instance/activity-instance'\nimport { ActivityApproval } from '../activity-approval/activity-approval'\n\nexport enum ActivityThreadStatus {\n Assigned = 'assigned',\n Started = 'started',\n Submitted = 'submitted',\n Escalated = 'escalated',\n Rejected = 'rejected',\n Ended = 'ended',\n Aborted = 'aborted'\n}\n\nregisterEnumType(ActivityThreadStatus, {\n name: 'ActivityThreadStatus',\n description: 'state enumeration of a ActivityThread'\n})\n\n@Entity()\n@Index(\n 'ix_activity_thread_0',\n (activityThread: ActivityThread) => [activityThread.activityInstance, activityThread.assignee],\n {\n unique: true\n }\n)\n@ObjectType({ description: 'Entity for ActivityThread' })\nexport class ActivityThread {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((activityThread: ActivityThread) => activityThread.domain)\n domainId?: string\n\n @VersionColumn({ default: 1 })\n @Field({ nullable: true })\n version?: number = 1\n\n @ManyToOne(type => ActivityInstance, activityInstance => activityInstance.activityThreads)\n @Field(type => ActivityInstance, { nullable: true })\n activityInstance?: ActivityInstance\n\n @RelationId((activityThread: ActivityThread) => activityThread.activityInstance)\n activityInstanceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n state?: ActivityThreadStatus\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n output?: { [key: string]: any }\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n assignee?: User\n\n @RelationId((activityThread: ActivityThread) => activityThread.assignee)\n assigneeId?: string\n\n @Column({ nullable: true, default: 1 })\n @Field({ nullable: true })\n round?: number = 1\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n transaction?: string\n\n @OneToMany(type => ActivityApproval, activityApproval => activityApproval.activityThread)\n @Field(type => [ActivityApproval])\n activityApprovals?: ActivityApproval[]\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n dueAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n assignedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n startedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n terminatedAt?: Date\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n creator?: User\n\n @RelationId((activityThread: ActivityThread) => activityThread.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n updater?: User\n\n @RelationId((activityThread: ActivityThread) => activityThread.updater)\n updaterId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n terminator?: User\n\n @RelationId((activityThread: ActivityThread) => activityThread.terminator)\n terminatorId?: string\n\n isPendingStarted(): boolean {\n switch (this.state) {\n case ActivityThreadStatus.Assigned:\n return true\n default:\n return false\n }\n }\n\n isPendingEnded(): boolean {\n switch (this.state) {\n case ActivityThreadStatus.Started:\n case ActivityThreadStatus.Rejected:\n case ActivityThreadStatus.Submitted:\n case ActivityThreadStatus.Escalated:\n return true\n default:\n return false\n }\n }\n\n isValid(): boolean {\n switch (this.state) {\n case ActivityThreadStatus.Assigned:\n case ActivityThreadStatus.Started:\n case ActivityThreadStatus.Ended:\n case ActivityThreadStatus.Rejected:\n case ActivityThreadStatus.Escalated:\n case ActivityThreadStatus.Aborted:\n case ActivityThreadStatus.Submitted:\n return true\n default:\n return false\n }\n }\n}\n"]}