@things-factory/organization 7.0.68 → 7.0.70

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 (28) hide show
  1. package/client/pages/employee/employee-list-page.ts +3 -3
  2. package/dist-client/pages/employee/employee-list-page.js +3 -3
  3. package/dist-client/pages/employee/employee-list-page.js.map +1 -1
  4. package/dist-client/tsconfig.tsbuildinfo +1 -1
  5. package/dist-server/controllers/register-employee-as-system-user.d.ts +1 -0
  6. package/dist-server/controllers/register-employee-as-system-user.js +54 -0
  7. package/dist-server/controllers/register-employee-as-system-user.js.map +1 -0
  8. package/dist-server/migrations/1723861013111-seed-organization-codes.d.ts +5 -0
  9. package/dist-server/migrations/1723861013111-seed-organization-codes.js +120 -0
  10. package/dist-server/migrations/1723861013111-seed-organization-codes.js.map +1 -0
  11. package/dist-server/migrations/index.d.ts +1 -0
  12. package/dist-server/migrations/index.js +12 -0
  13. package/dist-server/migrations/index.js.map +1 -0
  14. package/dist-server/service/employee/employee-mutation.d.ts +1 -0
  15. package/dist-server/service/employee/employee-mutation.js +39 -0
  16. package/dist-server/service/employee/employee-mutation.js.map +1 -1
  17. package/dist-server/service/index.d.ts +3 -3
  18. package/dist-server/tsconfig.tsbuildinfo +1 -1
  19. package/package.json +6 -6
  20. package/server/controllers/register-employee-as-system-user.ts +62 -0
  21. package/server/migrations/1723861013111-seed-organization-codes.ts +127 -0
  22. package/server/migrations/index.ts +9 -0
  23. package/server/service/employee/employee-mutation.ts +40 -0
  24. package/translations/en.json +2 -0
  25. package/translations/ja.json +2 -0
  26. package/translations/ko.json +2 -0
  27. package/translations/ms.json +2 -0
  28. package/translations/zh.json +2 -0
