@things-factory/organization 9.0.0-beta.8 → 9.0.0

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 (63) hide show
  1. package/dist-client/component/approval-line-brief.js +30 -30
  2. package/dist-client/component/approval-line-brief.js.map +1 -1
  3. package/dist-client/component/approval-line-items-editor-popup.js +15 -15
  4. package/dist-client/component/approval-line-items-editor-popup.js.map +1 -1
  5. package/dist-client/component/approval-line-items-editor.js +31 -33
  6. package/dist-client/component/approval-line-items-editor.js.map +1 -1
  7. package/dist-client/component/approval-line-selector.js +25 -26
  8. package/dist-client/component/approval-line-selector.js.map +1 -1
  9. package/dist-client/component/approval-line-templates-manager.js +23 -26
  10. package/dist-client/component/approval-line-templates-manager.js.map +1 -1
  11. package/dist-client/component/approval-line-view.js +27 -27
  12. package/dist-client/component/approval-line-view.js.map +1 -1
  13. package/dist-client/component/assignees-editor-popup.js +15 -15
  14. package/dist-client/component/assignees-editor-popup.js.map +1 -1
  15. package/dist-client/component/assignees-editor.js +31 -33
  16. package/dist-client/component/assignees-editor.js.map +1 -1
  17. package/dist-client/component/assignees-view.js +19 -19
  18. package/dist-client/component/assignees-view.js.map +1 -1
  19. package/dist-client/component/department-selector.js +20 -20
  20. package/dist-client/component/department-selector.js.map +1 -1
  21. package/dist-client/component/department-view.js +18 -18
  22. package/dist-client/component/department-view.js.map +1 -1
  23. package/dist-client/component/recipients-editor-popup.js +15 -15
  24. package/dist-client/component/recipients-editor-popup.js.map +1 -1
  25. package/dist-client/component/recipients-editor.js +26 -28
  26. package/dist-client/component/recipients-editor.js.map +1 -1
  27. package/dist-client/component/recipients-view.js +19 -19
  28. package/dist-client/component/recipients-view.js.map +1 -1
  29. package/dist-client/filters-form/filter-department-object.js +1 -1
  30. package/dist-client/filters-form/filter-department-object.js.map +1 -1
  31. package/dist-client/filters-form/ox-filter-department-object.js +51 -52
  32. package/dist-client/filters-form/ox-filter-department-object.js.map +1 -1
  33. package/dist-client/pages/approval-line/common-approval-line-templates-page.js +26 -28
  34. package/dist-client/pages/approval-line/common-approval-line-templates-page.js.map +1 -1
  35. package/dist-client/pages/approval-line/my-approval-line-templates-page.js +26 -28
  36. package/dist-client/pages/approval-line/my-approval-line-templates-page.js.map +1 -1
  37. package/dist-client/pages/department/department-importer.js +16 -17
  38. package/dist-client/pages/department/department-importer.js.map +1 -1
  39. package/dist-client/pages/department/department-list-page.js +23 -23
  40. package/dist-client/pages/department/department-list-page.js.map +1 -1
  41. package/dist-client/pages/department/department-tree-page.js +45 -47
  42. package/dist-client/pages/department/department-tree-page.js.map +1 -1
  43. package/dist-client/pages/employee/employee-importer.js +16 -17
  44. package/dist-client/pages/employee/employee-importer.js.map +1 -1
  45. package/dist-client/pages/employee/employee-list-page.js +29 -31
  46. package/dist-client/pages/employee/employee-list-page.js.map +1 -1
  47. package/dist-client/pages/employee/employees-by-department.js +25 -25
  48. package/dist-client/pages/employee/employees-by-department.js.map +1 -1
  49. package/dist-client/tsconfig.tsbuildinfo +1 -1
  50. package/dist-server/service/approval-line/approval-line-mutation.js +74 -16
  51. package/dist-server/service/approval-line/approval-line-mutation.js.map +1 -1
  52. package/dist-server/service/approval-line/approval-line-query.js +1 -1
  53. package/dist-server/service/approval-line/approval-line-query.js.map +1 -1
  54. package/dist-server/service/department/department-mutation.js +29 -9
  55. package/dist-server/service/department/department-mutation.js.map +1 -1
  56. package/dist-server/service/department/department-query.js +1 -1
  57. package/dist-server/service/department/department-query.js.map +1 -1
  58. package/dist-server/service/employee/employee-mutation.js +48 -13
  59. package/dist-server/service/employee/employee-mutation.js.map +1 -1
  60. package/dist-server/service/employee/employee-query.js +3 -4
  61. package/dist-server/service/employee/employee-query.js.map +1 -1
  62. package/dist-server/tsconfig.tsbuildinfo +1 -1
  63. package/package.json +12 -12
@@ -27,7 +27,7 @@ async function getOwnerValue(approvalLine, patch, context) {
27
27
  break;
28
28
  default:
29
29
  }
30
- return (ownerObject === null || ownerObject === void 0 ? void 0 : ownerObject.id) || null;
30
+ return ownerObject?.id || null;
31
31
  }
