@things-factory/organization 6.0.21 → 6.0.25
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/client/component/approval-line-items-editor.ts +4 -2
- package/client/component/assignees-editor-popup.ts +75 -0
- package/client/component/assignees-editor.ts +211 -0
- package/client/component/assignees-view.ts +55 -0
- package/client/component/index.ts +5 -1
- package/client/model/approval-line.ts +3 -15
- package/client/model/org-member.ts +21 -0
- package/dist-client/component/approval-line-items-editor.js +4 -2
- package/dist-client/component/approval-line-items-editor.js.map +1 -1
- package/dist-client/component/assignees-editor-popup.d.ts +20 -0
- package/dist-client/component/assignees-editor-popup.js +81 -0
- package/dist-client/component/assignees-editor-popup.js.map +1 -0
- package/dist-client/component/assignees-editor.d.ts +27 -0
- package/dist-client/component/assignees-editor.js +208 -0
- package/dist-client/component/assignees-editor.js.map +1 -0
- package/dist-client/component/assignees-view.d.ts +10 -0
- package/dist-client/component/assignees-view.js +55 -0
- package/dist-client/component/assignees-view.js.map +1 -0
- package/dist-client/component/index.d.ts +3 -0
- package/dist-client/component/index.js +3 -0
- package/dist-client/component/index.js.map +1 -1
- package/dist-client/model/approval-line.d.ts +3 -13
- package/dist-client/model/approval-line.js +0 -8
- package/dist-client/model/approval-line.js.map +1 -1
- package/dist-client/model/org-member.d.ts +19 -0
- package/dist-client/model/org-member.js +14 -0
- package/dist-client/model/org-member.js.map +1 -0
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/approval-line/approval-line-item.js +22 -31
- package/dist-server/service/approval-line/approval-line-item.js.map +1 -1
- package/dist-server/service/approval-line/approval-line-query.js +7 -1
- package/dist-server/service/approval-line/approval-line-query.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/server/service/approval-line/approval-line-item.ts +12 -26
- package/server/service/approval-line/approval-line-query.ts +7 -1
- package/translations/en.json +1 -0
- package/translations/ko.json +1 -0
- package/translations/ms.json +1 -0
- package/translations/zh.json +1 -0
|
@@ -1,45 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApprovalLineItem = exports.
|
|
3
|
+
exports.ApprovalLineItem = exports.OrgMemberTarget = exports.OrgMemberTargetType = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const type_graphql_1 = require("type-graphql");
|
|
6
|
-
var
|
|
7
|
-
(function (
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
var OrgMemberTargetType;
|
|
7
|
+
(function (OrgMemberTargetType) {
|
|
8
|
+
OrgMemberTargetType["Employee"] = "Employee";
|
|
9
|
+
OrgMemberTargetType["Department"] = "Department";
|
|
10
|
+
OrgMemberTargetType["Role"] = "Role";
|
|
11
|
+
OrgMemberTargetType["Myself"] = "Myself";
|
|
12
|
+
OrgMemberTargetType["MyDepartment"] = "MyDepartment";
|
|
13
|
+
OrgMemberTargetType["MySupervisor"] = "MySupervisor";
|
|
14
|
+
})(OrgMemberTargetType = exports.OrgMemberTargetType || (exports.OrgMemberTargetType = {}));
|
|
15
|
+
(0, type_graphql_1.registerEnumType)(OrgMemberTargetType, {
|
|
16
|
+
name: 'OrgMemberTargetType',
|
|
14
17
|
description: 'type enumeration of a approval line item'
|
|
15
18
|
});
|
|
16
|
-
|
|
17
|
-
// export class ObjectRefApprover extends ObjectRef {
|
|
18
|
-
// @Field({ nullable: true })
|
|
19
|
-
// controlNo?: string
|
|
20
|
-
// }
|
|
21
|
-
let ApproverTarget = class ApproverTarget {
|
|
19
|
+
let OrgMemberTarget = class OrgMemberTarget {
|
|
22
20
|
};
|
|
23
21
|
tslib_1.__decorate([
|
|
24
22
|
(0, type_graphql_1.Field)(() => type_graphql_1.ID, { description: 'Field id' }),
|
|
25
23
|
tslib_1.__metadata("design:type", String)
|
|
26
|
-
],
|
|
24
|
+
], OrgMemberTarget.prototype, "id", void 0);
|
|
27
25
|
tslib_1.__decorate([
|
|
28
26
|
(0, type_graphql_1.Field)({ nullable: true, description: 'Field name' }),
|
|
29
27
|
tslib_1.__metadata("design:type", String)
|
|
30
|
-
],
|
|
28
|
+
], OrgMemberTarget.prototype, "name", void 0);
|
|
31
29
|
tslib_1.__decorate([
|
|
32
30
|
(0, type_graphql_1.Field)({ nullable: true, description: 'Field description' }),
|
|
33
31
|
tslib_1.__metadata("design:type", String)
|
|
34
|
-
],
|
|
32
|
+
], OrgMemberTarget.prototype, "description", void 0);
|
|
35
33
|
tslib_1.__decorate([
|
|
36
34
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
37
35
|
tslib_1.__metadata("design:type", String)
|
|
38
|
-
],
|
|
39
|
-
|
|
36
|
+
], OrgMemberTarget.prototype, "controlNo", void 0);
|
|
37
|
+
OrgMemberTarget = tslib_1.__decorate([
|
|
40
38
|
(0, type_graphql_1.ObjectType)()
|
|
41
|
-
],
|
|
42
|
-
exports.
|
|
39
|
+
], OrgMemberTarget);
|
|
40
|
+
exports.OrgMemberTarget = OrgMemberTarget;
|
|
43
41
|
let ApprovalLineItem = class ApprovalLineItem {
|
|
44
42
|
};
|
|
45
43
|
tslib_1.__decorate([
|
|
@@ -51,18 +49,11 @@ tslib_1.__decorate([
|
|
|
51
49
|
tslib_1.__metadata("design:type", String)
|
|
52
50
|
], ApprovalLineItem.prototype, "value", void 0);
|
|
53
51
|
tslib_1.__decorate([
|
|
54
|
-
(0, type_graphql_1.Field)(type =>
|
|
55
|
-
tslib_1.__metadata("design:type",
|
|
52
|
+
(0, type_graphql_1.Field)(type => OrgMemberTarget, { nullable: true }),
|
|
53
|
+
tslib_1.__metadata("design:type", OrgMemberTarget)
|
|
56
54
|
], ApprovalLineItem.prototype, "approver", void 0);
|
|
57
55
|
ApprovalLineItem = tslib_1.__decorate([
|
|
58
56
|
(0, type_graphql_1.ObjectType)({ description: 'Entity for approval line item' })
|
|
59
57
|
], ApprovalLineItem);
|
|
60
58
|
exports.ApprovalLineItem = ApprovalLineItem;
|
|
61
|
-
// @InputType()
|
|
62
|
-
// export class ApprovalLineItemPatch {
|
|
63
|
-
// @Field({ nullable: true })
|
|
64
|
-
// type?: ApprovalLineItemType
|
|
65
|
-
// @Field(type => ObjectRefApprover, { nullable: true })
|
|
66
|
-
// approver?: ObjectRefApprover
|
|
67
|
-
// }
|
|
68
59
|
//# sourceMappingURL=approval-line-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-line-item.js","sourceRoot":"","sources":["../../../server/service/approval-line/approval-line-item.ts"],"names":[],"mappings":";;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"approval-line-item.js","sourceRoot":"","sources":["../../../server/service/approval-line/approval-line-item.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AAEtE,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,4CAAqB,CAAA;IACrB,gDAAyB,CAAA;IACzB,oCAAa,CAAA;IACb,wCAAiB,CAAA;IACjB,oDAA6B,CAAA;IAC7B,oDAA6B,CAAA;AAC/B,CAAC,EAPW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAO9B;AAED,IAAA,+BAAgB,EAAC,mBAAmB,EAAE;IACpC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,0CAA0C;CACxD,CAAC,CAAA;AAGK,IAAM,eAAe,GAArB,MAAM,eAAe;CAY3B,CAAA;AAXC;IAAC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,iBAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;;2CAClC;AAEX;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;;6CACxC;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;;oDACxC;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACR;AAXP,eAAe;IAD3B,IAAA,yBAAU,GAAE;GACA,eAAe,CAY3B;AAZY,0CAAe;AAerB,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAS5B,CAAA;AARC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACA;AAE1B;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAC5B;AAEd;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACxC,eAAe;kDAAA;AARf,gBAAgB;IAD5B,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;GAChD,gBAAgB,CAS5B;AATY,4CAAgB","sourcesContent":["import { ObjectType, Field, ID, registerEnumType } from 'type-graphql'\n\nexport enum OrgMemberTargetType {\n Employee = 'Employee',\n Department = 'Department',\n Role = 'Role',\n Myself = 'Myself',\n MyDepartment = 'MyDepartment',\n MySupervisor = 'MySupervisor'\n}\n\nregisterEnumType(OrgMemberTargetType, {\n name: 'OrgMemberTargetType',\n description: 'type enumeration of a approval line item'\n})\n\n@ObjectType()\nexport class OrgMemberTarget {\n @Field(() => ID, { description: 'Field id' })\n id?: string\n\n @Field({ nullable: true, description: 'Field name' })\n name?: string\n\n @Field({ nullable: true, description: 'Field description' })\n description?: string\n\n @Field({ nullable: true })\n controlNo?: string\n}\n\n@ObjectType({ description: 'Entity for approval line item' })\nexport class ApprovalLineItem {\n @Field({ nullable: true })\n type?: OrgMemberTargetType\n\n @Field(type => String, { nullable: true })\n value?: string\n\n @Field(type => OrgMemberTarget, { nullable: true })\n approver?: OrgMemberTarget\n}\n"]}
|
|
@@ -28,7 +28,7 @@ async function getOwnerValue(approvalLine, context) {
|
|
|
28
28
|
return ownerObject;
|
|
29
29
|
}
|
|
30
30
|
async function getModel(approvalLine, context) {
|
|
31
|
-
const { domain } = context.state;
|
|
31
|
+
const { domain, user } = context.state;
|
|
32
32
|
const { model } = approvalLine;
|
|
33
33
|
if (!model || !(model instanceof Array)) {
|
|
34
34
|
return null;
|
|
@@ -47,6 +47,12 @@ async function getModel(approvalLine, context) {
|
|
|
47
47
|
case 'Role':
|
|
48
48
|
approver = await (0, shell_1.getRepository)('Role').findOneBy({ domain: { id: domain.id }, id });
|
|
49
49
|
break;
|
|
50
|
+
case 'Myself':
|
|
51
|
+
approver = user;
|
|
52
|
+
break;
|
|
53
|
+
case 'MyDepartment':
|
|
54
|
+
case 'MySupervisor':
|
|
55
|
+
break;
|
|
50
56
|
default:
|
|
51
57
|
}
|
|
52
58
|
approver && approvalLineItemList.push({ type, approver });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-line-query.js","sourceRoot":"","sources":["../../../server/service/approval-line/approval-line-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, Resolver, Query, FieldResolver, Root, Args, Arg, Ctx } from 'type-graphql'\nimport { Brackets, In } from 'typeorm'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ApprovalLineItem } from './approval-line-item'\nimport { ApprovalLine, ApprovalLineOwner } from './approval-line'\nimport { ApprovalLineList } from './approval-line-type'\nimport { Employee } from '../employee/employee'\n\nasync function getOwnerValue(approvalLine: ApprovalLine, context: ResolverContext) {\n const { domain } = context.state\n const { ownerType, ownerValue } = approvalLine\n\n if (!ownerType || !ownerValue) {\n /* ownerType이 클리어되거나, owner가 지정되지 않았다면, 클리어시킨다. */\n return null\n }\n\n var ownerObject\n\n switch (ownerType) {\n case 'Employee':\n ownerObject = await getRepository('Employee').findOneBy({ domain: { id: domain.id }, id: ownerValue })\n break\n default:\n return null\n }\n\n return ownerObject\n}\n\nasync function getModel(approvalLine: ApprovalLine, context: ResolverContext): Promise<ApprovalLineItem[]> {\n const { domain } = context.state\n const { model } = approvalLine\n\n if (!model || !(model instanceof Array)) {\n return null\n }\n\n var approvalLineItemList = []\n\n for (let item of model) {\n var { type, value: id } = item\n var approver\n\n switch (type) {\n case 'Employee':\n approver = await getRepository('Employee').findOneBy({ domain: { id: domain.id }, id })\n break\n case 'Department':\n approver = await getRepository('Department').findOneBy({ domain: { id: domain.id }, id })\n break\n case 'Role':\n approver = await getRepository('Role').findOneBy({ domain: { id: domain.id }, id })\n break\n default:\n }\n\n approver && approvalLineItemList.push({ type, approver })\n }\n\n return approvalLineItemList\n}\n\n@Resolver(ApprovalLine)\nexport class ApprovalLineQuery {\n @Query(returns => ApprovalLine!, { nullable: true, description: 'To fetch a approval line' })\n async approvalLine(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<ApprovalLine> {\n const { domain } = context.state\n\n return await getRepository(ApprovalLine).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@privilege(category: \"organization\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ApprovalLineList, { description: 'To fetch multiple approval lines' })\n async approvalLines(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ApprovalLineList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(ApprovalLine),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ApprovalLineList, { description: 'To fetch referable approval lines for the user' })\n async approvalLineReferences(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ApprovalLineList> {\n const { domain, user } = context.state\n const employees = await getRepository(Employee).findBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(ApprovalLine),\n searchables: ['name', 'description']\n }).andWhere(\n employees.length > 0\n ? new Brackets(qb => {\n qb.where({ ownerType: 'Common' })\n qb.orWhere({\n ownerType: 'Employee',\n ownerValue: In(employees.map(employee => employee.id))\n })\n })\n : { ownerType: 'Common' }\n )\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ApprovalLineList, { description: 'To fetch approval lines only for to the user' })\n async myApprovalLines(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ApprovalLineList> {\n const { domain, user } = context.state\n const employees = await getRepository(Employee).findBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(ApprovalLine),\n searchables: ['name', 'description']\n }).andWhere({\n ownerType: 'Employee',\n ownerValue: In(employees.map(employee => employee.id))\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ApprovalLineList, { description: 'To fetch common approval lines' })\n async commonApprovalLines(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ApprovalLineList> {\n const { domain, user } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(ApprovalLine),\n searchables: ['name', 'description']\n }).andWhere({\n ownerType: 'Common'\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => [ApprovalLineItem])\n async model(@Root() approvalLine: ApprovalLine, @Ctx() context: ResolverContext): Promise<ApprovalLineItem[]> {\n return await getModel(approvalLine, context)\n }\n\n @FieldResolver(type => ApprovalLineOwner)\n async owner(@Root() approvalLine: ApprovalLine, @Ctx() context: ResolverContext): Promise<ApprovalLineOwner> {\n return await getOwnerValue(approvalLine, context)\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() approvalLine: ApprovalLine): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: approvalLine.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() approvalLine: ApprovalLine): Promise<User> {\n return await getRepository(User).findOneBy({ id: approvalLine.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() approvalLine: ApprovalLine): Promise<User> {\n return await getRepository(User).findOneBy({ id: approvalLine.creatorId })\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"approval-line-query.js","sourceRoot":"","sources":["../../../server/service/approval-line/approval-line-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, Resolver, Query, FieldResolver, Root, Args, Arg, Ctx } from 'type-graphql'\nimport { Brackets, In } from 'typeorm'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ApprovalLineItem } from './approval-line-item'\nimport { ApprovalLine, ApprovalLineOwner } from './approval-line'\nimport { ApprovalLineList } from './approval-line-type'\nimport { Employee } from '../employee/employee'\n\nasync function getOwnerValue(approvalLine: ApprovalLine, context: ResolverContext) {\n const { domain } = context.state\n const { ownerType, ownerValue } = approvalLine\n\n if (!ownerType || !ownerValue) {\n /* ownerType이 클리어되거나, owner가 지정되지 않았다면, 클리어시킨다. */\n return null\n }\n\n var ownerObject\n\n switch (ownerType) {\n case 'Employee':\n ownerObject = await getRepository('Employee').findOneBy({ domain: { id: domain.id }, id: ownerValue })\n break\n default:\n return null\n }\n\n return ownerObject\n}\n\nasync function getModel(approvalLine: ApprovalLine, context: ResolverContext): Promise<ApprovalLineItem[]> {\n const { domain, user } = context.state\n const { model } = approvalLine\n\n if (!model || !(model instanceof Array)) {\n return null\n }\n\n var approvalLineItemList = []\n\n for (let item of model) {\n var { type, value: id } = item\n var approver\n\n switch (type) {\n case 'Employee':\n approver = await getRepository('Employee').findOneBy({ domain: { id: domain.id }, id })\n break\n case 'Department':\n approver = await getRepository('Department').findOneBy({ domain: { id: domain.id }, id })\n break\n case 'Role':\n approver = await getRepository('Role').findOneBy({ domain: { id: domain.id }, id })\n break\n case 'Myself':\n approver = user\n break\n case 'MyDepartment':\n case 'MySupervisor':\n break\n default:\n }\n\n approver && approvalLineItemList.push({ type, approver })\n }\n\n return approvalLineItemList\n}\n\n@Resolver(ApprovalLine)\nexport class ApprovalLineQuery {\n @Query(returns => ApprovalLine!, { nullable: true, description: 'To fetch a approval line' })\n async approvalLine(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<ApprovalLine> {\n const { domain } = context.state\n\n return await getRepository(ApprovalLine).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@privilege(category: \"organization\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ApprovalLineList, { description: 'To fetch multiple approval lines' })\n async approvalLines(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ApprovalLineList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(ApprovalLine),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ApprovalLineList, { description: 'To fetch referable approval lines for the user' })\n async approvalLineReferences(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ApprovalLineList> {\n const { domain, user } = context.state\n const employees = await getRepository(Employee).findBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(ApprovalLine),\n searchables: ['name', 'description']\n }).andWhere(\n employees.length > 0\n ? new Brackets(qb => {\n qb.where({ ownerType: 'Common' })\n qb.orWhere({\n ownerType: 'Employee',\n ownerValue: In(employees.map(employee => employee.id))\n })\n })\n : { ownerType: 'Common' }\n )\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ApprovalLineList, { description: 'To fetch approval lines only for to the user' })\n async myApprovalLines(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ApprovalLineList> {\n const { domain, user } = context.state\n const employees = await getRepository(Employee).findBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(ApprovalLine),\n searchables: ['name', 'description']\n }).andWhere({\n ownerType: 'Employee',\n ownerValue: In(employees.map(employee => employee.id))\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => ApprovalLineList, { description: 'To fetch common approval lines' })\n async commonApprovalLines(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ApprovalLineList> {\n const { domain, user } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(ApprovalLine),\n searchables: ['name', 'description']\n }).andWhere({\n ownerType: 'Common'\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => [ApprovalLineItem])\n async model(@Root() approvalLine: ApprovalLine, @Ctx() context: ResolverContext): Promise<ApprovalLineItem[]> {\n return await getModel(approvalLine, context)\n }\n\n @FieldResolver(type => ApprovalLineOwner)\n async owner(@Root() approvalLine: ApprovalLine, @Ctx() context: ResolverContext): Promise<ApprovalLineOwner> {\n return await getOwnerValue(approvalLine, context)\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() approvalLine: ApprovalLine): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: approvalLine.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() approvalLine: ApprovalLine): Promise<User> {\n return await getRepository(User).findOneBy({ id: approvalLine.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() approvalLine: ApprovalLine): Promise<User> {\n return await getRepository(User).findOneBy({ id: approvalLine.creatorId })\n }\n}\n"]}
|