@@ -0,0 +1 @@
1
+ export declare function registerEmployeeAsSystemUser(employeeId: string, context: ResolverContext): Promise<boolean>;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerEmployeeAsSystemUser = registerEmployeeAsSystemUser;
4
+ const auth_base_1 = require("@things-factory/auth-base");
5
+ const shell_1 = require("@things-factory/shell");
6
+ const service_1 = require("service");
7
+ async function registerEmployeeAsSystemUser(employeeId, context) {
8
+ /*
9
+ process
10
+
11
+ 0. 이미 연결된 사용자가 없어야 한다.
12
+ 1. contact 정보가 있어야 한다.
13
+ 2. contact 정보에 대표 email 정보가 있어야 한다.
14
+ 3. employee 의 직책 정보가 있어야 한다. => role 과 연결된다.
15
+ 4. 사용자 중에서 동일한 이메일을 가진 사용자가 있는가 확인한다.
16
+ 5. 그 사용자가 이 도메인에 연결되어 있는 지 확인한다. 없다면 실패.
17
+ 6. 직책에 해당하는 역할이 있는 지 확인한다.
18
+ 7. 시스템에 사용자를 등록한다.
19
+ 8. 역할을 추가한다.
20
+ */
21
+ const { domain, user } = context.state;
22
+ const employeeRepository = (0, shell_1.getRepository)(service_1.Employee);
23
+ const employee = await employeeRepository.findOne({
24
+ where: {
25
+ id: employeeId,
26
+ domain: { id: domain.id }
27
+ },
28
+ relations: ['contact']
29
+ });
30
+ const { email } = employee.contact;
31
+ const { jobResponsibility } = employee;
32
+ const userRepository = (0, shell_1.getRepository)(auth_base_1.User);
33
+ const existingUser = await userRepository.findOne({
34
+ where: {
35
+ email
36
+ },
37
+ relations: ['domains']
38
+ });
39
+ const newUser = await userRepository.save({
40
+ name: employee.contact.name,
41
+ email
42
+ });
43
+ // permission for this domain
44
+ const roleRepository = (0, shell_1.getRepository)(auth_base_1.Role);
45
+ const existingRole = await roleRepository.findOne({
46
+ where: {
47
+ name: jobResponsibility,
48
+ domain: { id: domain.id }
49
+ }
50
+ });
51
+ // permission for this role
52
+ return true;
53
+ }
54
+ //# sourceMappingURL=register-employee-as-system-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-employee-as-system-user.js","sourceRoot":"","sources":["../../server/controllers/register-employee-as-system-user.ts"],"names":[],"mappings":";;AAKA,oEAwDC;AA7DD,yDAAsD;AAEtD,iDAAqD;AACrD,qCAAkC;AAE3B,KAAK,UAAU,4BAA4B,CAAC,UAAkB,EAAE,OAAwB;IAC7F;;;;;;;;;;;;QAYI;IAEJ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAEtC,MAAM,kBAAkB,GAAG,IAAA,qBAAa,EAAC,kBAAQ,CAAC,CAAA;IAElD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC;QAChD,KAAK,EAAE;YACL,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;SAC1B;QACD,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAA;IAClC,MAAM,EAAE,iBAAiB,EAAE,GAAG,QAAQ,CAAA;IAEtC,MAAM,cAAc,GAAG,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAA;IAC1C,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;QAChD,KAAK,EAAE;YACL,KAAK;SACN;QACD,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC;QACxC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI;QAC3B,KAAK;KACN,CAAC,CAAA;IAEF,6BAA6B;IAE7B,MAAM,cAAc,GAAG,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAA;IAC1C,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;QAChD,KAAK,EAAE;YACL,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;SAC1B;KACF,CAAC,CAAA;IAEF,2BAA2B;IAE3B,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { Role, User } from '@things-factory/auth-base'\nimport { Contact } from '@things-factory/contact'\nimport { getRepository } from '@things-factory/shell'\nimport { Employee } from 'service'\n\nexport async function registerEmployeeAsSystemUser(employeeId: string, context: ResolverContext) {\n /* \n process\n\n 0. 이미 연결된 사용자가 없어야 한다.\n 1. contact 정보가 있어야 한다.\n 2. contact 정보에 대표 email 정보가 있어야 한다.\n 3. employee 의 직책 정보가 있어야 한다. => role 과 연결된다.\n 4. 사용자 중에서 동일한 이메일을 가진 사용자가 있는가 확인한다.\n 5. 그 사용자가 이 도메인에 연결되어 있는 지 확인한다. 없다면 실패.\n 6. 직책에 해당하는 역할이 있는 지 확인한다.\n 7. 시스템에 사용자를 등록한다.\n 8. 역할을 추가한다.\n */\n\n const { domain, user } = context.state\n\n const employeeRepository = getRepository(Employee)\n\n const employee = await employeeRepository.findOne({\n where: {\n id: employeeId,\n domain: { id: domain.id }\n },\n relations: ['contact']\n })\n\n const { email } = employee.contact\n const { jobResponsibility } = employee\n\n const userRepository = getRepository(User)\n const existingUser = await userRepository.findOne({\n where: {\n email\n },\n relations: ['domains']\n })\n\n const newUser = await userRepository.save({\n name: employee.contact.name,\n email\n })\n\n // permission for this domain\n\n const roleRepository = getRepository(Role)\n const existingRole = await roleRepository.findOne({\n where: {\n name: jobResponsibility,\n domain: { id: domain.id }\n }\n })\n\n // permission for this role\n\n return true\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class SeedOrganizationCodes1723861013111 implements MigrationInterface {
3
+ up(queryRunner: QueryRunner): Promise<void>;
4
+ down(queryRunner: QueryRunner): Promise<void>;
5
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SeedOrganizationCodes1723861013111 = void 0;
4
+ const env_1 = require("@things-factory/env");
5
+ const shell_1 = require("@things-factory/shell");
6
+ const auth_base_1 = require("@things-factory/auth-base");
7
+ const code_base_1 = require("@things-factory/code-base");
8
+ const SEED_COMMON_CODES = [
9
+ {
10
+ name: 'EMPLOYEE_TYPE',
11
+ description: '직원 유형',
12
+ details: [
13
+ {
14
+ name: 'FULLTIME',
15
+ description: '풀타임 정규직',
16
+ labels: null,
17
+ rank: 1
18
+ },
19
+ {
20
+ name: 'PARTTIME',
21
+ description: '파트타임 정규직',
22
+ labels: null,
23
+ rank: 2
24
+ },
25
+ {
26
+ name: 'TEMPORARY',
27
+ description: '임시직',
28
+ labels: null,
29
+ rank: 3
30
+ }
31
+ ]
32
+ },
33
+ {
34
+ name: 'JOB_POSITION',
35
+ description: '직급',
36
+ details: [
37
+ // {
38
+ // name: '임원',
39
+ // description: '임원',
40
+ // labels: null,
41
+ // rank: 1
42
+ // },
43
+ // {
44
+ // name: '직원',
45
+ // description: '직원',
46
+ // labels: null,
47
+ // rank: 2
48
+ // }
49
+ ]
50
+ },
51
+ {
52
+ name: 'JOB_RESPONSIBILITY',
53
+ description: '직책',
54
+ details: [
55
+ // {
56
+ // name: '상담사',
57
+ // description: '상담사',
58
+ // labels: null,
59
+ // rank: 1
60
+ // },
61
+ // {
62
+ // name: '매니저',
63
+ // description: '매니저',
64
+ // labels: null,
65
+ // rank: 2
66
+ // }
67
+ ]
68
+ }
69
+ ];
70
+ class SeedOrganizationCodes1723861013111 {
71
+ async up(queryRunner) {
72
+ const commonCodeRepository = (0, shell_1.getRepository)(code_base_1.CommonCode);
73
+ const commonCodeDetailRepository = (0, shell_1.getRepository)(code_base_1.CommonCodeDetail);
74
+ const domainRepository = (0, shell_1.getRepository)(shell_1.Domain);
75
+ const userRepository = (0, shell_1.getRepository)(auth_base_1.User);
76
+ const domain = await domainRepository.findOne({
77
+ where: { name: 'SYSTEM' }
78
+ });
79
+ const user = await userRepository.findOne({ where: { id: domain.owner } });
80
+ try {
81
+ for (let i = 0; i < SEED_COMMON_CODES.length; i++) {
82
+ const { name, description, details } = SEED_COMMON_CODES[i];
83
+ const commonCode = await commonCodeRepository.save({
84
+ domain,
85
+ name,
86
+ description,
87
+ creator: user,
88
+ updater: user
89
+ });
90
+ for (const commonCodeDetail of details) {
91
+ const { name, description, labels, rank } = commonCodeDetail;
92
+ await commonCodeDetailRepository.save({
93
+ domain,
94
+ commonCode,
95
+ name,
96
+ description,
97
+ labels,
98
+ rank
99
+ });
100
+ }
101
+ }
102
+ }
103
+ catch (e) {
104
+ env_1.logger.error(e);
105
+ }
106
+ }
107
+ async down(queryRunner) {
108
+ const domainRepository = (0, shell_1.getRepository)(shell_1.Domain);
109
+ const domain = await domainRepository.findOne({
110
+ where: { name: 'SYSTEM' }
111
+ });
112
+ const repository = (0, shell_1.getRepository)(code_base_1.CommonCode);
113
+ SEED_COMMON_CODES.reverse().forEach(async (commonCode) => {
114
+ let record = await repository.findOne({ where: { name: commonCode.name, domain: { id: domain.id } } });
115
+ record && (await repository.remove(record));
116
+ });
117
+ }
118
+ }
119
+ exports.SeedOrganizationCodes1723861013111 = SeedOrganizationCodes1723861013111;
120
+ //# sourceMappingURL=1723861013111-seed-organization-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1723861013111-seed-organization-codes.js","sourceRoot":"","sources":["../../server/migrations/1723861013111-seed-organization-codes.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { CommonCode, CommonCodeDetail } from '@things-factory/code-base'\n\nconst SEED_COMMON_CODES = [\n {\n name: 'EMPLOYEE_TYPE',\n description: '직원 유형',\n details: [\n {\n name: 'FULLTIME',\n description: '풀타임 정규직',\n labels: null,\n rank: 1\n },\n {\n name: 'PARTTIME',\n description: '파트타임 정규직',\n labels: null,\n rank: 2\n },\n {\n name: 'TEMPORARY',\n description: '임시직',\n labels: null,\n rank: 3\n }\n ]\n },\n {\n name: 'JOB_POSITION',\n description: '직급',\n details: [\n // {\n // name: '임원',\n // description: '임원',\n // labels: null,\n // rank: 1\n // },\n // {\n // name: '직원',\n // description: '직원',\n // labels: null,\n // rank: 2\n // }\n ]\n },\n {\n name: 'JOB_RESPONSIBILITY',\n description: '직책',\n details: [\n // {\n // name: '상담사',\n // description: '상담사',\n // labels: null,\n // rank: 1\n // },\n // {\n // name: '매니저',\n // description: '매니저',\n // labels: null,\n // rank: 2\n // }\n ]\n }\n]\n\nexport class SeedOrganizationCodes1723861013111 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const commonCodeRepository = getRepository(CommonCode)\n const commonCodeDetailRepository = getRepository(CommonCodeDetail)\n const domainRepository = getRepository(Domain)\n const userRepository = getRepository(User)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n const user = await userRepository.findOne({ where: { id: domain.owner } })\n\n try {\n for (let i = 0; i < SEED_COMMON_CODES.length; i++) {\n const { name, description, details } = SEED_COMMON_CODES[i]\n\n const commonCode = await commonCodeRepository.save({\n domain,\n name,\n description,\n creator: user,\n updater: user\n })\n\n for (const commonCodeDetail of details) {\n const { name, description, labels, rank } = commonCodeDetail\n\n await commonCodeDetailRepository.save({\n domain,\n commonCode,\n name,\n description,\n labels,\n rank\n })\n }\n }\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const repository = getRepository(CommonCode)\n\n SEED_COMMON_CODES.reverse().forEach(async commonCode => {\n let record = await repository.findOne({ where: { name: commonCode.name, domain: { id: domain.id } } })\n record && (await repository.remove(record))\n })\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare var migrations: any[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrations = void 0;
4
+ const glob = require('glob');
5
+ const path = require('path');
6
+ exports.migrations = [];
7
+ glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function (file) {
8
+ if (file.indexOf('index.js') !== -1)
9
+ return;
10
+ exports.migrations = exports.migrations.concat(Object.values(require(path.resolve(file))) || []);
11
+ });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/migrations/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB,QAAA,UAAU,GAAG,EAAE,CAAA;AAE1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;IACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAE,OAAM;IAC3C,kBAAU,GAAG,kBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA","sourcesContent":["const glob = require('glob')\nconst path = require('path')\n\nexport var migrations = []\n\nglob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {\n if (file.indexOf('index.js') !== -1) return\n migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])\n})\n"]}
@@ -9,4 +9,5 @@ export declare class EmployeeMutation {
9
9
  importEmployees(employees: EmployeePatch[], context: ResolverContext): Promise<boolean>;
10
10
  attachContact(id: string, contactId: string, context: ResolverContext): Promise<Employee>;
11
11
  detachContact(id: string, context: ResolverContext): Promise<Employee>;
12
+ registerEmployeeAsSystemUser(id: string, context: ResolverContext): Promise<boolean>;
12
13
  }