32
32
  function getModelValue(patch) {
33
33
  if (!('model' in patch)) {
@@ -48,12 +48,11 @@ function getModelValue(patch) {
48
48
  })
49
49
  .filter(m => m.type)
50
50
  .filter(m => {
51
- var _a;
52
51
  switch (m.type) {
53
52
  case approval_line_item_1.OrgMemberTargetType.Employee:
54
53
  case approval_line_item_1.OrgMemberTargetType.Department:
55
54
  case approval_line_item_1.OrgMemberTargetType.Role:
56
- return !!((_a = m.approver) === null || _a === void 0 ? void 0 : _a.id);
55
+ return !!m.approver?.id;
57
56
  default:
58
57
  return true;
59
58
  }
@@ -62,7 +61,14 @@ function getModelValue(patch) {
62
61
  let ApprovalLineMutation = class ApprovalLineMutation {
63
62
  async createApprovalLine(approvalLine, context) {
64
63
  const { domain, user, tx } = context.state;
65
- const result = await (0, shell_1.getRepository)(approval_line_1.ApprovalLine, tx).save(Object.assign(Object.assign({}, approvalLine), { ownerValue: await getOwnerValue(approvalLine, approvalLine, context), model: getModelValue(approvalLine), domain, creator: user, updater: user }));
64
+ const result = await (0, shell_1.getRepository)(approval_line_1.ApprovalLine, tx).save({
65
+ ...approvalLine,
66
+ ownerValue: await getOwnerValue(approvalLine, approvalLine, context),
67
+ model: getModelValue(approvalLine),
68
+ domain,
69
+ creator: user,
70
+ updater: user
71
+ });
66
72
  return result;
67
73
  }
68
74
  async createMyApprovalLine(approvalLine, context) {
@@ -74,7 +80,15 @@ let ApprovalLineMutation = class ApprovalLineMutation {
74
80
  if (!employee) {
75
81
  throw new Error('There is no employee object associated with the user.');
76
82
  }
77
- const result = await (0, shell_1.getRepository)(approval_line_1.ApprovalLine, tx).save(Object.assign(Object.assign({}, approvalLine), { ownerType: approval_line_1.ApprovalLineOwnerType.Employee, ownerValue: employee.id, model: getModelValue(approvalLine), domain, creator: user, updater: user }));
83
+ const result = await (0, shell_1.getRepository)(approval_line_1.ApprovalLine, tx).save({
84
+ ...approvalLine,
85
+ ownerType: approval_line_1.ApprovalLineOwnerType.Employee,
86
+ ownerValue: employee.id,
87
+ model: getModelValue(approvalLine),
88
+ domain,
89
+ creator: user,
90
+ updater: user
91
+ });
78
92
  return result;
79
93
  }
80
94
  async updateApprovalLine(id, patch, context) {
@@ -83,7 +97,13 @@ let ApprovalLineMutation = class ApprovalLineMutation {
83
97
  const approvalLine = await repository.findOne({
84
98
  where: { domain: { id: domain.id }, id }
85
99
  });
86
- const result = await repository.save(Object.assign(Object.assign(Object.assign({}, approvalLine), patch), { ownerValue: await getOwnerValue(approvalLine, patch, context), model: getModelValue(patch), updater: user }));
100
+ const result = await repository.save({
101
+ ...approvalLine,
102
+ ...patch,
103
+ ownerValue: await getOwnerValue(approvalLine, patch, context),
104
+ model: getModelValue(patch),
105
+ updater: user
106
+ });
87
107
  return result;
88
108
  }
89
109
  async updateMyApprovalLine(id, patch, context) {
@@ -96,7 +116,14 @@ let ApprovalLineMutation = class ApprovalLineMutation {
96
116
  const approvalLine = await repository.findOne({
97
117
  where: { domain: { id: domain.id }, id }
98
118
  });
99
- const result = await repository.save(Object.assign(Object.assign(Object.assign({}, approvalLine), patch), { ownerType: approval_line_1.ApprovalLineOwnerType.Employee, ownerValue: employee.id, model: getModelValue(patch), updater: user }));
119
+ const result = await repository.save({
120
+ ...approvalLine,
121
+ ...patch,
122
+ ownerType: approval_line_1.ApprovalLineOwnerType.Employee,
123
+ ownerValue: employee.id,
124
+ model: getModelValue(patch),
125
+ updater: user
126
+ });
100
127
  return result;
101
128
  }
102
129
  async updateMultipleApprovalLine(patches, context) {
@@ -108,16 +135,29 @@ let ApprovalLineMutation = class ApprovalLineMutation {
108
135
  if (_createRecords.length > 0) {
109
136
  for (let i = 0; i < _createRecords.length; i++) {
110
137
  const newRecord = _createRecords[i];
111
- const result = await approvalLineRepo.save(Object.assign(Object.assign({}, newRecord), { ownerValue: await getOwnerValue(newRecord, newRecord, context), model: getModelValue(newRecord), domain, creator: user, updater: user }));
112
- results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
138
+ const result = await approvalLineRepo.save({
139
+ ...newRecord,
140
+ ownerValue: await getOwnerValue(newRecord, newRecord, context),
141
+ model: getModelValue(newRecord),
142
+ domain,
143
+ creator: user,
144
+ updater: user
145
+ });
146
+ results.push({ ...result, cuFlag: '+' });
113
147
  }
114
148
  }
115
149
  if (_updateRecords.length > 0) {
116
150
  for (let i = 0; i < _updateRecords.length; i++) {
117
151
  const updateRecord = _updateRecords[i];
118
152
  const approvalLine = await approvalLineRepo.findOneBy({ id: updateRecord.id });
119
- const result = await approvalLineRepo.save(Object.assign(Object.assign(Object.assign({}, approvalLine), updateRecord), { ownerValue: await getOwnerValue(approvalLine, updateRecord, context), model: getModelValue(updateRecord), updater: user }));
120
- results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
153
+ const result = await approvalLineRepo.save({
154
+ ...approvalLine,
155
+ ...updateRecord,
156
+ ownerValue: await getOwnerValue(approvalLine, updateRecord, context),
157
+ model: getModelValue(updateRecord),
158
+ updater: user
159
+ });
160
+ results.push({ ...result, cuFlag: 'M' });
121
161
  }
122
162
  }
123
163
  return results;
@@ -138,16 +178,31 @@ let ApprovalLineMutation = class ApprovalLineMutation {
138
178
  if (_createRecords.length > 0) {
139
179
  for (let i = 0; i < _createRecords.length; i++) {
140
180
  const newRecord = _createRecords[i];
141
- const result = await approvalLineRepo.save(Object.assign(Object.assign({}, newRecord), { ownerType: approval_line_1.ApprovalLineOwnerType.Employee, ownerValue: employee.id, model: getModelValue(newRecord), domain, creator: user, updater: user }));
142
- results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
181
+ const result = await approvalLineRepo.save({
182
+ ...newRecord,
183
+ ownerType: approval_line_1.ApprovalLineOwnerType.Employee,
184
+ ownerValue: employee.id,
185
+ model: getModelValue(newRecord),
186
+ domain,
187
+ creator: user,
188
+ updater: user
189
+ });
190
+ results.push({ ...result, cuFlag: '+' });
143
191
  }
144
192
  }
145
193
  if (_updateRecords.length > 0) {
146
194
  for (let i = 0; i < _updateRecords.length; i++) {
147
195
  const updateRecord = _updateRecords[i];
148
196
  const approvalLine = await approvalLineRepo.findOneBy({ id: updateRecord.id });
149
- const result = await approvalLineRepo.save(Object.assign(Object.assign(Object.assign({}, approvalLine), updateRecord), { ownerType: approval_line_1.ApprovalLineOwnerType.Employee, ownerValue: employee.id, model: getModelValue(updateRecord), updater: user }));
150
- results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
197
+ const result = await approvalLineRepo.save({
198
+ ...approvalLine,
199
+ ...updateRecord,
200
+ ownerType: approval_line_1.ApprovalLineOwnerType.Employee,
201
+ ownerValue: employee.id,
202
+ model: getModelValue(updateRecord),
203
+ updater: user
204
+ });
205
+ results.push({ ...result, cuFlag: 'M' });
151
206
  }
152
207
  }
153
208
  return results;
@@ -202,7 +257,10 @@ let ApprovalLineMutation = class ApprovalLineMutation {
202
257
  async importApprovalLines(approvalLines, context) {
203
258
  const { domain, tx } = context.state;
204
259
  await Promise.all(approvalLines.map(async (approvalLine) => {
205
- const createdApprovalLine = await (0, shell_1.getRepository)(approval_line_1.ApprovalLine, tx).save(Object.assign({ domain }, approvalLine));
260
+ const createdApprovalLine = await (0, shell_1.getRepository)(approval_line_1.ApprovalLine, tx).save({
261
+ domain,
262
+ ...approvalLine
263
+ });
206
264
  }));
207
265
  return true;
208
266
  }
@@ -1 +1 @@
1
- {"version":3,"file":"approval-line-mutation.js","sourceRoot":"","sources":["../../../server/service/approval-line/approval-line-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\nimport { Employee } from '../employee/employee'\nimport { ApprovalLine, ApprovalLineOwnerType } from './approval-line'\nimport { ApprovalLineItem, OrgMemberTargetType } from './approval-line-item'\nimport { NewApprovalLine, ApprovalLinePatch } from './approval-line-type'\n\nasync function getOwnerValue(\n approvalLine: ApprovalLine | NewApprovalLine | ApprovalLinePatch,\n patch: NewApprovalLine | ApprovalLinePatch,\n context: ResolverContext\n) {\n if (!('owner' in patch || 'ownerType' in patch)) {\n /* owner 또는 ownerType 하나도 언급되지 않았다면, 업데이트하지 않는다. */\n return\n }\n\n const { domain, tx } = context.state\n const { ownerType, owner } = patch\n\n if (!ownerType || !owner) {\n /* ownerType이 클리어되거나, owner가 지정되지 않았다면, 클리어시킨다. */\n return null\n }\n\n var ownerObject\n\n switch (ownerType || approvalLine.ownerType) {\n case ApprovalLineOwnerType.Employee:\n ownerObject = await getRepository(Employee, tx).findOneBy({ domain: { id: domain.id }, id: owner.id })\n break\n default:\n }\n\n return ownerObject?.id || null\n}\n\nfunction getModelValue(patch: NewApprovalLine | ApprovalLinePatch): ApprovalLineItem[] {\n if (!('model' in patch)) {\n /* model이 언급되지 않았다면, 업데이트하지 않는다. */\n return\n }\n\n const { model } = patch\n\n if (!model || !(model instanceof Array)) {\n /* model의 값이 없거나 배열이 아니라면, 클리어시킨다. */\n return null\n }\n\n return model\n .map(m => {\n return {\n type: m.type,\n approver: m.approver\n } as ApprovalLineItem\n })\n .filter(m => m.type)\n .filter(m => {\n switch (m.type) {\n case OrgMemberTargetType.Employee:\n case OrgMemberTargetType.Department:\n case OrgMemberTargetType.Role:\n return !!m.approver?.id\n default:\n return true\n }\n })\n}\n\n@Resolver(ApprovalLine)\nexport class ApprovalLineMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => ApprovalLine, { description: 'To create new ApprovalLine' })\n async createApprovalLine(\n @Arg('approvalLine') approvalLine: NewApprovalLine,\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine> {\n const { domain, user, tx } = context.state\n\n const result = await getRepository(ApprovalLine, tx).save({\n ...approvalLine,\n ownerValue: await getOwnerValue(approvalLine, approvalLine, context),\n model: getModelValue(approvalLine),\n domain,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => ApprovalLine, { description: 'To create new ApprovalLine for current user' })\n async createMyApprovalLine(\n @Arg('approvalLine') approvalLine: NewApprovalLine,\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine> {\n const { domain, user, tx } = context.state\n const employee = await getRepository(Employee, tx).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee) {\n throw new Error('There is no employee object associated with the user.')\n }\n\n const result = await getRepository(ApprovalLine, tx).save({\n ...approvalLine,\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id,\n model: getModelValue(approvalLine),\n domain,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => ApprovalLine, { description: 'To modify ApprovalLine information' })\n async updateApprovalLine(\n @Arg('id') id: string,\n @Arg('patch') patch: ApprovalLinePatch,\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine> {\n const { domain, user, tx } = context.state\n\n const repository = getRepository(ApprovalLine, tx)\n const approvalLine = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...approvalLine,\n ...patch,\n ownerValue: await getOwnerValue(approvalLine, patch, context),\n model: getModelValue(patch),\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => ApprovalLine, { description: 'To modify ApprovalLine information for current user' })\n async updateMyApprovalLine(\n @Arg('id') id: string,\n @Arg('patch') patch: ApprovalLinePatch,\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine> {\n const { domain, user, tx } = context.state\n const employee = await getRepository(Employee, tx).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n const repository = getRepository(ApprovalLine, tx)\n const approvalLine = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...approvalLine,\n ...patch,\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id,\n model: getModelValue(patch),\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [ApprovalLine], { description: \"To modify multiple ApprovalLines' information\" })\n async updateMultipleApprovalLine(\n @Arg('patches', type => [ApprovalLinePatch]) patches: ApprovalLinePatch[],\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const approvalLineRepo = getRepository(ApprovalLine, tx)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await approvalLineRepo.save({\n ...newRecord,\n ownerValue: await getOwnerValue(newRecord, newRecord, context),\n model: getModelValue(newRecord),\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const approvalLine = await approvalLineRepo.findOneBy({ id: updateRecord.id })\n\n const result = await approvalLineRepo.save({\n ...approvalLine,\n ...updateRecord,\n ownerValue: await getOwnerValue(approvalLine, updateRecord, context),\n model: getModelValue(updateRecord),\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ApprovalLine], {\n description: \"To modify multiple ApprovalLines' information for current user\"\n })\n async updateMultipleMyApprovalLine(\n @Arg('patches', type => [ApprovalLinePatch]) patches: ApprovalLinePatch[],\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine[]> {\n const { domain, user, tx } = context.state\n\n const employee = await getRepository(Employee, tx).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee) {\n throw new Error('There is no employee object associated with the user.')\n }\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const approvalLineRepo = getRepository(ApprovalLine, tx)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await approvalLineRepo.save({\n ...newRecord,\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id,\n model: getModelValue(newRecord),\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const approvalLine = await approvalLineRepo.findOneBy({ id: updateRecord.id })\n\n const result = await approvalLineRepo.save({\n ...approvalLine,\n ...updateRecord,\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id,\n model: getModelValue(updateRecord),\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete ApprovalLine' })\n async deleteApprovalLine(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(ApprovalLine, tx).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple ApprovalLines' })\n async deleteApprovalLines(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(ApprovalLine, tx).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ApprovalLine for current user' })\n async deleteMyApprovalLine(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, user, tx } = context.state\n\n const employee = await getRepository(Employee, tx).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee) {\n throw new Error('There is no employee object associated with the user.')\n }\n\n await getRepository(ApprovalLine, tx).delete({\n id,\n domain: { id: domain.id },\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple ApprovalLines for current user' })\n async deleteMyApprovalLines(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, user, tx } = context.state\n\n const employee = await getRepository(Employee, tx).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee) {\n throw new Error('There is no employee object associated with the user.')\n }\n\n await getRepository(ApprovalLine, tx).delete({\n domain: { id: domain.id },\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id,\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple ApprovalLines' })\n async importApprovalLines(\n @Arg('approvalLines', type => [ApprovalLinePatch]) approvalLines: ApprovalLinePatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n approvalLines.map(async (approvalLine: ApprovalLinePatch) => {\n const createdApprovalLine: ApprovalLine = await getRepository(ApprovalLine, tx).save({\n domain,\n ...approvalLine\n })\n })\n )\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"approval-line-mutation.js","sourceRoot":"","sources":["../../../server/service/approval-line/approval-line-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\nimport { Employee } from '../employee/employee'\nimport { ApprovalLine, ApprovalLineOwnerType } from './approval-line'\nimport { ApprovalLineItem, OrgMemberTargetType } from './approval-line-item'\nimport { NewApprovalLine, ApprovalLinePatch } from './approval-line-type'\n\nasync function getOwnerValue(\n approvalLine: ApprovalLine | NewApprovalLine | ApprovalLinePatch,\n patch: NewApprovalLine | ApprovalLinePatch,\n context: ResolverContext\n) {\n if (!('owner' in patch || 'ownerType' in patch)) {\n /* owner 또는 ownerType 하나도 언급되지 않았다면, 업데이트하지 않는다. */\n return\n }\n\n const { domain, tx } = context.state\n const { ownerType, owner } = patch\n\n if (!ownerType || !owner) {\n /* ownerType이 클리어되거나, owner가 지정되지 않았다면, 클리어시킨다. */\n return null\n }\n\n var ownerObject\n\n switch (ownerType || approvalLine.ownerType) {\n case ApprovalLineOwnerType.Employee:\n ownerObject = await getRepository(Employee, tx).findOneBy({ domain: { id: domain.id }, id: owner.id })\n break\n default:\n }\n\n return ownerObject?.id || null\n}\n\nfunction getModelValue(patch: NewApprovalLine | ApprovalLinePatch): ApprovalLineItem[] {\n if (!('model' in patch)) {\n /* model이 언급되지 않았다면, 업데이트하지 않는다. */\n return\n }\n\n const { model } = patch\n\n if (!model || !(model instanceof Array)) {\n /* model의 값이 없거나 배열이 아니라면, 클리어시킨다. */\n return null\n }\n\n return model\n .map(m => {\n return {\n type: m.type,\n approver: m.approver\n } as ApprovalLineItem\n })\n .filter(m => m.type)\n .filter(m => {\n switch (m.type) {\n case OrgMemberTargetType.Employee:\n case OrgMemberTargetType.Department:\n case OrgMemberTargetType.Role:\n return !!m.approver?.id\n default:\n return true\n }\n })\n}\n\n@Resolver(ApprovalLine)\nexport class ApprovalLineMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => ApprovalLine, { description: 'To create new ApprovalLine' })\n async createApprovalLine(\n @Arg('approvalLine') approvalLine: NewApprovalLine,\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine> {\n const { domain, user, tx } = context.state\n\n const result = await getRepository(ApprovalLine, tx).save({\n ...approvalLine,\n ownerValue: await getOwnerValue(approvalLine, approvalLine, context),\n model: getModelValue(approvalLine),\n domain,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => ApprovalLine, { description: 'To create new ApprovalLine for current user' })\n async createMyApprovalLine(\n @Arg('approvalLine') approvalLine: NewApprovalLine,\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine> {\n const { domain, user, tx } = context.state\n const employee = await getRepository(Employee, tx).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee) {\n throw new Error('There is no employee object associated with the user.')\n }\n\n const result = await getRepository(ApprovalLine, tx).save({\n ...approvalLine,\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id,\n model: getModelValue(approvalLine),\n domain,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => ApprovalLine, { description: 'To modify ApprovalLine information' })\n async updateApprovalLine(\n @Arg('id') id: string,\n @Arg('patch') patch: ApprovalLinePatch,\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine> {\n const { domain, user, tx } = context.state\n\n const repository = getRepository(ApprovalLine, tx)\n const approvalLine = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...approvalLine,\n ...patch,\n ownerValue: await getOwnerValue(approvalLine, patch, context),\n model: getModelValue(patch),\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => ApprovalLine, { description: 'To modify ApprovalLine information for current user' })\n async updateMyApprovalLine(\n @Arg('id') id: string,\n @Arg('patch') patch: ApprovalLinePatch,\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine> {\n const { domain, user, tx } = context.state\n const employee = await getRepository(Employee, tx).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n const repository = getRepository(ApprovalLine, tx)\n const approvalLine = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...approvalLine,\n ...patch,\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id,\n model: getModelValue(patch),\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [ApprovalLine], { description: \"To modify multiple ApprovalLines' information\" })\n async updateMultipleApprovalLine(\n @Arg('patches', type => [ApprovalLinePatch]) patches: ApprovalLinePatch[],\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const approvalLineRepo = getRepository(ApprovalLine, tx)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await approvalLineRepo.save({\n ...newRecord,\n ownerValue: await getOwnerValue(newRecord, newRecord, context),\n model: getModelValue(newRecord),\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const approvalLine = await approvalLineRepo.findOneBy({ id: updateRecord.id })\n\n const result = await approvalLineRepo.save({\n ...approvalLine,\n ...updateRecord,\n ownerValue: await getOwnerValue(approvalLine, updateRecord, context),\n model: getModelValue(updateRecord),\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ApprovalLine], {\n description: \"To modify multiple ApprovalLines' information for current user\"\n })\n async updateMultipleMyApprovalLine(\n @Arg('patches', type => [ApprovalLinePatch]) patches: ApprovalLinePatch[],\n @Ctx() context: ResolverContext\n ): Promise<ApprovalLine[]> {\n const { domain, user, tx } = context.state\n\n const employee = await getRepository(Employee, tx).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee) {\n throw new Error('There is no employee object associated with the user.')\n }\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const approvalLineRepo = getRepository(ApprovalLine, tx)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await approvalLineRepo.save({\n ...newRecord,\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id,\n model: getModelValue(newRecord),\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const approvalLine = await approvalLineRepo.findOneBy({ id: updateRecord.id })\n\n const result = await approvalLineRepo.save({\n ...approvalLine,\n ...updateRecord,\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id,\n model: getModelValue(updateRecord),\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete ApprovalLine' })\n async deleteApprovalLine(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(ApprovalLine, tx).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple ApprovalLines' })\n async deleteApprovalLines(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(ApprovalLine, tx).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ApprovalLine for current user' })\n async deleteMyApprovalLine(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, user, tx } = context.state\n\n const employee = await getRepository(Employee, tx).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee) {\n throw new Error('There is no employee object associated with the user.')\n }\n\n await getRepository(ApprovalLine, tx).delete({\n id,\n domain: { id: domain.id },\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple ApprovalLines for current user' })\n async deleteMyApprovalLines(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, user, tx } = context.state\n\n const employee = await getRepository(Employee, tx).findOneBy({\n domain: { id: domain.id },\n user: { id: user.id }\n })\n\n if (!employee) {\n throw new Error('There is no employee object associated with the user.')\n }\n\n await getRepository(ApprovalLine, tx).delete({\n domain: { id: domain.id },\n ownerType: ApprovalLineOwnerType.Employee,\n ownerValue: employee.id,\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"organization\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple ApprovalLines' })\n async importApprovalLines(\n @Arg('approvalLines', type => [ApprovalLinePatch]) approvalLines: ApprovalLinePatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n approvalLines.map(async (approvalLine: ApprovalLinePatch) => {\n const createdApprovalLine: ApprovalLine = await getRepository(ApprovalLine, tx).save({\n domain,\n ...approvalLine\n })\n })\n )\n\n return true\n }\n}\n"]}
@@ -38,7 +38,7 @@ async function getModel(approvalLine, context) {
38
38
  for (let item of model) {
39
39
  /* deprecated "value", use approver */
40
40
  var { type, value, approver } = item;
41
- var id = (approver === null || approver === void 0 ? void 0 : approver.id) || value;
41
+ var id = approver?.id || value;
42
42
  approver = null;
43
43
  switch (type) {
44
44
  case approval_line_item_1.OrgMemberTargetType.Employee:
@@ -1 +1 @@
1
- {"version":3,"file":"approval-line-query.js","sourceRoot":"","sources":["../../../server/service/approval-line/approval-line-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA8F;AAC9F,qCAAsC;AACtC,iDAAuG;AACvG,yDAAsD;AACtD,6DAA4E;AAC5E,mDAAwF;AACxF,6DAAuD;AACvD,mDAA+C;AAC/C,yDAAqD;AAErD,KAAK,UAAU,aAAa,CAAC,YAA0B,EAAE,OAAwB;IAC/E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAChC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,YAAY,CAAA;IAE9C,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,kDAAkD;QAClD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,WAAW,CAAA;IAEf,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,qCAAqB,CAAC,QAAQ;YACjC,WAAW,GAAG,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;YACpG,MAAK;QACP;YACE,OAAO,IAAI,CAAA;IACf,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,YAA0B,EAAE,OAAwB;IAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAChC,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAA;IAE9B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,oBAAoB,GAAG,EAAE,CAAA;IAE7B,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,sCAAsC;QACtC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QACpC,IAAI,EAAE,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,KAAI,KAAK,CAAA;QAC9B,QAAQ,GAAG,IAAI,CAAA;QAEf,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,wCAAmB,CAAC,QAAQ;gBAC/B,QAAQ,GAAG,EAAE,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;gBAC7F,MAAK;YACP,KAAK,wCAAmB,CAAC,UAAU;gBACjC,QAAQ,GAAG,EAAE,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;gBAC/F,MAAK;YACP,KAAK,wCAAmB,CAAC,IAAI;gBAC3B,QAAQ,GAAG,EAAE,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;gBACzF,MAAK;YACP,KAAK,wCAAmB,CAAC,MAAM,CAAC;YAChC,KAAK,wCAAmB,CAAC,YAAY,CAAC;YACtC,KAAK,wCAAmB,CAAC,YAAY;gBACnC,MAAK;YACP;gBACE,SAAQ;QACZ,CAAC;QAED,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC/C,CAAC;IAED,OAAO,oBAAoB,CAAA;AAC7B,CAAC;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEtB,AAAN,KAAK,CAAC,YAAY,CAAY,EAAU,EAAS,OAAwB;QACvE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC,CAAC,OAAO,CAAC;YAC/C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,aAAa,CACQ,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC;YAC7C,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,sBAAsB,CACD,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACtC,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,MAAM,CAAC;YACrD,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;SACtB,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC;YAC7C,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC,CAAC,QAAQ,CACT,SAAS,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,IAAI,kBAAQ,CAAC,EAAE,CAAC,EAAE;gBAChB,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACjC,EAAE,CAAC,OAAO,CAAC;oBACT,SAAS,EAAE,UAAU;oBACrB,UAAU,EAAE,IAAA,YAAE,EAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;iBACvD,CAAC,CAAA;YACJ,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC5B,CAAA;QAED,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CACM,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACtC,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,MAAM,CAAC;YACrD,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;SACtB,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC;YAC7C,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC,CAAC,QAAQ,CAAC;YACV,SAAS,EAAE,UAAU;YACrB,UAAU,EAAE,IAAA,YAAE,EAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACvD,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,mBAAmB,CACE,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC;YAC7C,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC,CAAC,QAAQ,CAAC;YACV,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK,CAAS,YAA0B,EAAS,OAAwB;QAC7E,OAAO,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC9C,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK,CAAS,YAA0B,EAAS,OAAwB;QAC7E,OAAO,MAAM,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,YAA0B;QAC7C,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7E,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,YAA0B;QAC9C,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5E,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,YAA0B;QAC9C,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5E,CAAC;CACF,CAAA;AAtIY,8CAAiB;AAEtB;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,4BAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACzE,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;qDAM/C;AAIK;IAFL,IAAA,wBAAS,EAAC,oFAAoF,CAAC;IAC/F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,qCAAgB,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IAErF,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;sDAe3C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,qCAAgB,EAAE,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;IAEnG,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;+DA6B3C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,qCAAgB,EAAE,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;IAEjG,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;wDAsB3C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,qCAAgB,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAEnF,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;4DAiB3C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,qCAAgB,CAAC,CAAC;IAC7B,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAA8B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAApB,4BAAY;;8CAE7C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,iCAAiB,CAAC;IAC5B,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAA8B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAApB,4BAAY;;8CAE7C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAe,4BAAY;;+CAE9C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAe,4BAAY;;gDAE/C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAe,4BAAY;;gDAE/C;4BArIU,iBAAiB;IAD7B,IAAA,uBAAQ,EAAC,4BAAY,CAAC;GACV,iBAAiB,CAsI7B","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 { Role, User } from '@things-factory/auth-base'\nimport { ApprovalLineItem, OrgMemberTargetType } from './approval-line-item'\nimport { ApprovalLine, ApprovalLineOwner, ApprovalLineOwnerType } from './approval-line'\nimport { ApprovalLineList } from './approval-line-type'\nimport { Employee } from '../employee/employee'\nimport { Department } from '../department/department'\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 ApprovalLineOwnerType.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 /* deprecated \"value\", use approver */\n var { type, value, approver } = item\n var id = approver?.id || value\n approver = null\n\n switch (type) {\n case OrgMemberTargetType.Employee:\n approver = id && (await getRepository(Employee).findOneBy({ domain: { id: domain.id }, id }))\n break\n case OrgMemberTargetType.Department:\n approver = id && (await getRepository(Department).findOneBy({ domain: { id: domain.id }, id }))\n break\n case OrgMemberTargetType.Role:\n approver = id && (await getRepository(Role).findOneBy({ domain: { id: domain.id }, id }))\n break\n case OrgMemberTargetType.Myself:\n case OrgMemberTargetType.MyDepartment:\n case OrgMemberTargetType.MySupervisor:\n break\n default:\n continue\n }\n\n 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(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): 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(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): 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(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): 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(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): 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 { Role, User } from '@things-factory/auth-base'\nimport { ApprovalLineItem, OrgMemberTargetType } from './approval-line-item'\nimport { ApprovalLine, ApprovalLineOwner, ApprovalLineOwnerType } from './approval-line'\nimport { ApprovalLineList } from './approval-line-type'\nimport { Employee } from '../employee/employee'\nimport { Department } from '../department/department'\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 ApprovalLineOwnerType.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 /* deprecated \"value\", use approver */\n var { type, value, approver } = item\n var id = approver?.id || value\n approver = null\n\n switch (type) {\n case OrgMemberTargetType.Employee:\n approver = id && (await getRepository(Employee).findOneBy({ domain: { id: domain.id }, id }))\n break\n case OrgMemberTargetType.Department:\n approver = id && (await getRepository(Department).findOneBy({ domain: { id: domain.id }, id }))\n break\n case OrgMemberTargetType.Role:\n approver = id && (await getRepository(Role).findOneBy({ domain: { id: domain.id }, id }))\n break\n case OrgMemberTargetType.Myself:\n case OrgMemberTargetType.MyDepartment:\n case OrgMemberTargetType.MySupervisor:\n break\n default:\n continue\n }\n\n 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(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): 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(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): 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(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): 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(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): 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"]}
@@ -15,8 +15,13 @@ let DepartmentMutation = class DepartmentMutation {
15
15
  const manager = 'manager' in department
16
16
  ? department.manager && (await (0, shell_1.getRepository)(employee_1.Employee, tx).findOneBy({ id: department.manager.id }))
17
17
  : undefined;
18
- const result = await (0, shell_1.getRepository)(department_1.Department, tx).save(Object.assign(Object.assign({}, department), { domain,
19
- manager, creator: user, updater: user }));
18
+ const result = await (0, shell_1.getRepository)(department_1.Department, tx).save({
19
+ ...department,
20
+ domain,
21
+ manager,
22
+ creator: user,
23
+ updater: user
24
+ });
20
25
  if (department.picture) {
21
26
  await (0, attachment_base_1.createAttachment)(null, {
22
27
  attachment: {
@@ -37,7 +42,12 @@ let DepartmentMutation = class DepartmentMutation {
37
42
  const manager = 'manager' in patch
38
43
  ? patch.manager && (await (0, shell_1.getRepository)(employee_1.Employee, tx).findOneBy({ id: patch.manager.id }))
39
44
  : undefined;
40
- const result = await repository.save(Object.assign(Object.assign(Object.assign({}, department), patch), { manager, updater: user }));
45
+ const result = await repository.save({
46
+ ...department,
47
+ ...patch,
48
+ manager,
49
+ updater: user
50
+ });
41
51
  if (patch.picture) {
42
52
  await (0, attachment_base_1.deleteAttachmentsByRef)(null, { refBys: [result.id] }, context);
43
53
  await (0, attachment_base_1.createAttachment)(null, {
@@ -62,8 +72,13 @@ let DepartmentMutation = class DepartmentMutation {
62
72
  const manager = 'manager' in newRecord
63
73
  ? newRecord.manager && (await (0, shell_1.getRepository)(employee_1.Employee, tx).findOneBy({ id: newRecord.manager.id }))
64
74
  : undefined;
65
- const result = await departmentRepo.save(Object.assign(Object.assign({}, newRecord), { manager,
66
- domain, creator: user, updater: user }));
75
+ const result = await departmentRepo.save({
76
+ ...newRecord,
77
+ manager,
78
+ domain,
79
+ creator: user,
80
+ updater: user
81
+ });
67
82
  if (newRecord.picture) {
68
83
  await (0, attachment_base_1.createAttachment)(null, {
69
84
  attachment: {
@@ -73,7 +88,7 @@ let DepartmentMutation = class DepartmentMutation {
73
88
  }
74
89
  }, context);
75
90
  }
76
- results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
91
+ results.push({ ...result, cuFlag: '+' });
77
92
  }
78
93
  }
79
94
  if (_updateRecords.length > 0) {
@@ -83,7 +98,12 @@ let DepartmentMutation = class DepartmentMutation {
83
98
  const manager = 'manager' in updateRecord
84
99
  ? updateRecord.manager && (await (0, shell_1.getRepository)(employee_1.Employee, tx).findOneBy({ id: updateRecord.manager.id }))
85
100
  : undefined;
86
- const result = await departmentRepo.save(Object.assign(Object.assign(Object.assign({}, department), updateRecord), { manager, updater: user }));
101
+ const result = await departmentRepo.save({
102
+ ...department,
103
+ ...updateRecord,
104
+ manager,
105
+ updater: user
106
+ });
87
107
  if (updateRecord.picture) {
88
108
  await (0, attachment_base_1.deleteAttachmentsByRef)(null, { refBys: [result.id] }, context);
89
109
  await (0, attachment_base_1.createAttachment)(null, {
@@ -94,7 +114,7 @@ let DepartmentMutation = class DepartmentMutation {
94
114
  }
95
115
  }, context);
96
116
  }
97
- results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
117
+ results.push({ ...result, cuFlag: 'M' });
98
118
  }
99
119
  }
100
120
  return results;
@@ -117,7 +137,7 @@ let DepartmentMutation = class DepartmentMutation {
117
137
  async importDepartments(departments, context) {
118
138
  const { domain, tx } = context.state;
119
139
  await Promise.all(departments.map(async (department) => {
120
- const createdDepartment = await (0, shell_1.getRepository)(department_1.Department, tx).save(Object.assign({ domain }, department));
140
+ const createdDepartment = await (0, shell_1.getRepository)(department_1.Department, tx).save({ domain, ...department });
121
141
  }));
122
142
  return true;
123
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"department-mutation.js","sourceRoot":"","sources":["../../../server/service/department/department-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\nimport { createAttachment, deleteAttachmentsByRef } from '@things-factory/attachment-base'\n\nimport { Department } from './department'\nimport { NewDepartment, DepartmentPatch } from './department-type'\nimport { Employee } from '../employee/employee'\n\n@Resolver(Department)\nexport class DepartmentMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Department, { description: 'To create new Department' })\n async createDepartment(\n @Arg('department') department: NewDepartment,\n @Ctx() context: ResolverContext\n ): Promise<Department> {\n const { domain, user, tx } = context.state\n\n const manager =\n 'manager' in department\n ? department.manager && (await getRepository(Employee, tx).findOneBy({ id: department.manager.id }))\n : undefined\n\n const result = await getRepository(Department, tx).save({\n ...department,\n domain,\n manager,\n creator: user,\n updater: user\n })\n\n if (department.picture) {\n await createAttachment(\n null,\n {\n attachment: {\n file: department.picture,\n refType: Department.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Department, { description: 'To modify Department information' })\n async updateDepartment(\n @Arg('id') id: string,\n @Arg('patch') patch: DepartmentPatch,\n @Ctx() context: ResolverContext\n ): Promise<Department> {\n const { domain, user, tx } = context.state\n\n const repository = getRepository(Department, tx)\n const department = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const manager =\n 'manager' in patch\n ? patch.manager && (await getRepository(Employee, tx).findOneBy({ id: patch.manager.id }))\n : undefined\n\n const result = await repository.save({\n ...department,\n ...patch,\n manager,\n updater: user\n })\n\n if (patch.picture) {\n await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)\n await createAttachment(\n null,\n {\n attachment: {\n file: patch.picture,\n refType: Department.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [Department], { description: \"To modify multiple Departments' information\" })\n async updateMultipleDepartment(\n @Arg('patches', type => [DepartmentPatch]) patches: DepartmentPatch[],\n @Ctx() context: ResolverContext\n ): Promise<Department[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const departmentRepo = getRepository(Department, tx)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n const manager =\n 'manager' in newRecord\n ? newRecord.manager && (await getRepository(Employee, tx).findOneBy({ id: newRecord.manager.id }))\n : undefined\n\n const result = await departmentRepo.save({\n ...newRecord,\n manager,\n domain,\n creator: user,\n updater: user\n })\n\n if (newRecord.picture) {\n await createAttachment(\n null,\n {\n attachment: {\n file: newRecord.picture,\n refType: Department.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const department = await departmentRepo.findOneBy({ id: updateRecord.id })\n const manager =\n 'manager' in updateRecord\n ? updateRecord.manager && (await getRepository(Employee, tx).findOneBy({ id: updateRecord.manager.id }))\n : undefined\n\n const result = await departmentRepo.save({\n ...department,\n ...updateRecord,\n manager,\n updater: user\n })\n\n if (updateRecord.picture) {\n await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)\n await createAttachment(\n null,\n {\n attachment: {\n file: updateRecord.picture,\n refType: Department.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete Department' })\n async deleteDepartment(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(Department, tx).softDelete({ domain: { id: domain.id }, id })\n // await deleteAttachmentsByRef(null, { refBys: [id] }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple Departments' })\n async deleteDepartments(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(Department, tx).softDelete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n // await deleteAttachmentsByRef(null, { refBys: ids }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple Departments' })\n async importDepartments(\n @Arg('departments', type => [DepartmentPatch]) departments: DepartmentPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n departments.map(async (department: DepartmentPatch) => {\n const createdDepartment: Department = await getRepository(Department, tx).save({ domain, ...department })\n })\n )\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"department-mutation.js","sourceRoot":"","sources":["../../../server/service/department/department-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\nimport { createAttachment, deleteAttachmentsByRef } from '@things-factory/attachment-base'\n\nimport { Department } from './department'\nimport { NewDepartment, DepartmentPatch } from './department-type'\nimport { Employee } from '../employee/employee'\n\n@Resolver(Department)\nexport class DepartmentMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Department, { description: 'To create new Department' })\n async createDepartment(\n @Arg('department') department: NewDepartment,\n @Ctx() context: ResolverContext\n ): Promise<Department> {\n const { domain, user, tx } = context.state\n\n const manager =\n 'manager' in department\n ? department.manager && (await getRepository(Employee, tx).findOneBy({ id: department.manager.id }))\n : undefined\n\n const result = await getRepository(Department, tx).save({\n ...department,\n domain,\n manager,\n creator: user,\n updater: user\n })\n\n if (department.picture) {\n await createAttachment(\n null,\n {\n attachment: {\n file: department.picture,\n refType: Department.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Department, { description: 'To modify Department information' })\n async updateDepartment(\n @Arg('id') id: string,\n @Arg('patch') patch: DepartmentPatch,\n @Ctx() context: ResolverContext\n ): Promise<Department> {\n const { domain, user, tx } = context.state\n\n const repository = getRepository(Department, tx)\n const department = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const manager =\n 'manager' in patch\n ? patch.manager && (await getRepository(Employee, tx).findOneBy({ id: patch.manager.id }))\n : undefined\n\n const result = await repository.save({\n ...department,\n ...patch,\n manager,\n updater: user\n })\n\n if (patch.picture) {\n await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)\n await createAttachment(\n null,\n {\n attachment: {\n file: patch.picture,\n refType: Department.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [Department], { description: \"To modify multiple Departments' information\" })\n async updateMultipleDepartment(\n @Arg('patches', type => [DepartmentPatch]) patches: DepartmentPatch[],\n @Ctx() context: ResolverContext\n ): Promise<Department[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const departmentRepo = getRepository(Department, tx)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n const manager =\n 'manager' in newRecord\n ? newRecord.manager && (await getRepository(Employee, tx).findOneBy({ id: newRecord.manager.id }))\n : undefined\n\n const result = await departmentRepo.save({\n ...newRecord,\n manager,\n domain,\n creator: user,\n updater: user\n })\n\n if (newRecord.picture) {\n await createAttachment(\n null,\n {\n attachment: {\n file: newRecord.picture,\n refType: Department.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const department = await departmentRepo.findOneBy({ id: updateRecord.id })\n const manager =\n 'manager' in updateRecord\n ? updateRecord.manager && (await getRepository(Employee, tx).findOneBy({ id: updateRecord.manager.id }))\n : undefined\n\n const result = await departmentRepo.save({\n ...department,\n ...updateRecord,\n manager,\n updater: user\n })\n\n if (updateRecord.picture) {\n await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)\n await createAttachment(\n null,\n {\n attachment: {\n file: updateRecord.picture,\n refType: Department.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete Department' })\n async deleteDepartment(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(Department, tx).softDelete({ domain: { id: domain.id }, id })\n // await deleteAttachmentsByRef(null, { refBys: [id] }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple Departments' })\n async deleteDepartments(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(Department, tx).softDelete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n // await deleteAttachmentsByRef(null, { refBys: ids }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"department\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple Departments' })\n async importDepartments(\n @Arg('departments', type => [DepartmentPatch]) departments: DepartmentPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n departments.map(async (department: DepartmentPatch) => {\n const createdDepartment: Department = await getRepository(Department, tx).save({ domain, ...department })\n })\n )\n\n return true\n }\n}\n"]}
@@ -72,7 +72,7 @@ let DepartmentQuery = class DepartmentQuery {
72
72
  refBy: department.id
73
73
  }
74
74
  });
75
- return attachment === null || attachment === void 0 ? void 0 : attachment.fullpath;
75
+ return attachment?.fullpath;
76
76
  }
77
77
  async domain(department) {
78
78
  return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: department.domainId });
@@ -1 +1 @@
1
- {"version":3,"file":"department-query.js","sourceRoot":"","sources":["../../../server/service/department/department-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { IsNull } from 'typeorm'\nimport { Attachment } from '@things-factory/attachment-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Department } from './department'\nimport { DepartmentList } from './department-type'\nimport { Employee } from '../employee/employee'\n\n@Resolver(Department)\nexport class DepartmentQuery {\n @Directive('@privilege(category: \"department\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DepartmentList, { nullable: true, description: 'To fetch a Root Departments' })\n async departmentRoots(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DepartmentList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Department),\n searchables: ['name', 'description', 'controlNo']\n }).andWhere({ domain: { id: domain.id }, parent: { id: IsNull() } })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"department\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Department!, { nullable: true, description: 'To fetch a Department' })\n async department(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Department> {\n const { domain } = context.state\n\n return await getRepository(Department).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@privilege(category: \"department\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DepartmentList, { description: 'To fetch multiple Departments' })\n async departments(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DepartmentList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Department),\n searchables: ['name', 'description', 'controlNo']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Employee)\n async manager(@Root() department: Department): Promise<Employee> {\n return (\n department.managerId &&\n (await getRepository(Employee).findOneBy({\n id: department.managerId\n }))\n )\n }\n\n @FieldResolver(type => Department)\n async parent(@Root() department: Department): Promise<Department> {\n return (\n department.parentId &&\n (await getRepository(Department).findOneBy({\n id: department.parentId\n }))\n )\n }\n\n @FieldResolver(type => [Department])\n async children(\n @Root() department: Department,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<Department[]> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Department),\n searchables: ['name', 'description', 'controlNo']\n }).andWhere({\n parent: { id: department.id }\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return items\n }\n\n @FieldResolver(type => String)\n async picture(@Root() department: Department): Promise<string | undefined> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: department.domainId },\n refType: Department.name,\n refBy: department.id\n }\n })\n\n return attachment?.fullpath\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() department: Department): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: department.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() department: Department): Promise<User> {\n return await getRepository(User).findOneBy({ id: department.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() department: Department): Promise<User> {\n return await getRepository(User).findOneBy({ id: department.creatorId })\n }\n}\n"]}
1
+ {"version":3,"file":"department-query.js","sourceRoot":"","sources":["../../../server/service/department/department-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { IsNull } from 'typeorm'\nimport { Attachment } from '@things-factory/attachment-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Department } from './department'\nimport { DepartmentList } from './department-type'\nimport { Employee } from '../employee/employee'\n\n@Resolver(Department)\nexport class DepartmentQuery {\n @Directive('@privilege(category: \"department\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DepartmentList, { nullable: true, description: 'To fetch a Root Departments' })\n async departmentRoots(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DepartmentList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Department),\n searchables: ['name', 'description', 'controlNo']\n }).andWhere({ domain: { id: domain.id }, parent: { id: IsNull() } })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"department\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Department!, { nullable: true, description: 'To fetch a Department' })\n async department(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Department> {\n const { domain } = context.state\n\n return await getRepository(Department).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@privilege(category: \"department\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DepartmentList, { description: 'To fetch multiple Departments' })\n async departments(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DepartmentList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Department),\n searchables: ['name', 'description', 'controlNo']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Employee)\n async manager(@Root() department: Department): Promise<Employee> {\n return (\n department.managerId &&\n (await getRepository(Employee).findOneBy({\n id: department.managerId\n }))\n )\n }\n\n @FieldResolver(type => Department)\n async parent(@Root() department: Department): Promise<Department> {\n return (\n department.parentId &&\n (await getRepository(Department).findOneBy({\n id: department.parentId\n }))\n )\n }\n\n @FieldResolver(type => [Department])\n async children(\n @Root() department: Department,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<Department[]> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Department),\n searchables: ['name', 'description', 'controlNo']\n }).andWhere({\n parent: { id: department.id }\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return items\n }\n\n @FieldResolver(type => String)\n async picture(@Root() department: Department): Promise<string | undefined> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: department.domainId },\n refType: Department.name,\n refBy: department.id\n }\n })\n\n return attachment?.fullpath\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() department: Department): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: department.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() department: Department): Promise<User> {\n return await getRepository(User).findOneBy({ id: department.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() department: Department): Promise<User> {\n return await getRepository(User).findOneBy({ id: department.creatorId })\n }\n}\n"]}