@things-factory/menu-base 10.1.79 → 10.1.105

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.
@@ -15,15 +15,32 @@ async function appendRoleToMenu(roleRepo, roles, targetRole) {
15
15
  function removeRoleToMenu(roles, targetRole) {
16
16
  return roles.filter(role => targetRole.id !== role.id);
17
17
  }
18
+ /*
19
+ * A menu's parent and children, looked up inside the caller's domain. By id alone, a menu of one
20
+ * domain could be put under another domain's menu, or take another domain's menus as its children.
21
+ */
22
+ async function parentInDomain(menuRepo, domain, id) {
23
+ const parent = await menuRepo.findOneBy({ domain: { id: domain.id }, id });
24
+ if (!parent) {
25
+ throw new Error(`parent menu not found in this domain: ${id}`);
26
+ }
27
+ return parent;
28
+ }
29
+ async function childrenInDomain(menuRepo, domain, ids) {
30
+ const unique = [...new Set(ids)];
31
+ const children = await menuRepo.findBy({ domain: { id: domain.id }, id: (0, typeorm_1.In)(unique) });
32
+ const missing = unique.filter(id => !children.some(child => child.id === id));
33
+ if (missing.length) {
34
+ throw new Error(`child menu not found in this domain: ${missing.join(', ')}`);
35
+ }
36
+ return children;
37
+ }
18
38
  let MenuMutation = class MenuMutation {
19
39
  async createMenu(menu, context) {
20
40
  const { domain, user, tx } = context.state;
21
41
  const menuRepo = tx?.getRepository(menu_1.Menu);
22
42
  if (menu?.parent?.id) {
23
- menu.parent = await menuRepo.findOneBy({
24
- domain: { id: domain.id },
25
- id: menu.parent.id
26
- });
43
+ menu.parent = await parentInDomain(menuRepo, domain, menu.parent.id);
27
44
  }
28
45
  return await tx.getRepository(menu_1.Menu).save({
29
46
  ...menu,
@@ -39,12 +56,15 @@ let MenuMutation = class MenuMutation {
39
56
  where: { domain: { id: domain.id }, id },
40
57
  relations: ['children', 'parent']
41
58
  });
59
+ if (!menu) {
60
+ throw new Error(`menu not found in this domain: ${id}`);
61
+ }
42
62
  if (patch?.parent?.id) {
43
- patch.parent = await menuRepo.findOneBy({ id: patch.parent.id });
63
+ patch.parent = await parentInDomain(menuRepo, domain, patch.parent.id);
44
64
  }
45
65
  if (patch?.children?.length) {
46
66
  const childrenIds = patch.children.map((children) => children.id);
47
- patch.children = await menuRepo.findByIds(childrenIds);
67
+ patch.children = await childrenInDomain(menuRepo, domain, childrenIds);
48
68
  }
49
69
  return await menuRepo.save({
50
70
  ...menu,
@@ -62,10 +82,7 @@ let MenuMutation = class MenuMutation {
62
82
  for (let i = 0; i < _createRecords.length; i++) {
63
83
  const newRecord = _createRecords[i];
64
84
  if (newRecord?.parent?.id) {
65
- newRecord.parent = await menuRepo.findOneBy({
66
- domain: { id: domain.id },
67
- id: newRecord.parent.id
68
- });
85
+ newRecord.parent = await parentInDomain(menuRepo, domain, newRecord.parent.id);
69
86
  }
70
87
  const result = await menuRepo.save({
71
88
  ...newRecord,
@@ -84,12 +101,15 @@ let MenuMutation = class MenuMutation {
84
101
  where: { domain: { id: domain.id }, id },
85
102
  relations: ['children', 'parent']
86
103
  });
104
+ if (!menu) {
105
+ throw new Error(`menu not found in this domain: ${id}`);
106
+ }
87
107
  if (updateRecord?.parent?.id) {
88
- updateRecord.parent = await menuRepo.findOneBy({ id: updateRecord.parent.id });
108
+ updateRecord.parent = await parentInDomain(menuRepo, domain, updateRecord.parent.id);
89
109
  }
90
110
  if (updateRecord?.children?.length) {
91
111
  const childrenIds = updateRecord.children.map((children) => children.id);
92
- updateRecord.children = await menuRepo.findBy({ id: (0, typeorm_1.In)(childrenIds) });
112
+ updateRecord.children = await childrenInDomain(menuRepo, domain, childrenIds);
93
113
  }
94
114
  const result = await menuRepo.save({
95
115
  ...menu,
@@ -123,6 +143,9 @@ let MenuMutation = class MenuMutation {
123
143
  relations: ['roles']
124
144
  });
125
145
  const targetRole = await roleRepo.findOne({ where: { domain: { id: domain.id }, id: roleId } });
146
+ if (!targetRole) {
147
+ throw new Error(`role not found in this domain: ${roleId}`);
148
+ }
126
149
  if (isCheckedMenu) {
127
150
  menu.roles = await appendRoleToMenu(roleRepo, menu.roles, targetRole);
128
151
  }
@@ -143,6 +166,9 @@ let MenuMutation = class MenuMutation {
143
166
  });
144
167
  let childMenus = targetParentMenu.children;
145
168
  const targetRole = await roleRepo.findOne({ where: { domain: { id: domain.id }, id: roleId } });
169
+ if (!targetRole) {
170
+ throw new Error(`role not found in this domain: ${roleId}`);
171
+ }
146
172
  if (isCheckedAll) {
147
173
  childMenus.forEach(async (child) => {
148
174
  child.roles = await appendRoleToMenu(roleRepo, child.roles, targetRole);
@@ -166,6 +192,7 @@ let MenuMutation = class MenuMutation {
166
192
  exports.MenuMutation = MenuMutation;
167
193
  tslib_1.__decorate([
168
194
  (0, type_graphql_1.Directive)('@transaction'),
195
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
169
196
  (0, type_graphql_1.Mutation)(returns => menu_1.Menu, { description: 'To create new Menu' }),
170
197
  tslib_1.__param(0, (0, type_graphql_1.Arg)('menu')),
171
198
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -175,6 +202,7 @@ tslib_1.__decorate([
175
202
  ], MenuMutation.prototype, "createMenu", null);
176
203
  tslib_1.__decorate([
177
204
  (0, type_graphql_1.Directive)('@transaction'),
205
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
178
206
  (0, type_graphql_1.Mutation)(returns => menu_1.Menu, { description: 'To modify Menu information' }),
179
207
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
180
208
  tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
@@ -185,6 +213,7 @@ tslib_1.__decorate([
185
213
  ], MenuMutation.prototype, "updateMenu", null);
186
214
  tslib_1.__decorate([
187
215
  (0, type_graphql_1.Directive)('@transaction'),
216
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
188
217
  (0, type_graphql_1.Mutation)(returns => [menu_1.Menu], { description: "To modify multiple Menus' information" }),
189
218
  tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [menu_type_1.MenuPatch])),
190
219
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -194,6 +223,7 @@ tslib_1.__decorate([
194
223
  ], MenuMutation.prototype, "updateMultipleMenu", null);
195
224
  tslib_1.__decorate([
196
225
  (0, type_graphql_1.Directive)('@transaction'),
226
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
197
227
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete Menu' }),
198
228
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
199
229
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -203,6 +233,7 @@ tslib_1.__decorate([
203
233
  ], MenuMutation.prototype, "deleteMenu", null);
204
234
  tslib_1.__decorate([
205
235
  (0, type_graphql_1.Directive)('@transaction'),
236
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
206
237
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple Menus' }),
207
238
  tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
208
239
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -212,6 +243,7 @@ tslib_1.__decorate([
212
243
  ], MenuMutation.prototype, "deleteMenus", null);
213
244
  tslib_1.__decorate([
214
245
  (0, type_graphql_1.Directive)('@transaction'),
246
+ (0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "mutation", domainOwnerGranted: true)'),
215
247
  (0, type_graphql_1.Mutation)(returns => menu_1.Menu, { description: 'To update role Menu' }),
216
248
  tslib_1.__param(0, (0, type_graphql_1.Arg)('roleId')),
217
249
  tslib_1.__param(1, (0, type_graphql_1.Arg)('targetMenuId')),
@@ -223,6 +255,7 @@ tslib_1.__decorate([
223
255
  ], MenuMutation.prototype, "updateRoleMenu", null);
224
256
  tslib_1.__decorate([
225
257
  (0, type_graphql_1.Directive)('@transaction'),
258
+ (0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "mutation", domainOwnerGranted: true)'),
226
259
  (0, type_graphql_1.Mutation)(returns => [menu_1.Menu], { description: 'To update role Menu' }),
227
260
  tslib_1.__param(0, (0, type_graphql_1.Arg)('roleId')),
228
261
  tslib_1.__param(1, (0, type_graphql_1.Arg)('parentMenuId')),
@@ -234,6 +267,7 @@ tslib_1.__decorate([
234
267
  ], MenuMutation.prototype, "updateRoleMenus", null);
235
268
  tslib_1.__decorate([
236
269
  (0, type_graphql_1.Directive)('@transaction'),
270
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
237
271
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple Menus' }),
238
272
  tslib_1.__param(0, (0, type_graphql_1.Arg)('menus', type => [menu_type_1.MenuPatch])),
239
273
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -1 +1 @@
1
- {"version":3,"file":"menu-mutation.js","sourceRoot":"","sources":["../../../server/service/menu/menu-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In, Repository } from 'typeorm'\n\nimport { Role } from '@things-factory/auth-base'\n\nimport { Menu } from './menu'\nimport { MenuPatch, NewMenu } from './menu-type'\n\nasync function appendRoleToMenu(roleRepo, roles, targetRole) {\n let roleIds: string[] = roles.map(role => role.id)\n roleIds = Array.from(new Set([...roleIds, targetRole.id]))\n\n return await roleRepo.findByIds(roleIds)\n}\n\nfunction removeRoleToMenu(roles, targetRole) {\n return roles.filter(role => targetRole.id !== role.id)\n}\n\n@Resolver(Menu)\nexport class MenuMutation {\n @Directive('@transaction')\n @Mutation(returns => Menu, { description: 'To create new Menu' })\n async createMenu(@Arg('menu') menu: NewMenu, @Ctx() context: ResolverContext): Promise<Menu> {\n const { domain, user, tx } = context.state\n const menuRepo = tx?.getRepository(Menu)\n\n if (menu?.parent?.id) {\n menu.parent = await menuRepo.findOneBy({\n domain: { id: domain.id },\n id: menu.parent.id\n })\n }\n\n return await tx.getRepository(Menu).save({\n ...menu,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Menu, { description: 'To modify Menu information' })\n async updateMenu(\n @Arg('id') id: string,\n @Arg('patch') patch: MenuPatch,\n @Ctx() context: ResolverContext\n ): Promise<Menu> {\n const { domain, user, tx } = context.state\n\n const menuRepo = tx.getRepository(Menu)\n\n const menu: Menu = await menuRepo.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['children', 'parent']\n })\n\n if (patch?.parent?.id) {\n patch.parent = await menuRepo.findOneBy({ id: patch.parent.id })\n }\n\n if (patch?.children?.length) {\n const childrenIds: string[] = patch.children.map((children: Menu) => children.id)\n patch.children = await menuRepo.findByIds(childrenIds)\n }\n\n return await menuRepo.save({\n ...menu,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [Menu], { description: \"To modify multiple Menus' information\" })\n async updateMultipleMenu(\n @Arg('patches', type => [MenuPatch]) patches: MenuPatch[],\n @Ctx() context: ResolverContext\n ): Promise<Menu[]> {\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 menuRepo = tx.getRepository(Menu)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n if (newRecord?.parent?.id) {\n newRecord.parent = await menuRepo.findOneBy({\n domain: { id: domain.id },\n id: newRecord.parent.id\n })\n }\n\n const result = await menuRepo.save({\n ...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 { id } = updateRecord\n\n const menu: Menu = await menuRepo.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['children', 'parent']\n })\n\n if (updateRecord?.parent?.id) {\n updateRecord.parent = await menuRepo.findOneBy({ id: updateRecord.parent.id })\n }\n\n if (updateRecord?.children?.length) {\n const childrenIds: string[] = updateRecord.children.map((children: Menu) => children.id)\n updateRecord.children = await menuRepo.findBy({ id: In(childrenIds) })\n }\n\n const result = await menuRepo.save({\n ...menu,\n ...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 => Boolean, { description: 'To delete Menu' })\n async deleteMenu(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Menu).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple Menus' })\n async deleteMenus(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Menu).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Menu, { description: 'To update role Menu' })\n async updateRoleMenu(\n @Arg('roleId') roleId: string,\n @Arg('targetMenuId') targetMenuId: string,\n @Arg('isCheckedMenu') isCheckedMenu: boolean,\n @Ctx() context: ResolverContext\n ): Promise<Menu> {\n const { domain, tx } = context.state\n\n const menuRepo: Repository<Menu> = tx?.getRepository(Menu)\n const roleRepo: Repository<Role> = tx?.getRepository(Role)\n\n const menu: Menu = await menuRepo.findOne({\n where: { domain: { id: domain.id }, id: targetMenuId },\n relations: ['roles']\n })\n const targetRole: Role = await roleRepo.findOne({ where: { domain: { id: domain.id }, id: roleId } })\n\n if (isCheckedMenu) {\n menu.roles = await appendRoleToMenu(roleRepo, menu.roles, targetRole)\n } else {\n menu.roles = removeRoleToMenu(menu.roles, targetRole)\n }\n\n return await menuRepo.save({\n ...menu\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [Menu], { description: 'To update role Menu' })\n async updateRoleMenus(\n @Arg('roleId') roleId: string,\n @Arg('parentMenuId') parentMenuId: string,\n @Arg('isCheckedAll') isCheckedAll: boolean,\n @Ctx() context: ResolverContext\n ): Promise<Menu[]> {\n const { domain, tx } = context.state\n\n const menuRepo: Repository<Menu> = tx?.getRepository(Menu)\n const roleRepo: Repository<Role> = tx?.getRepository(Role)\n\n const targetParentMenu: Menu = await menuRepo.findOne({\n where: { domain: { id: domain.id }, id: parentMenuId },\n relations: ['children', 'children.roles']\n })\n let childMenus: Menu[] = targetParentMenu.children\n\n const targetRole: Role = await roleRepo.findOne({ where: { domain: { id: domain.id }, id: roleId } })\n\n if (isCheckedAll) {\n childMenus.forEach(async child => {\n child.roles = await appendRoleToMenu(roleRepo, child.roles, targetRole)\n })\n } else {\n childMenus.forEach(child => {\n child.roles = removeRoleToMenu(child.roles, targetRole)\n })\n }\n\n return await menuRepo.save([...childMenus])\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To import multiple Menus' })\n async importMenus(\n @Arg('menus', type => [MenuPatch]) menus: MenuPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n menus.map(async (menu: MenuPatch) => {\n const createdMenu: Menu = await tx.getRepository(Menu).save({ domain, ...menu })\n })\n )\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"menu-mutation.js","sourceRoot":"","sources":["../../../server/service/menu/menu-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In, Repository } from 'typeorm'\n\nimport { Role } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { Menu } from './menu'\nimport { MenuPatch, NewMenu } from './menu-type'\n\nasync function appendRoleToMenu(roleRepo, roles, targetRole) {\n let roleIds: string[] = roles.map(role => role.id)\n roleIds = Array.from(new Set([...roleIds, targetRole.id]))\n\n return await roleRepo.findByIds(roleIds)\n}\n\nfunction removeRoleToMenu(roles, targetRole) {\n return roles.filter(role => targetRole.id !== role.id)\n}\n\n/*\n * A menu's parent and children, looked up inside the caller's domain. By id alone, a menu of one\n * domain could be put under another domain's menu, or take another domain's menus as its children.\n */\nasync function parentInDomain(menuRepo: Repository<Menu>, domain: Domain, id: string): Promise<Menu> {\n const parent = await menuRepo.findOneBy({ domain: { id: domain.id }, id })\n if (!parent) {\n throw new Error(`parent menu not found in this domain: ${id}`)\n }\n return parent\n}\n\nasync function childrenInDomain(menuRepo: Repository<Menu>, domain: Domain, ids: string[]): Promise<Menu[]> {\n const unique = [...new Set(ids)]\n const children = await menuRepo.findBy({ domain: { id: domain.id }, id: In(unique) })\n const missing = unique.filter(id => !children.some(child => child.id === id))\n if (missing.length) {\n throw new Error(`child menu not found in this domain: ${missing.join(', ')}`)\n }\n return children\n}\n\n@Resolver(Menu)\nexport class MenuMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Menu, { description: 'To create new Menu' })\n async createMenu(@Arg('menu') menu: NewMenu, @Ctx() context: ResolverContext): Promise<Menu> {\n const { domain, user, tx } = context.state\n const menuRepo = tx?.getRepository(Menu)\n\n if (menu?.parent?.id) {\n menu.parent = await parentInDomain(menuRepo, domain, menu.parent.id)\n }\n\n return await tx.getRepository(Menu).save({\n ...menu,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Menu, { description: 'To modify Menu information' })\n async updateMenu(\n @Arg('id') id: string,\n @Arg('patch') patch: MenuPatch,\n @Ctx() context: ResolverContext\n ): Promise<Menu> {\n const { domain, user, tx } = context.state\n\n const menuRepo = tx.getRepository(Menu)\n\n const menu: Menu = await menuRepo.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['children', 'parent']\n })\n if (!menu) {\n throw new Error(`menu not found in this domain: ${id}`)\n }\n\n if (patch?.parent?.id) {\n patch.parent = await parentInDomain(menuRepo, domain, patch.parent.id)\n }\n\n if (patch?.children?.length) {\n const childrenIds: string[] = patch.children.map((children: Menu) => children.id)\n patch.children = await childrenInDomain(menuRepo, domain, childrenIds)\n }\n\n return await menuRepo.save({\n ...menu,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [Menu], { description: \"To modify multiple Menus' information\" })\n async updateMultipleMenu(\n @Arg('patches', type => [MenuPatch]) patches: MenuPatch[],\n @Ctx() context: ResolverContext\n ): Promise<Menu[]> {\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 menuRepo = tx.getRepository(Menu)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n if (newRecord?.parent?.id) {\n newRecord.parent = await parentInDomain(menuRepo, domain, newRecord.parent.id)\n }\n\n const result = await menuRepo.save({\n ...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 { id } = updateRecord\n\n const menu: Menu = await menuRepo.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['children', 'parent']\n })\n if (!menu) {\n throw new Error(`menu not found in this domain: ${id}`)\n }\n\n if (updateRecord?.parent?.id) {\n updateRecord.parent = await parentInDomain(menuRepo, domain, updateRecord.parent.id)\n }\n\n if (updateRecord?.children?.length) {\n const childrenIds: string[] = updateRecord.children.map((children: Menu) => children.id)\n updateRecord.children = await childrenInDomain(menuRepo, domain, childrenIds)\n }\n\n const result = await menuRepo.save({\n ...menu,\n ...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: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete Menu' })\n async deleteMenu(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Menu).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple Menus' })\n async deleteMenus(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Menu).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"user\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Menu, { description: 'To update role Menu' })\n async updateRoleMenu(\n @Arg('roleId') roleId: string,\n @Arg('targetMenuId') targetMenuId: string,\n @Arg('isCheckedMenu') isCheckedMenu: boolean,\n @Ctx() context: ResolverContext\n ): Promise<Menu> {\n const { domain, tx } = context.state\n\n const menuRepo: Repository<Menu> = tx?.getRepository(Menu)\n const roleRepo: Repository<Role> = tx?.getRepository(Role)\n\n const menu: Menu = await menuRepo.findOne({\n where: { domain: { id: domain.id }, id: targetMenuId },\n relations: ['roles']\n })\n const targetRole: Role = await roleRepo.findOne({ where: { domain: { id: domain.id }, id: roleId } })\n if (!targetRole) {\n throw new Error(`role not found in this domain: ${roleId}`)\n }\n\n if (isCheckedMenu) {\n menu.roles = await appendRoleToMenu(roleRepo, menu.roles, targetRole)\n } else {\n menu.roles = removeRoleToMenu(menu.roles, targetRole)\n }\n\n return await menuRepo.save({\n ...menu\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"user\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [Menu], { description: 'To update role Menu' })\n async updateRoleMenus(\n @Arg('roleId') roleId: string,\n @Arg('parentMenuId') parentMenuId: string,\n @Arg('isCheckedAll') isCheckedAll: boolean,\n @Ctx() context: ResolverContext\n ): Promise<Menu[]> {\n const { domain, tx } = context.state\n\n const menuRepo: Repository<Menu> = tx?.getRepository(Menu)\n const roleRepo: Repository<Role> = tx?.getRepository(Role)\n\n const targetParentMenu: Menu = await menuRepo.findOne({\n where: { domain: { id: domain.id }, id: parentMenuId },\n relations: ['children', 'children.roles']\n })\n let childMenus: Menu[] = targetParentMenu.children\n\n const targetRole: Role = await roleRepo.findOne({ where: { domain: { id: domain.id }, id: roleId } })\n if (!targetRole) {\n throw new Error(`role not found in this domain: ${roleId}`)\n }\n\n if (isCheckedAll) {\n childMenus.forEach(async child => {\n child.roles = await appendRoleToMenu(roleRepo, child.roles, targetRole)\n })\n } else {\n childMenus.forEach(child => {\n child.roles = removeRoleToMenu(child.roles, targetRole)\n })\n }\n\n return await menuRepo.save([...childMenus])\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple Menus' })\n async importMenus(\n @Arg('menus', type => [MenuPatch]) menus: MenuPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n menus.map(async (menu: MenuPatch) => {\n const createdMenu: Menu = await tx.getRepository(Menu).save({ domain, ...menu })\n })\n )\n\n return true\n }\n}\n"]}
@@ -97,6 +97,7 @@ let MenuButtonMutation = class MenuButtonMutation {
97
97
  exports.MenuButtonMutation = MenuButtonMutation;
98
98
  tslib_1.__decorate([
99
99
  (0, type_graphql_1.Directive)('@transaction'),
100
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
100
101
  (0, type_graphql_1.Mutation)(returns => menu_button_1.MenuButton, { description: 'To create new MenuButton' }),
101
102
  tslib_1.__param(0, (0, type_graphql_1.Arg)('menuButton')),
102
103
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -106,6 +107,7 @@ tslib_1.__decorate([
106
107
  ], MenuButtonMutation.prototype, "createMenuButton", null);
107
108
  tslib_1.__decorate([
108
109
  (0, type_graphql_1.Directive)('@transaction'),
110
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
109
111
  (0, type_graphql_1.Mutation)(returns => menu_button_1.MenuButton, { description: 'To modify MenuButton information' }),
110
112
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
111
113
  tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
@@ -116,6 +118,7 @@ tslib_1.__decorate([
116
118
  ], MenuButtonMutation.prototype, "updateMenuButton", null);
117
119
  tslib_1.__decorate([
118
120
  (0, type_graphql_1.Directive)('@transaction'),
121
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
119
122
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete MenuButton' }),
120
123
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
121
124
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -125,6 +128,7 @@ tslib_1.__decorate([
125
128
  ], MenuButtonMutation.prototype, "deleteMenuButton", null);
126
129
  tslib_1.__decorate([
127
130
  (0, type_graphql_1.Directive)('@transaction'),
131
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
128
132
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple MenuButtons' }),
129
133
  tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
130
134
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -134,6 +138,7 @@ tslib_1.__decorate([
134
138
  ], MenuButtonMutation.prototype, "deleteMenuButtons", null);
135
139
  tslib_1.__decorate([
136
140
  (0, type_graphql_1.Directive)('@transaction'),
141
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
137
142
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple MenuButtons' }),
138
143
  tslib_1.__param(0, (0, type_graphql_1.Arg)('menuButtons', type => [menu_button_type_1.MenuButtonPatch])),
139
144
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -1 +1 @@
1
- {"version":3,"file":"menu-button-mutation.js","sourceRoot":"","sources":["../../../server/service/menu-button/menu-button-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Menu } from '../menu/menu'\nimport { MenuButton } from './menu-button'\nimport { MenuButtonPatch, NewMenuButton } from './menu-button-type'\n\n@Resolver(MenuButton)\nexport class MenuButtonMutation {\n @Directive('@transaction')\n @Mutation(returns => MenuButton, { description: 'To create new MenuButton' })\n async createMenuButton(\n @Arg('menuButton') menuButton: NewMenuButton,\n @Ctx() context: ResolverContext\n ): Promise<MenuButton> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(MenuButton).save({\n ...menuButton,\n menu: await tx\n .getRepository(Menu)\n .findOne({ where: { domain: { id: context.state.domain.id }, id: menuButton.menu } }),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => MenuButton, { description: 'To modify MenuButton information' })\n async updateMenuButton(\n @Arg('id') id: string,\n @Arg('patch') patch: MenuButtonPatch,\n @Ctx() context: ResolverContext\n ): Promise<MenuButton> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(MenuButton)\n const menuButton = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['menu']\n })\n\n if (patch.menu) {\n patch.menu = (await tx.getRepository(Menu).findOneBy({ domain: { id: domain.id }, id: patch.menu })) as any\n }\n\n return await repository.save({\n ...menuButton,\n ...(patch as any),\n updater: user\n })\n }\n\n // @Directive('@transaction')\n // @Mutation(returns => [MenuButton], { description: \"To modify multiple MenuButtons' information\" })\n // async updateMultipleMenuButton(\n // @Arg('patches', type => [MenuButtonPatch]) patches: MenuButtonPatch[],\n // @Ctx() context: ResolverContext\n // ): Promise<MenuButton[]> {\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 menuButtonRepo = tx.getRepository(MenuButton)\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 menuButtonRepo.save({\n // ...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 menuButton = await menuButtonRepo.findOne(updateRecord.id)\n\n // const result = await menuButtonRepo.save({\n // ...menuButton,\n // ...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 => Boolean, { description: 'To delete MenuButton' })\n async deleteMenuButton(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(MenuButton).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple MenuButtons' })\n async deleteMenuButtons(\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(MenuButton).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 import multiple MenuButtons' })\n async importMenuButtons(\n @Arg('menuButtons', type => [MenuButtonPatch]) menuButtons: MenuButtonPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n menuButtons.map(async (menuButton: MenuButtonPatch) => {\n await tx.getRepository(MenuButton).save({ domain, ...(menuButton as any) })\n })\n )\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"menu-button-mutation.js","sourceRoot":"","sources":["../../../server/service/menu-button/menu-button-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Menu } from '../menu/menu'\nimport { MenuButton } from './menu-button'\nimport { MenuButtonPatch, NewMenuButton } from './menu-button-type'\n\n@Resolver(MenuButton)\nexport class MenuButtonMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => MenuButton, { description: 'To create new MenuButton' })\n async createMenuButton(\n @Arg('menuButton') menuButton: NewMenuButton,\n @Ctx() context: ResolverContext\n ): Promise<MenuButton> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(MenuButton).save({\n ...menuButton,\n menu: await tx\n .getRepository(Menu)\n .findOne({ where: { domain: { id: context.state.domain.id }, id: menuButton.menu } }),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => MenuButton, { description: 'To modify MenuButton information' })\n async updateMenuButton(\n @Arg('id') id: string,\n @Arg('patch') patch: MenuButtonPatch,\n @Ctx() context: ResolverContext\n ): Promise<MenuButton> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(MenuButton)\n const menuButton = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['menu']\n })\n\n if (patch.menu) {\n patch.menu = (await tx.getRepository(Menu).findOneBy({ domain: { id: domain.id }, id: patch.menu })) as any\n }\n\n return await repository.save({\n ...menuButton,\n ...(patch as any),\n updater: user\n })\n }\n\n // @Directive('@transaction')\n // @Mutation(returns => [MenuButton], { description: \"To modify multiple MenuButtons' information\" })\n // async updateMultipleMenuButton(\n // @Arg('patches', type => [MenuButtonPatch]) patches: MenuButtonPatch[],\n // @Ctx() context: ResolverContext\n // ): Promise<MenuButton[]> {\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 menuButtonRepo = tx.getRepository(MenuButton)\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 menuButtonRepo.save({\n // ...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 menuButton = await menuButtonRepo.findOne(updateRecord.id)\n\n // const result = await menuButtonRepo.save({\n // ...menuButton,\n // ...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: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete MenuButton' })\n async deleteMenuButton(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(MenuButton).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple MenuButtons' })\n async deleteMenuButtons(\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(MenuButton).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple MenuButtons' })\n async importMenuButtons(\n @Arg('menuButtons', type => [MenuButtonPatch]) menuButtons: MenuButtonPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n menuButtons.map(async (menuButton: MenuButtonPatch) => {\n await tx.getRepository(MenuButton).save({ domain, ...(menuButton as any) })\n })\n )\n\n return true\n }\n}\n"]}
@@ -97,6 +97,7 @@ let MenuColumnMutation = class MenuColumnMutation {
97
97
  exports.MenuColumnMutation = MenuColumnMutation;
98
98
  tslib_1.__decorate([
99
99
  (0, type_graphql_1.Directive)('@transaction'),
100
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
100
101
  (0, type_graphql_1.Mutation)(returns => menu_column_1.MenuColumn, { description: 'To create new MenuColumn' }),
101
102
  tslib_1.__param(0, (0, type_graphql_1.Arg)('menuColumn')),
102
103
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -106,6 +107,7 @@ tslib_1.__decorate([
106
107
  ], MenuColumnMutation.prototype, "createMenuColumn", null);
107
108
  tslib_1.__decorate([
108
109
  (0, type_graphql_1.Directive)('@transaction'),
110
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
109
111
  (0, type_graphql_1.Mutation)(returns => menu_column_1.MenuColumn, { description: 'To modify MenuColumn information' }),
110
112
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
111
113
  tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
@@ -116,6 +118,7 @@ tslib_1.__decorate([
116
118
  ], MenuColumnMutation.prototype, "updateMenuColumn", null);
117
119
  tslib_1.__decorate([
118
120
  (0, type_graphql_1.Directive)('@transaction'),
121
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
119
122
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete MenuColumn' }),
120
123
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
121
124
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -125,6 +128,7 @@ tslib_1.__decorate([
125
128
  ], MenuColumnMutation.prototype, "deleteMenuColumn", null);
126
129
  tslib_1.__decorate([
127
130
  (0, type_graphql_1.Directive)('@transaction'),
131
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
128
132
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple MenuColumns' }),
129
133
  tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
130
134
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -134,6 +138,7 @@ tslib_1.__decorate([
134
138
  ], MenuColumnMutation.prototype, "deleteMenuColumns", null);
135
139
  tslib_1.__decorate([
136
140
  (0, type_graphql_1.Directive)('@transaction'),
141
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
137
142
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple MenuColumns' }),
138
143
  tslib_1.__param(0, (0, type_graphql_1.Arg)('menuColumns', type => [menu_column_type_1.MenuColumnPatch])),
139
144
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -1 +1 @@
1
- {"version":3,"file":"menu-column-mutation.js","sourceRoot":"","sources":["../../../server/service/menu-column/menu-column-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Menu } from '../menu/menu'\nimport { MenuColumn } from './menu-column'\nimport { MenuColumnPatch, NewMenuColumn } from './menu-column-type'\n\n@Resolver(MenuColumn)\nexport class MenuColumnMutation {\n @Directive('@transaction')\n @Mutation(returns => MenuColumn, { description: 'To create new MenuColumn' })\n async createMenuColumn(\n @Arg('menuColumn') menuColumn: NewMenuColumn,\n @Ctx() context: ResolverContext\n ): Promise<MenuColumn> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(MenuColumn).save({\n ...menuColumn,\n menu: await tx.getRepository(Menu).findOne({ where: { domain: { id: domain.id }, name: menuColumn.menu } }),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => MenuColumn, { description: 'To modify MenuColumn information' })\n async updateMenuColumn(\n @Arg('id') id: string,\n @Arg('patch') patch: MenuColumnPatch,\n @Ctx() context: ResolverContext\n ): Promise<MenuColumn> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(MenuColumn)\n\n const menuColumn = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['menu']\n })\n\n if (patch.menu) {\n patch.menu = (await tx.getRepository(Menu).findOne({\n where: { domain: { id: domain.id }, id: patch.menu }\n })) as any\n }\n\n return await repository.save({\n ...menuColumn,\n ...(patch as any),\n updater: user\n })\n }\n\n // @Directive('@transaction')\n // @Mutation(returns => [MenuColumn], { description: \"To modify multiple MenuColumns' information\" })\n // async updateMultipleMenuColumn(\n // @Arg('patches', type => [MenuColumnPatch]) patches: MenuColumnPatch[],\n // @Ctx() context: ResolverContext\n // ): Promise<MenuColumn[]> {\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 menuColumnRepo = tx.getRepository(MenuColumn)\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 menuColumnRepo.save({\n // ...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 newRecord = _updateRecords[i]\n // const menuColumn = await menuColumnRepo.findOneBy({ id: newRecord.id })\n\n // const result = await menuColumnRepo.save({\n // ...menuColumn,\n // ...newRecord,\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 => Boolean, { description: 'To delete MenuColumn' })\n async deleteMenuColumn(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(MenuColumn).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple MenuColumns' })\n async deleteMenuColumns(\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(MenuColumn).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 import multiple MenuColumns' })\n async importMenuColumns(\n @Arg('menuColumns', type => [MenuColumnPatch]) menuColumns: MenuColumnPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n menuColumns.map(async (menuColumn: MenuColumnPatch) => {\n await tx.getRepository(MenuColumn).save({ domain, ...(menuColumn as any) })\n })\n )\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"menu-column-mutation.js","sourceRoot":"","sources":["../../../server/service/menu-column/menu-column-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Menu } from '../menu/menu'\nimport { MenuColumn } from './menu-column'\nimport { MenuColumnPatch, NewMenuColumn } from './menu-column-type'\n\n@Resolver(MenuColumn)\nexport class MenuColumnMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => MenuColumn, { description: 'To create new MenuColumn' })\n async createMenuColumn(\n @Arg('menuColumn') menuColumn: NewMenuColumn,\n @Ctx() context: ResolverContext\n ): Promise<MenuColumn> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(MenuColumn).save({\n ...menuColumn,\n menu: await tx.getRepository(Menu).findOne({ where: { domain: { id: domain.id }, name: menuColumn.menu } }),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => MenuColumn, { description: 'To modify MenuColumn information' })\n async updateMenuColumn(\n @Arg('id') id: string,\n @Arg('patch') patch: MenuColumnPatch,\n @Ctx() context: ResolverContext\n ): Promise<MenuColumn> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(MenuColumn)\n\n const menuColumn = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['menu']\n })\n\n if (patch.menu) {\n patch.menu = (await tx.getRepository(Menu).findOne({\n where: { domain: { id: domain.id }, id: patch.menu }\n })) as any\n }\n\n return await repository.save({\n ...menuColumn,\n ...(patch as any),\n updater: user\n })\n }\n\n // @Directive('@transaction')\n // @Mutation(returns => [MenuColumn], { description: \"To modify multiple MenuColumns' information\" })\n // async updateMultipleMenuColumn(\n // @Arg('patches', type => [MenuColumnPatch]) patches: MenuColumnPatch[],\n // @Ctx() context: ResolverContext\n // ): Promise<MenuColumn[]> {\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 menuColumnRepo = tx.getRepository(MenuColumn)\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 menuColumnRepo.save({\n // ...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 newRecord = _updateRecords[i]\n // const menuColumn = await menuColumnRepo.findOneBy({ id: newRecord.id })\n\n // const result = await menuColumnRepo.save({\n // ...menuColumn,\n // ...newRecord,\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: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete MenuColumn' })\n async deleteMenuColumn(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(MenuColumn).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple MenuColumns' })\n async deleteMenuColumns(\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(MenuColumn).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple MenuColumns' })\n async importMenuColumns(\n @Arg('menuColumns', type => [MenuColumnPatch]) menuColumns: MenuColumnPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n menuColumns.map(async (menuColumn: MenuColumnPatch) => {\n await tx.getRepository(MenuColumn).save({ domain, ...(menuColumn as any) })\n })\n )\n\n return true\n }\n}\n"]}
@@ -97,6 +97,7 @@ let MenuDetailMutation = class MenuDetailMutation {
97
97
  exports.MenuDetailMutation = MenuDetailMutation;
98
98
  tslib_1.__decorate([
99
99
  (0, type_graphql_1.Directive)('@transaction'),
100
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
100
101
  (0, type_graphql_1.Mutation)(returns => menu_detail_1.MenuDetail, { description: 'To create new MenuDetail' }),
101
102
  tslib_1.__param(0, (0, type_graphql_1.Arg)('menuDetail')),
102
103
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -106,6 +107,7 @@ tslib_1.__decorate([
106
107
  ], MenuDetailMutation.prototype, "createMenuDetail", null);
107
108
  tslib_1.__decorate([
108
109
  (0, type_graphql_1.Directive)('@transaction'),
110
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
109
111
  (0, type_graphql_1.Mutation)(returns => menu_detail_1.MenuDetail, { description: 'To modify MenuDetail information' }),
110
112
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
111
113
  tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
@@ -116,6 +118,7 @@ tslib_1.__decorate([
116
118
  ], MenuDetailMutation.prototype, "updateMenuDetail", null);
117
119
  tslib_1.__decorate([
118
120
  (0, type_graphql_1.Directive)('@transaction'),
121
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
119
122
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete MenuDetail' }),
120
123
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
121
124
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -125,6 +128,7 @@ tslib_1.__decorate([
125
128
  ], MenuDetailMutation.prototype, "deleteMenuDetail", null);
126
129
  tslib_1.__decorate([
127
130
  (0, type_graphql_1.Directive)('@transaction'),
131
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
128
132
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple MenuDetails' }),
129
133
  tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
130
134
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -134,6 +138,7 @@ tslib_1.__decorate([
134
138
  ], MenuDetailMutation.prototype, "deleteMenuDetails", null);
135
139
  tslib_1.__decorate([
136
140
  (0, type_graphql_1.Directive)('@transaction'),
141
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
137
142
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple MenuDetails' }),
138
143
  tslib_1.__param(0, (0, type_graphql_1.Arg)('menuDetails', type => [menu_detail_type_1.MenuDetailPatch])),
139
144
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -1 +1 @@
1
- {"version":3,"file":"menu-detail-mutation.js","sourceRoot":"","sources":["../../../server/service/menu-detail/menu-detail-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Menu } from '../menu/menu'\nimport { MenuDetail } from './menu-detail'\nimport { MenuDetailPatch, NewMenuDetail } from './menu-detail-type'\n\n@Resolver(MenuDetail)\nexport class MenuDetailMutation {\n @Directive('@transaction')\n @Mutation(returns => MenuDetail, { description: 'To create new MenuDetail' })\n async createMenuDetail(\n @Arg('menuDetail') menuDetail: NewMenuDetail,\n @Ctx() context: ResolverContext\n ): Promise<MenuDetail> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(MenuDetail).save({\n ...(menuDetail as any),\n menu: await tx.getRepository(Menu).findOne({ where: { domain: { id: domain.id }, id: menuDetail.menu } }),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => MenuDetail, { description: 'To modify MenuDetail information' })\n async updateMenuDetail(\n @Arg('id') id: string,\n @Arg('patch') patch: MenuDetailPatch,\n @Ctx() context: ResolverContext\n ): Promise<MenuDetail> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(MenuDetail)\n const menuDetail = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['menu']\n })\n\n if (patch.menu) {\n patch.menu = (await tx.getRepository(Menu).findOne({\n where: { domain: { id: domain.id }, id: menuDetail.menu.id }\n })) as any\n }\n\n return await repository.save({\n ...menuDetail,\n ...(patch as any),\n updater: user\n })\n }\n\n // @Directive('@transaction')\n // @Mutation(returns => [MenuDetail], { description: \"To modify multiple MenuDetails' information\" })\n // async updateMultipleMenuDetail(\n // @Arg('patches', type => [MenuDetailPatch]) patches: MenuDetailPatch[],\n // @Ctx() context: ResolverContext\n // ): Promise<MenuDetail[]> {\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 menuDetailRepo = tx.getRepository(MenuDetail)\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 menuDetailRepo.save({\n // ...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 newRecord = _updateRecords[i]\n // const menuDetail = await menuDetailRepo.findOneBy({ id: newRecord.id })\n\n // const result = await menuDetailRepo.save({\n // ...menuDetail,\n // ...newRecord,\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 => Boolean, { description: 'To delete MenuDetail' })\n async deleteMenuDetail(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(MenuDetail).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple MenuDetails' })\n async deleteMenuDetails(\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(MenuDetail).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 import multiple MenuDetails' })\n async importMenuDetails(\n @Arg('menuDetails', type => [MenuDetailPatch]) menuDetails: MenuDetailPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n menuDetails.map(async (menuDetail: MenuDetailPatch) => {\n await tx.getRepository(MenuDetail).save({ domain, ...(menuDetail as any) })\n })\n )\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"menu-detail-mutation.js","sourceRoot":"","sources":["../../../server/service/menu-detail/menu-detail-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAE5B,uCAAmC;AACnC,+CAA0C;AAC1C,yDAAmE;AAG5D,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAIvB,AAAN,KAAK,CAAC,gBAAgB,CACD,UAAyB,EACrC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAU,CAAC,CAAC,IAAI,CAAC;YAC7C,GAAI,UAAkB;YACtB,IAAI,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACzG,MAAM;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;IAKK,AAAN,KAAK,CAAC,gBAAgB,CACT,EAAU,EACP,KAAsB,EAC7B,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAU,CAAC,CAAA;QAC/C,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;YACxC,SAAS,EAAE,CAAC,MAAM,CAAC;SACpB,CAAC,CAAA;QAEF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAC,OAAO,CAAC;gBACjD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE;aAC7D,CAAC,CAAQ,CAAA;QACZ,CAAC;QAED,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;YAC3B,GAAG,UAAU;YACb,GAAI,KAAa;YACjB,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;IAED,6BAA6B;IAC7B,qGAAqG;IACrG,kCAAkC;IAClC,2EAA2E;IAC3E,oCAAoC;IACpC,6BAA6B;IAC7B,+CAA+C;IAE/C,qBAAqB;IACrB,8FAA8F;IAC9F,8FAA8F;IAC9F,wDAAwD;IAExD,qCAAqC;IACrC,wDAAwD;IACxD,4CAA4C;IAE5C,mDAAmD;IACnD,wBAAwB;IACxB,kBAAkB;IAClB,yBAAyB;IACzB,wBAAwB;IACxB,WAAW;IAEX,iDAAiD;IACjD,QAAQ;IACR,MAAM;IAEN,qCAAqC;IACrC,wDAAwD;IACxD,4CAA4C;IAC5C,gFAAgF;IAEhF,mDAAmD;IACnD,yBAAyB;IACzB,wBAAwB;IACxB,wBAAwB;IACxB,WAAW;IAEX,iDAAiD;IACjD,QAAQ;IACR,MAAM;IAEN,mBAAmB;IACnB,IAAI;IAKE,AAAN,KAAK,CAAC,gBAAgB,CAAY,EAAU,EAAS,OAAwB;QAC3E,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAU,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAC5E,OAAO,IAAI,CAAA;IACb,CAAC;IAKK,AAAN,KAAK,CAAC,iBAAiB,CACS,GAAa,EACpC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAU,CAAC,CAAC,MAAM,CAAC;YACxC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAKK,AAAN,KAAK,CAAC,iBAAiB,CAC0B,WAA8B,EACtE,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,OAAO,CAAC,GAAG,CACf,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAA2B,EAAE,EAAE;YACpD,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAU,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAI,UAAkB,EAAE,CAAC,CAAA;QAC7E,CAAC,CAAC,CACH,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA1IY,gDAAkB;AAIvB;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,+EAA+E,CAAC;IAC1F,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,wBAAU,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAE1E,mBAAA,IAAA,kBAAG,EAAC,YAAY,CAAC,CAAA;IACjB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CADyB,gCAAa;;0DAY7C;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,+EAA+E,CAAC;IAC1F,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,wBAAU,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IAElF,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IACZ,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADe,kCAAe;;0DAsBrC;AAmDK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,+EAA+E,CAAC;IAC1F,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;IAC9C,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;0DAKnD;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,+EAA+E,CAAC;IAC1F,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAE7E,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;2DAUP;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,+EAA+E,CAAC;IAC1F,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAE7E,mBAAA,IAAA,kBAAG,EAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,kCAAe,CAAC,CAAC,CAAA;IAC7C,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;2DAWP;6BAzIU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,wBAAU,CAAC;GACR,kBAAkB,CA0I9B","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Menu } from '../menu/menu'\nimport { MenuDetail } from './menu-detail'\nimport { MenuDetailPatch, NewMenuDetail } from './menu-detail-type'\n\n@Resolver(MenuDetail)\nexport class MenuDetailMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => MenuDetail, { description: 'To create new MenuDetail' })\n async createMenuDetail(\n @Arg('menuDetail') menuDetail: NewMenuDetail,\n @Ctx() context: ResolverContext\n ): Promise<MenuDetail> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(MenuDetail).save({\n ...(menuDetail as any),\n menu: await tx.getRepository(Menu).findOne({ where: { domain: { id: domain.id }, id: menuDetail.menu } }),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => MenuDetail, { description: 'To modify MenuDetail information' })\n async updateMenuDetail(\n @Arg('id') id: string,\n @Arg('patch') patch: MenuDetailPatch,\n @Ctx() context: ResolverContext\n ): Promise<MenuDetail> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(MenuDetail)\n const menuDetail = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['menu']\n })\n\n if (patch.menu) {\n patch.menu = (await tx.getRepository(Menu).findOne({\n where: { domain: { id: domain.id }, id: menuDetail.menu.id }\n })) as any\n }\n\n return await repository.save({\n ...menuDetail,\n ...(patch as any),\n updater: user\n })\n }\n\n // @Directive('@transaction')\n // @Mutation(returns => [MenuDetail], { description: \"To modify multiple MenuDetails' information\" })\n // async updateMultipleMenuDetail(\n // @Arg('patches', type => [MenuDetailPatch]) patches: MenuDetailPatch[],\n // @Ctx() context: ResolverContext\n // ): Promise<MenuDetail[]> {\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 menuDetailRepo = tx.getRepository(MenuDetail)\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 menuDetailRepo.save({\n // ...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 newRecord = _updateRecords[i]\n // const menuDetail = await menuDetailRepo.findOneBy({ id: newRecord.id })\n\n // const result = await menuDetailRepo.save({\n // ...menuDetail,\n // ...newRecord,\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: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete MenuDetail' })\n async deleteMenuDetail(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(MenuDetail).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple MenuDetails' })\n async deleteMenuDetails(\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(MenuDetail).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"menu\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple MenuDetails' })\n async importMenuDetails(\n @Arg('menuDetails', type => [MenuDetailPatch]) menuDetails: MenuDetailPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n menuDetails.map(async (menuDetail: MenuDetailPatch) => {\n await tx.getRepository(MenuDetail).save({ domain, ...(menuDetail as any) })\n })\n )\n\n return true\n }\n}\n"]}
@@ -97,6 +97,7 @@ let MenuDetailButtonMutation = class MenuDetailButtonMutation {
97
97
  exports.MenuDetailButtonMutation = MenuDetailButtonMutation;
98
98
  tslib_1.__decorate([
99
99
  (0, type_graphql_1.Directive)('@transaction'),
100
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
100
101
  (0, type_graphql_1.Mutation)(returns => menu_detail_button_1.MenuDetailButton, { description: 'To create new MenuDetailButton' }),
101
102
  tslib_1.__param(0, (0, type_graphql_1.Arg)('menuDetailButton')),
102
103
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -106,6 +107,7 @@ tslib_1.__decorate([
106
107
  ], MenuDetailButtonMutation.prototype, "createMenuDetailButton", null);
107
108
  tslib_1.__decorate([
108
109
  (0, type_graphql_1.Directive)('@transaction'),
110
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
109
111
  (0, type_graphql_1.Mutation)(returns => menu_detail_button_1.MenuDetailButton, { description: 'To modify MenuDetailButton information' }),
110
112
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
111
113
  tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
@@ -116,6 +118,7 @@ tslib_1.__decorate([
116
118
  ], MenuDetailButtonMutation.prototype, "updateMenuDetailButton", null);
117
119
  tslib_1.__decorate([
118
120
  (0, type_graphql_1.Directive)('@transaction'),
121
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
119
122
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete MenuDetailButton' }),
120
123
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
121
124
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -125,6 +128,7 @@ tslib_1.__decorate([
125
128
  ], MenuDetailButtonMutation.prototype, "deleteMenuDetailButton", null);
126
129
  tslib_1.__decorate([
127
130
  (0, type_graphql_1.Directive)('@transaction'),
131
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
128
132
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple MenuDetailButtons' }),
129
133
  tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
130
134
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -134,6 +138,7 @@ tslib_1.__decorate([
134
138
  ], MenuDetailButtonMutation.prototype, "deleteMenuDetailButtons", null);
135
139
  tslib_1.__decorate([
136
140
  (0, type_graphql_1.Directive)('@transaction'),
141
+ (0, type_graphql_1.Directive)('@privilege(category: "menu", privilege: "mutation", domainOwnerGranted: true)'),
137
142
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple MenuDetailButtons' }),
138
143
  tslib_1.__param(0, (0, type_graphql_1.Arg)('menuDetailButtons', type => [menu_detail_button_type_1.MenuDetailButtonPatch])),
139
144
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),