@@ -173,6 +173,36 @@ let EmployeeMutation = class EmployeeMutation {
173
173
  const result = await repository.save(Object.assign(Object.assign({}, employee), { contact: null, updater: user }));
174
174
  return result;
175
175
  }
176
+ // @Directive('@privilege')
177
+ async registerEmployeeAsSystemUser(id, context) {
178
+ const { domain, user, tx } = context.state;
179
+ const employeeRepository = tx.getRepository(employee_1.Employee);
180
+ const employee = await employeeRepository.findOne({
181
+ where: { domain: { id: domain.id }, id },
182
+ relations: ['contact', 'user']
183
+ });
184
+ return true;
185
+ /*
186
+ process
187
+
188
+ 0. 이미 연결된 사용자가 없어야 한다.
189
+ 1. contact 정보가 있어야 한다.
190
+ 2. contact 정보에 대표 email 정보가 있어야 한다.
191
+ 3. employee 의 직책 정보가 있어야 한다. => role 과 연결된다.
192
+ 4. 사용자 중에서 동일한 이메일을 가진 사용자가 있는가 확인한다.
193
+ 5. 그 사용자가 이 도메인에 연결되어 있는 지 확인한다. 없다면 실패.
194
+ 6. 직책에 해당하는 역할이 있는 지 확인한다.
195
+ 7. 시스템에 사용자를 등록한다.
196
+ 8. 역할을 추가한다.
197
+ */
198
+ // const result = await employeeRepository.save({
199
+ // ...employee,
200
+ // name: contact.name,
201
+ // contact: { id: contactId },
202
+ // updater: user
203
+ // })
204
+ // return result
205
+ }
176
206
  };
177
207
  exports.EmployeeMutation = EmployeeMutation;
178
208
  tslib_1.__decorate([
@@ -249,6 +279,15 @@ tslib_1.__decorate([
249
279
  tslib_1.__metadata("design:paramtypes", [String, Object]),
250
280
  tslib_1.__metadata("design:returntype", Promise)
251
281
  ], EmployeeMutation.prototype, "detachContact", null);
282
+ tslib_1.__decorate([
283
+ (0, type_graphql_1.Directive)('@transaction'),
284
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To register employee as a system user' }),
285
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id', { description: 'Employee Id' })),
286
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
287
+ tslib_1.__metadata("design:type", Function),
288
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
289
+ tslib_1.__metadata("design:returntype", Promise)
290
+ ], EmployeeMutation.prototype, "registerEmployeeAsSystemUser", null);
252
291
  exports.EmployeeMutation = EmployeeMutation = tslib_1.__decorate([
253
292
  (0, type_graphql_1.Resolver)(employee_1.Employee)
254
293
  ], EmployeeMutation);
@@ -1 +1 @@
1
- {"version":3,"file":"employee-mutation.js","sourceRoot":"","sources":["../../../server/service/employee/employee-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAE5B,yDAAgD;AAChD,qEAA0F;AAC1F,qDAAiD;AAEjD,yCAAqC;AACrC,mDAA4D;AAC5D,yDAAqD;AAG9C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAGrB,AAAN,KAAK,CAAC,cAAc,CAAkB,QAAqB,EAAS,OAAwB;QAC1F,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GACd,YAAY,IAAI,QAAQ;YACtB,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YACrG,CAAC,CAAC,SAAS,CAAA;QAEf,MAAM,UAAU,GACd,YAAY,IAAI,QAAQ;YACtB,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAU,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YACvG,CAAC,CAAC,SAAS,CAAA;QAEf,MAAM,aAAa,GACjB,MAAM,IAAI,QAAQ;YAChB,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACrF,CAAC,CAAC,SAAS,CAAA;QAEf,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,IAAI,iCAC/C,QAAQ,KACX,UAAU;YACV,UAAU,EACV,IAAI,EAAE,aAAa,EACnB,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAA,kCAAgB,EACpB,IAAI,EACJ;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ,CAAC,KAAK;oBACpB,OAAO,EAAE,mBAAQ,CAAC,IAAI;oBACtB,KAAK,EAAE,MAAM,CAAC,EAAE;iBACjB;aACF,EACD,OAAO,CACR,CAAA;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAIK,AAAN,KAAK,CAAC,cAAc,CACP,EAAU,EACP,KAAoB,EAC3B,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GACd,YAAY,IAAI,KAAK;YACnB,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/F,CAAC,CAAC,SAAS,CAAA;QAEf,MAAM,UAAU,GACd,YAAY,IAAI,KAAK;YACnB,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAU,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YACjG,CAAC,CAAC,SAAS,CAAA;QAEf,MAAM,aAAa,GACjB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAE7G,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAA;QAC7C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACxC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,+CAC/B,QAAQ,GACR,KAAK,KACR,UAAU;YACV,UAAU,EACV,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAA,wCAAsB,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YACpE,MAAM,IAAA,kCAAgB,EACpB,IAAI,EACJ;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE,KAAK,CAAC,KAAK;oBACjB,OAAO,EAAE,mBAAQ,CAAC,IAAI;oBACtB,KAAK,EAAE,MAAM,CAAC,EAAE;iBACjB;aACF,EACD,OAAO,CACR,CAAA;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAIK,AAAN,KAAK,CAAC,sBAAsB,CACe,OAAwB,EAC1D,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAA;QAE/C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEnC,MAAM,UAAU,GACd,YAAY,IAAI,SAAS;oBACvB,CAAC,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvG,CAAC,CAAC,SAAS,CAAA;gBAEf,MAAM,UAAU,GACd,YAAY,IAAI,SAAS;oBACvB,CAAC,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAU,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzG,CAAC,CAAC,SAAS,CAAA;gBAEf,MAAM,aAAa,GACjB,MAAM,IAAI,SAAS;oBACjB,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvF,CAAC,CAAC,SAAS,CAAA;gBAEf,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,iCACjC,SAAS,KACZ,UAAU;oBACV,UAAU,EACV,IAAI,EAAE,aAAa,EACnB,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpB,MAAM,IAAA,kCAAgB,EACpB,IAAI,EACJ;wBACE,UAAU,EAAE;4BACV,IAAI,EAAE,SAAS,CAAC,KAAK;4BACrB,OAAO,EAAE,mBAAQ,CAAC,IAAI;4BACtB,KAAK,EAAE,MAAM,CAAC,EAAE;yBACjB;qBACF,EACD,OAAO,CACR,CAAA;gBACH,CAAC;gBAED,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEtC,MAAM,UAAU,GACd,YAAY,IAAI,YAAY;oBAC1B,CAAC,CAAC,YAAY,CAAC,UAAU;wBACvB,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;oBAClF,CAAC,CAAC,SAAS,CAAA;gBAEf,MAAM,UAAU,GACd,YAAY,IAAI,YAAY;oBAC1B,CAAC,CAAC,YAAY,CAAC,UAAU;wBACvB,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAU,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;oBACpF,CAAC,CAAC,SAAS,CAAA;gBAEf,MAAM,aAAa,GACjB,MAAM,IAAI,YAAY;oBACpB,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7F,CAAC,CAAC,SAAS,CAAA;gBAEf,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAA;gBAEtE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,+CACjC,QAAQ,GACR,YAAY,KACf,UAAU;oBACV,UAAU,EACV,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;oBACvB,MAAM,IAAA,wCAAsB,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;oBACpE,MAAM,IAAA,kCAAgB,EACpB,IAAI,EACJ;wBACE,UAAU,EAAE;4BACV,IAAI,EAAE,YAAY,CAAC,KAAK;4BACxB,OAAO,EAAE,mBAAQ,CAAC,IAAI;4BACtB,KAAK,EAAE,MAAM,CAAC,EAAE;yBACjB;qBACF,EACD,OAAO,CACR,CAAA;gBACH,CAAC;gBAED,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAIK,AAAN,KAAK,CAAC,cAAc,CAAY,EAAU,EAAS,OAAwB;QACzE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAC1E,MAAM,IAAA,wCAAsB,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAE7D,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,eAAe,CACW,GAAa,EACpC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,MAAM,CAAC;YACtC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,MAAM,IAAA,wCAAsB,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;QAE5D,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,eAAe,CACwB,SAA0B,EAC9D,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAuB,EAAE,EAAE;YAC9C,MAAM,eAAe,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,IAAI,iBAAG,MAAM,IAAK,QAAQ,EAAG,CAAA;QAClG,CAAC,CAAC,CACH,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,aAAa,CACN,EAAU,EACH,SAAiB,EAC5B,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,kBAAkB,GAAG,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAA;QACrD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;QAEF,MAAM,iBAAiB,GAAG,EAAE,CAAC,aAAa,CAAC,iBAAO,CAAC,CAAA;QACnD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC;YAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;SACpD,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,KAAK,CAAC,0CAA0C,SAAS,IAAI,CAAC,CAAA;QACtE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,iCACvC,QAAQ,KACX,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAC1B,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;IAIK,AAAN,KAAK,CAAC,aAAa,CAAY,EAAU,EAAS,OAAwB;QACxE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAA;QAC7C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACxC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,iCAC/B,QAAQ,KACX,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AAzTY,4CAAgB;AAGrB;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,mBAAQ,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;IACnD,mBAAA,IAAA,kBAAG,EAAC,UAAU,CAAC,CAAA;IAAyB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAnB,2BAAW;;sDA2C1D;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,mBAAQ,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAE9E,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IACZ,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADe,6BAAa;;sDAgDnC;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,mBAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;IAE3F,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,6BAAa,CAAC,CAAC,CAAA;IACvC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;8DA4GP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IAC9C,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;sDAOjD;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAE3E,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;uDAYP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAE3E,mBAAA,IAAA,kBAAG,EAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,6BAAa,CAAC,CAAC,CAAA;IACzC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;uDAWP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,mBAAQ,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC;IAE/E,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;qDA0BP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,mBAAQ,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;IAC/D,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;qDAehD;2BAxTU,gBAAgB;IAD5B,IAAA,uBAAQ,EAAC,mBAAQ,CAAC;GACN,gBAAgB,CAyT5B","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { createAttachment, deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { Contact } from '@things-factory/contact'\n\nimport { Employee } from './employee'\nimport { NewEmployee, EmployeePatch } from './employee-type'\nimport { Department } from '../department/department'\n\n@Resolver(Employee)\nexport class EmployeeMutation {\n @Directive('@transaction')\n @Mutation(returns => Employee, { description: 'To create new Employee' })\n async createEmployee(@Arg('employee') employee: NewEmployee, @Ctx() context: ResolverContext): Promise<Employee> {\n const { domain, user, tx } = context.state\n\n const supervisor =\n 'supervisor' in employee\n ? employee.supervisor && (await tx.getRepository(Employee).findOneBy({ id: employee.supervisor.id }))\n : undefined\n\n const department =\n 'department' in employee\n ? employee.department && (await tx.getRepository(Department).findOneBy({ id: employee.department.id }))\n : undefined\n\n const connectedUser =\n 'user' in employee\n ? employee.user && (await tx.getRepository(User).findOneBy({ id: employee.user.id }))\n : undefined\n\n const result = await tx.getRepository(Employee).save({\n ...employee,\n supervisor,\n department,\n user: connectedUser,\n domain,\n creator: user,\n updater: user\n })\n\n if (employee.photo) {\n await createAttachment(\n null,\n {\n attachment: {\n file: employee.photo,\n refType: Employee.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => Employee, { description: 'To modify Employee information' })\n async updateEmployee(\n @Arg('id') id: string,\n @Arg('patch') patch: EmployeePatch,\n @Ctx() context: ResolverContext\n ): Promise<Employee> {\n const { domain, user, tx } = context.state\n\n const supervisor =\n 'supervisor' in patch\n ? patch.supervisor && (await tx.getRepository(Employee).findOneBy({ id: patch.supervisor.id }))\n : undefined\n\n const department =\n 'department' in patch\n ? patch.department && (await tx.getRepository(Department).findOneBy({ id: patch.department.id }))\n : undefined\n\n const connectedUser =\n 'user' in patch ? patch.user && (await tx.getRepository(User).findOneBy({ id: patch.user.id })) : undefined\n\n const repository = tx.getRepository(Employee)\n const employee = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...employee,\n ...patch,\n supervisor,\n department,\n user: connectedUser,\n updater: user\n })\n\n if (patch.photo) {\n await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)\n await createAttachment(\n null,\n {\n attachment: {\n file: patch.photo,\n refType: Employee.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => [Employee], { description: \"To modify multiple Employees' information\" })\n async updateMultipleEmployee(\n @Arg('patches', type => [EmployeePatch]) patches: EmployeePatch[],\n @Ctx() context: ResolverContext\n ): Promise<Employee[]> {\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 employeeRepo = tx.getRepository(Employee)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const supervisor =\n 'supervisor' in newRecord\n ? newRecord.supervisor && (await tx.getRepository(Employee).findOneBy({ id: newRecord.supervisor.id }))\n : undefined\n\n const department =\n 'department' in newRecord\n ? newRecord.department && (await tx.getRepository(Department).findOneBy({ id: newRecord.department.id }))\n : undefined\n\n const connectedUser =\n 'user' in newRecord\n ? newRecord.user && (await tx.getRepository(User).findOneBy({ id: newRecord.user.id }))\n : undefined\n\n const result = await employeeRepo.save({\n ...newRecord,\n supervisor,\n department,\n user: connectedUser,\n domain,\n creator: user,\n updater: user\n })\n\n if (newRecord.photo) {\n await createAttachment(\n null,\n {\n attachment: {\n file: newRecord.photo,\n refType: Employee.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\n const supervisor =\n 'supervisor' in updateRecord\n ? updateRecord.supervisor &&\n (await tx.getRepository(Employee).findOneBy({ id: updateRecord.supervisor.id }))\n : undefined\n\n const department =\n 'department' in updateRecord\n ? updateRecord.department &&\n (await tx.getRepository(Department).findOneBy({ id: updateRecord.department.id }))\n : undefined\n\n const connectedUser =\n 'user' in updateRecord\n ? updateRecord.user && (await tx.getRepository(User).findOneBy({ id: updateRecord.user.id }))\n : undefined\n\n const employee = await employeeRepo.findOneBy({ id: updateRecord.id })\n\n const result = await employeeRepo.save({\n ...employee,\n ...updateRecord,\n supervisor,\n department,\n user: connectedUser,\n updater: user\n })\n\n if (updateRecord.photo) {\n await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)\n await createAttachment(\n null,\n {\n attachment: {\n file: updateRecord.photo,\n refType: Employee.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 @Mutation(returns => Boolean, { description: 'To delete Employee' })\n async deleteEmployee(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Employee).delete({ domain: { id: domain.id }, id })\n await deleteAttachmentsByRef(null, { refBys: [id] }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple Employees' })\n async deleteEmployees(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Employee).delete({\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 @Mutation(returns => Boolean, { description: 'To import multiple Employees' })\n async importEmployees(\n @Arg('employees', type => [EmployeePatch]) employees: EmployeePatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n employees.map(async (employee: EmployeePatch) => {\n const createdEmployee: Employee = await tx.getRepository(Employee).save({ domain, ...employee })\n })\n )\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Employee, { description: 'To attach a contact on Employee' })\n async attachContact(\n @Arg('id') id: string,\n @Arg('contactId') contactId: string,\n @Ctx() context: ResolverContext\n ): Promise<Employee> {\n const { domain, user, tx } = context.state\n\n const employeeRepository = tx.getRepository(Employee)\n const employee = await employeeRepository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const contactRepository = tx.getRepository(Contact)\n const contact = await contactRepository.findOne({\n where: { domain: { id: domain.id }, id: contactId }\n })\n\n if (!contact) {\n throw Error(`Contact not found with given contactId(${contactId}).`)\n }\n\n const result = await employeeRepository.save({\n ...employee,\n name: contact.name,\n contact: { id: contactId },\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => Employee, { description: 'To detach a contact from Employee' })\n async detachContact(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Employee> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(Employee)\n const employee = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...employee,\n contact: null,\n updater: user\n })\n\n return result\n }\n}\n"]}
1
+ {"version":3,"file":"employee-mutation.js","sourceRoot":"","sources":["../../../server/service/employee/employee-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { createAttachment, deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { Contact } from '@things-factory/contact'\n\nimport { Employee } from './employee'\nimport { NewEmployee, EmployeePatch } from './employee-type'\nimport { Department } from '../department/department'\n\n@Resolver(Employee)\nexport class EmployeeMutation {\n @Directive('@transaction')\n @Mutation(returns => Employee, { description: 'To create new Employee' })\n async createEmployee(@Arg('employee') employee: NewEmployee, @Ctx() context: ResolverContext): Promise<Employee> {\n const { domain, user, tx } = context.state\n\n const supervisor =\n 'supervisor' in employee\n ? employee.supervisor && (await tx.getRepository(Employee).findOneBy({ id: employee.supervisor.id }))\n : undefined\n\n const department =\n 'department' in employee\n ? employee.department && (await tx.getRepository(Department).findOneBy({ id: employee.department.id }))\n : undefined\n\n const connectedUser =\n 'user' in employee\n ? employee.user && (await tx.getRepository(User).findOneBy({ id: employee.user.id }))\n : undefined\n\n const result = await tx.getRepository(Employee).save({\n ...employee,\n supervisor,\n department,\n user: connectedUser,\n domain,\n creator: user,\n updater: user\n })\n\n if (employee.photo) {\n await createAttachment(\n null,\n {\n attachment: {\n file: employee.photo,\n refType: Employee.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => Employee, { description: 'To modify Employee information' })\n async updateEmployee(\n @Arg('id') id: string,\n @Arg('patch') patch: EmployeePatch,\n @Ctx() context: ResolverContext\n ): Promise<Employee> {\n const { domain, user, tx } = context.state\n\n const supervisor =\n 'supervisor' in patch\n ? patch.supervisor && (await tx.getRepository(Employee).findOneBy({ id: patch.supervisor.id }))\n : undefined\n\n const department =\n 'department' in patch\n ? patch.department && (await tx.getRepository(Department).findOneBy({ id: patch.department.id }))\n : undefined\n\n const connectedUser =\n 'user' in patch ? patch.user && (await tx.getRepository(User).findOneBy({ id: patch.user.id })) : undefined\n\n const repository = tx.getRepository(Employee)\n const employee = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...employee,\n ...patch,\n supervisor,\n department,\n user: connectedUser,\n updater: user\n })\n\n if (patch.photo) {\n await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)\n await createAttachment(\n null,\n {\n attachment: {\n file: patch.photo,\n refType: Employee.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => [Employee], { description: \"To modify multiple Employees' information\" })\n async updateMultipleEmployee(\n @Arg('patches', type => [EmployeePatch]) patches: EmployeePatch[],\n @Ctx() context: ResolverContext\n ): Promise<Employee[]> {\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 employeeRepo = tx.getRepository(Employee)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const supervisor =\n 'supervisor' in newRecord\n ? newRecord.supervisor && (await tx.getRepository(Employee).findOneBy({ id: newRecord.supervisor.id }))\n : undefined\n\n const department =\n 'department' in newRecord\n ? newRecord.department && (await tx.getRepository(Department).findOneBy({ id: newRecord.department.id }))\n : undefined\n\n const connectedUser =\n 'user' in newRecord\n ? newRecord.user && (await tx.getRepository(User).findOneBy({ id: newRecord.user.id }))\n : undefined\n\n const result = await employeeRepo.save({\n ...newRecord,\n supervisor,\n department,\n user: connectedUser,\n domain,\n creator: user,\n updater: user\n })\n\n if (newRecord.photo) {\n await createAttachment(\n null,\n {\n attachment: {\n file: newRecord.photo,\n refType: Employee.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\n const supervisor =\n 'supervisor' in updateRecord\n ? updateRecord.supervisor &&\n (await tx.getRepository(Employee).findOneBy({ id: updateRecord.supervisor.id }))\n : undefined\n\n const department =\n 'department' in updateRecord\n ? updateRecord.department &&\n (await tx.getRepository(Department).findOneBy({ id: updateRecord.department.id }))\n : undefined\n\n const connectedUser =\n 'user' in updateRecord\n ? updateRecord.user && (await tx.getRepository(User).findOneBy({ id: updateRecord.user.id }))\n : undefined\n\n const employee = await employeeRepo.findOneBy({ id: updateRecord.id })\n\n const result = await employeeRepo.save({\n ...employee,\n ...updateRecord,\n supervisor,\n department,\n user: connectedUser,\n updater: user\n })\n\n if (updateRecord.photo) {\n await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)\n await createAttachment(\n null,\n {\n attachment: {\n file: updateRecord.photo,\n refType: Employee.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 @Mutation(returns => Boolean, { description: 'To delete Employee' })\n async deleteEmployee(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Employee).delete({ domain: { id: domain.id }, id })\n await deleteAttachmentsByRef(null, { refBys: [id] }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple Employees' })\n async deleteEmployees(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Employee).delete({\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 @Mutation(returns => Boolean, { description: 'To import multiple Employees' })\n async importEmployees(\n @Arg('employees', type => [EmployeePatch]) employees: EmployeePatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n employees.map(async (employee: EmployeePatch) => {\n const createdEmployee: Employee = await tx.getRepository(Employee).save({ domain, ...employee })\n })\n )\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Employee, { description: 'To attach a contact on Employee' })\n async attachContact(\n @Arg('id') id: string,\n @Arg('contactId') contactId: string,\n @Ctx() context: ResolverContext\n ): Promise<Employee> {\n const { domain, user, tx } = context.state\n\n const employeeRepository = tx.getRepository(Employee)\n const employee = await employeeRepository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const contactRepository = tx.getRepository(Contact)\n const contact = await contactRepository.findOne({\n where: { domain: { id: domain.id }, id: contactId }\n })\n\n if (!contact) {\n throw Error(`Contact not found with given contactId(${contactId}).`)\n }\n\n const result = await employeeRepository.save({\n ...employee,\n name: contact.name,\n contact: { id: contactId },\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => Employee, { description: 'To detach a contact from Employee' })\n async detachContact(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Employee> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(Employee)\n const employee = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...employee,\n contact: null,\n updater: user\n })\n\n return result\n }\n\n // @Directive('@privilege')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To register employee as a system user' })\n async registerEmployeeAsSystemUser(\n @Arg('id', { description: 'Employee Id' }) id: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, user, tx } = context.state\n\n const employeeRepository = tx.getRepository(Employee)\n const employee = await employeeRepository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['contact', 'user']\n })\n\n return true\n\n /* \n process\n\n 0. 이미 연결된 사용자가 없어야 한다.\n 1. contact 정보가 있어야 한다.\n 2. contact 정보에 대표 email 정보가 있어야 한다.\n 3. employee 의 직책 정보가 있어야 한다. => role 과 연결된다.\n 4. 사용자 중에서 동일한 이메일을 가진 사용자가 있는가 확인한다.\n 5. 그 사용자가 이 도메인에 연결되어 있는 지 확인한다. 없다면 실패.\n 6. 직책에 해당하는 역할이 있는 지 확인한다.\n 7. 시스템에 사용자를 등록한다.\n 8. 역할을 추가한다.\n */\n // const result = await employeeRepository.save({\n // ...employee,\n // name: contact.name,\n // contact: { id: contactId },\n // updater: user\n // })\n\n // return result\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  export * from './approval-line/approval-line';
2
2
  export * from './department/department';
3
3
  export * from './employee/employee';
4
- export declare const entities: (typeof import("./department/department").Department | typeof import("./employee/employee").Employee | typeof import("./approval-line/approval-line").ApprovalLine | typeof import("./department/department-history").DepartmentHistory | typeof import("./employee/employee-history").EmployeeHistory)[];
5
- export declare const subscribers: (typeof import("./department/event-subscriber").DepartmentHistoryEntitySubscriber | typeof import("./employee/event-subscriber").EmployeeHistoryEntitySubscriber)[];
4
+ export declare const entities: (typeof import("./employee/employee").Employee | typeof import("./employee/employee-history").EmployeeHistory | typeof import("./department/department").Department | typeof import("./approval-line/approval-line").ApprovalLine | typeof import("./department/department-history").DepartmentHistory)[];
5
+ export declare const subscribers: (typeof import("./employee/event-subscriber").EmployeeHistoryEntitySubscriber | typeof import("./department/event-subscriber").DepartmentHistoryEntitySubscriber)[];
6
6
  export declare const schema: {
7
- resolverClasses: (typeof import("./approval-line/approval-line-query").ApprovalLineQuery | typeof import("./approval-line/approval-line-mutation").ApprovalLineMutation | typeof import("./department/department-query").DepartmentQuery | typeof import("./department/department-mutation").DepartmentMutation | typeof import("./employee/employee-query").EmployeeQuery | typeof import("./employee/employee-mutation").EmployeeMutation)[];
7
+ resolverClasses: (typeof import("./employee/employee-query").EmployeeQuery | typeof import("./employee/employee-mutation").EmployeeMutation | typeof import("./approval-line/approval-line-query").ApprovalLineQuery | typeof import("./approval-line/approval-line-mutation").ApprovalLineMutation | typeof import("./department/department-query").DepartmentQuery | typeof import("./department/department-mutation").DepartmentMutation)[];
8
8
  };