@things-factory/menu-base 5.0.0-zeta.8 → 5.0.1

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 (170) hide show
  1. package/dist-server/index.js +1 -2
  2. package/dist-server/index.js.map +1 -1
  3. package/dist-server/service/index.js +52 -0
  4. package/dist-server/service/index.js.map +1 -0
  5. package/dist-server/service/menu/index.js +9 -0
  6. package/dist-server/service/menu/index.js.map +1 -0
  7. package/dist-server/service/menu/menu-mutation.js +238 -0
  8. package/dist-server/service/menu/menu-mutation.js.map +1 -0
  9. package/dist-server/service/menu/menu-query.js +238 -0
  10. package/dist-server/service/menu/menu-query.js.map +1 -0
  11. package/dist-server/service/menu/menu-type.js +275 -0
  12. package/dist-server/service/menu/menu-type.js.map +1 -0
  13. package/dist-server/service/menu/menu.js +229 -0
  14. package/dist-server/service/menu/menu.js.map +1 -0
  15. package/dist-server/service/menu-button/index.js +9 -0
  16. package/dist-server/service/menu-button/index.js.map +1 -0
  17. package/dist-server/service/menu-button/menu-button-mutation.js +146 -0
  18. package/dist-server/service/menu-button/menu-button-mutation.js.map +1 -0
  19. package/dist-server/service/menu-button/menu-button-query.js +103 -0
  20. package/dist-server/service/menu-button/menu-button-query.js.map +1 -0
  21. package/dist-server/service/menu-button/menu-button-type.js +97 -0
  22. package/dist-server/service/menu-button/menu-button-type.js.map +1 -0
  23. package/dist-server/service/menu-button/menu-button.js +109 -0
  24. package/dist-server/service/menu-button/menu-button.js.map +1 -0
  25. package/dist-server/service/menu-column/index.js +9 -0
  26. package/dist-server/service/menu-column/index.js.map +1 -0
  27. package/dist-server/service/menu-column/menu-column-mutation.js +148 -0
  28. package/dist-server/service/menu-column/menu-column-mutation.js.map +1 -0
  29. package/dist-server/service/menu-column/menu-column-query.js +103 -0
  30. package/dist-server/service/menu-column/menu-column-query.js.map +1 -0
  31. package/dist-server/service/menu-column/menu-column-type.js +321 -0
  32. package/dist-server/service/menu-column/menu-column-type.js.map +1 -0
  33. package/dist-server/service/menu-column/menu-column.js +255 -0
  34. package/dist-server/service/menu-column/menu-column.js.map +1 -0
  35. package/dist-server/service/menu-detail/index.js +9 -0
  36. package/dist-server/service/menu-detail/index.js.map +1 -0
  37. package/dist-server/service/menu-detail/menu-detail-mutation.js +148 -0
  38. package/dist-server/service/menu-detail/menu-detail-mutation.js.map +1 -0
  39. package/dist-server/service/menu-detail/menu-detail-query.js +129 -0
  40. package/dist-server/service/menu-detail/menu-detail-query.js.map +1 -0
  41. package/dist-server/service/menu-detail/menu-detail-type.js +137 -0
  42. package/dist-server/service/menu-detail/menu-detail-type.js.map +1 -0
  43. package/dist-server/service/menu-detail/menu-detail.js +136 -0
  44. package/dist-server/service/menu-detail/menu-detail.js.map +1 -0
  45. package/dist-server/service/menu-detail-button/index.js +9 -0
  46. package/dist-server/service/menu-detail-button/index.js.map +1 -0
  47. package/dist-server/service/menu-detail-button/menu-detail-button-mutation.js +148 -0
  48. package/dist-server/service/menu-detail-button/menu-detail-button-mutation.js.map +1 -0
  49. package/dist-server/service/menu-detail-button/menu-detail-button-query.js +103 -0
  50. package/dist-server/service/menu-detail-button/menu-detail-button-query.js.map +1 -0
  51. package/dist-server/service/menu-detail-button/menu-detail-button-type.js +89 -0
  52. package/dist-server/service/menu-detail-button/menu-detail-button-type.js.map +1 -0
  53. package/dist-server/service/menu-detail-button/menu-detail-button.js +104 -0
  54. package/dist-server/service/menu-detail-button/menu-detail-button.js.map +1 -0
  55. package/dist-server/service/menu-detail-column/index.js +9 -0
  56. package/dist-server/service/menu-detail-column/index.js.map +1 -0
  57. package/dist-server/service/menu-detail-column/menu-detail-column-mutation.js +150 -0
  58. package/dist-server/service/menu-detail-column/menu-detail-column-mutation.js.map +1 -0
  59. package/dist-server/service/menu-detail-column/menu-detail-column-query.js +103 -0
  60. package/dist-server/service/menu-detail-column/menu-detail-column-query.js.map +1 -0
  61. package/dist-server/service/menu-detail-column/menu-detail-column-type.js +321 -0
  62. package/dist-server/service/menu-detail-column/menu-detail-column-type.js.map +1 -0
  63. package/dist-server/service/menu-detail-column/menu-detail-column.js +252 -0
  64. package/dist-server/service/menu-detail-column/menu-detail-column.js.map +1 -0
  65. package/package.json +3 -3
  66. package/server/index.ts +1 -2
  67. package/server/service/index.ts +38 -0
  68. package/server/service/menu/index.ts +6 -0
  69. package/server/service/menu/menu-mutation.ts +234 -0
  70. package/server/service/menu/menu-query.ts +185 -0
  71. package/server/service/menu/menu-type.ts +78 -0
  72. package/server/service/menu/menu.ts +183 -0
  73. package/server/service/menu-button/index.ts +6 -0
  74. package/server/service/menu-button/menu-button-mutation.ts +134 -0
  75. package/server/service/menu-button/menu-button-query.ts +57 -0
  76. package/server/service/menu-button/menu-button-type.ts +31 -0
  77. package/server/service/menu-button/menu-button.ts +86 -0
  78. package/server/service/menu-column/index.ts +6 -0
  79. package/server/service/menu-column/menu-column-mutation.ts +137 -0
  80. package/server/service/menu-column/menu-column-query.ts +57 -0
  81. package/server/service/menu-column/menu-column-type.ts +92 -0
  82. package/server/service/menu-column/menu-column.ts +200 -0
  83. package/server/service/menu-detail/index.ts +6 -0
  84. package/server/service/menu-detail/menu-detail-mutation.ts +136 -0
  85. package/server/service/menu-detail/menu-detail-query.ts +73 -0
  86. package/server/service/menu-detail/menu-detail-type.ts +46 -0
  87. package/server/service/menu-detail/menu-detail.ts +111 -0
  88. package/server/service/menu-detail-button/index.ts +6 -0
  89. package/server/service/menu-detail-button/menu-detail-button-mutation.ts +140 -0
  90. package/server/service/menu-detail-button/menu-detail-button-query.ts +57 -0
  91. package/server/service/menu-detail-button/menu-detail-button-type.ts +34 -0
  92. package/server/service/menu-detail-button/menu-detail-button.ts +86 -0
  93. package/server/service/menu-detail-column/index.ts +6 -0
  94. package/server/service/menu-detail-column/menu-detail-column-mutation.ts +142 -0
  95. package/server/service/menu-detail-column/menu-detail-column-query.ts +57 -0
  96. package/server/service/menu-detail-column/menu-detail-column-type.ts +92 -0
  97. package/server/service/menu-detail-column/menu-detail-column.ts +205 -0
  98. package/server/entities/index.ts +0 -11
  99. package/server/entities/menu-button.ts +0 -62
  100. package/server/entities/menu-column.ts +0 -200
  101. package/server/entities/menu-detail-button.ts +0 -61
  102. package/server/entities/menu-detail-column.ts +0 -207
  103. package/server/entities/menu-detail.ts +0 -94
  104. package/server/entities/menu.ts +0 -178
  105. package/server/graphql/index.ts +0 -9
  106. package/server/graphql/resolvers/index.ts +0 -6
  107. package/server/graphql/resolvers/menu/create-menu.ts +0 -29
  108. package/server/graphql/resolvers/menu/delete-menu.ts +0 -13
  109. package/server/graphql/resolvers/menu/delete-menus.ts +0 -13
  110. package/server/graphql/resolvers/menu/index.ts +0 -21
  111. package/server/graphql/resolvers/menu/menu-query.ts +0 -80
  112. package/server/graphql/resolvers/menu/update-menu.ts +0 -42
  113. package/server/graphql/resolvers/menu/update-multiple-menu.ts +0 -33
  114. package/server/graphql/resolvers/menu/update-role-menu.ts +0 -84
  115. package/server/graphql/resolvers/menu-button/create-menu-button.ts +0 -14
  116. package/server/graphql/resolvers/menu-button/delete-menu-button.ts +0 -8
  117. package/server/graphql/resolvers/menu-button/index.ts +0 -14
  118. package/server/graphql/resolvers/menu-button/menu-button-query.ts +0 -30
  119. package/server/graphql/resolvers/menu-button/update-menu-button.ts +0 -22
  120. package/server/graphql/resolvers/menu-column/create-menu-column.ts +0 -14
  121. package/server/graphql/resolvers/menu-column/delete-menu-column.ts +0 -8
  122. package/server/graphql/resolvers/menu-column/index.ts +0 -14
  123. package/server/graphql/resolvers/menu-column/menu-column-query.ts +0 -30
  124. package/server/graphql/resolvers/menu-column/update-menu-column.ts +0 -26
  125. package/server/graphql/resolvers/menu-detail/create-menu-detail.ts +0 -14
  126. package/server/graphql/resolvers/menu-detail/delete-menu-detail.ts +0 -8
  127. package/server/graphql/resolvers/menu-detail/index.ts +0 -15
  128. package/server/graphql/resolvers/menu-detail/menu-detail-query.ts +0 -38
  129. package/server/graphql/resolvers/menu-detail/update-menu-detail.ts +0 -24
  130. package/server/graphql/resolvers/menu-detail-button/create-menu-detail-button.ts +0 -16
  131. package/server/graphql/resolvers/menu-detail-button/delete-menu-detail-button.ts +0 -8
  132. package/server/graphql/resolvers/menu-detail-button/index.ts +0 -15
  133. package/server/graphql/resolvers/menu-detail-button/menu-detail-button-query.ts +0 -32
  134. package/server/graphql/resolvers/menu-detail-button/update-menu-detail-button.ts +0 -23
  135. package/server/graphql/resolvers/menu-detail-column/create-menu-detail-column.ts +0 -14
  136. package/server/graphql/resolvers/menu-detail-column/delete-menu-detail-column.ts +0 -8
  137. package/server/graphql/resolvers/menu-detail-column/index.ts +0 -15
  138. package/server/graphql/resolvers/menu-detail-column/menu-detail-column-query.ts +0 -32
  139. package/server/graphql/resolvers/menu-detail-column/update-menu-detail-column.ts +0 -25
  140. package/server/graphql/types/index.ts +0 -6
  141. package/server/graphql/types/menu/index.ts +0 -25
  142. package/server/graphql/types/menu/menu-list.ts +0 -8
  143. package/server/graphql/types/menu/menu-patch.ts +0 -36
  144. package/server/graphql/types/menu/menu.ts +0 -40
  145. package/server/graphql/types/menu/new-menu.ts +0 -33
  146. package/server/graphql/types/menu-button/index.ts +0 -19
  147. package/server/graphql/types/menu-button/menu-button-list.ts +0 -8
  148. package/server/graphql/types/menu-button/menu-button-patch.ts +0 -13
  149. package/server/graphql/types/menu-button/menu-button.ts +0 -19
  150. package/server/graphql/types/menu-button/new-menu-button.ts +0 -13
  151. package/server/graphql/types/menu-column/index.ts +0 -19
  152. package/server/graphql/types/menu-column/menu-column-list.ts +0 -8
  153. package/server/graphql/types/menu-column/menu-column-patch.ts +0 -41
  154. package/server/graphql/types/menu-column/menu-column.ts +0 -47
  155. package/server/graphql/types/menu-column/new-menu-column.ts +0 -41
  156. package/server/graphql/types/menu-detail/index.ts +0 -19
  157. package/server/graphql/types/menu-detail/menu-detail-list.ts +0 -8
  158. package/server/graphql/types/menu-detail/menu-detail-patch.ts +0 -18
  159. package/server/graphql/types/menu-detail/menu-detail.ts +0 -22
  160. package/server/graphql/types/menu-detail/new-menu-detail.ts +0 -18
  161. package/server/graphql/types/menu-detail-button/index.ts +0 -19
  162. package/server/graphql/types/menu-detail-button/menu-detail-button-list.ts +0 -8
  163. package/server/graphql/types/menu-detail-button/menu-detail-button-patch.ts +0 -12
  164. package/server/graphql/types/menu-detail-button/menu-detail-button.ts +0 -18
  165. package/server/graphql/types/menu-detail-button/new-menu-detail-button.ts +0 -12
  166. package/server/graphql/types/menu-detail-column/index.ts +0 -19
  167. package/server/graphql/types/menu-detail-column/menu-detail-column-list.ts +0 -8
  168. package/server/graphql/types/menu-detail-column/menu-detail-column-patch.ts +0 -41
  169. package/server/graphql/types/menu-detail-column/menu-detail-column.ts +0 -47
  170. package/server/graphql/types/menu-detail-column/new-menu-detail-column.ts +0 -41
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./entities"), exports);
18
17
  __exportStar(require("./migrations"), exports);
19
- __exportStar(require("./graphql"), exports);
18
+ __exportStar(require("./service"), exports);
20
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,+CAA4B;AAC5B,4CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,4CAAyB"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.schema = exports.entities = void 0;
18
+ /* EXPORT ENTITY TYPES */
19
+ __exportStar(require("./menu-detail-column/menu-detail-column"), exports);
20
+ __exportStar(require("./menu-detail-button/menu-detail-button"), exports);
21
+ __exportStar(require("./menu-column/menu-column"), exports);
22
+ __exportStar(require("./menu-button/menu-button"), exports);
23
+ __exportStar(require("./menu-detail/menu-detail"), exports);
24
+ __exportStar(require("./menu/menu"), exports);
25
+ /* IMPORT ENTITIES AND RESOLVERS */
26
+ const menu_detail_column_1 = require("./menu-detail-column");
27
+ const menu_detail_button_1 = require("./menu-detail-button");
28
+ const menu_column_1 = require("./menu-column");
29
+ const menu_button_1 = require("./menu-button");
30
+ const menu_detail_1 = require("./menu-detail");
31
+ const menu_1 = require("./menu");
32
+ exports.entities = [
33
+ /* ENTITIES */
34
+ ...menu_detail_column_1.entities,
35
+ ...menu_detail_button_1.entities,
36
+ ...menu_column_1.entities,
37
+ ...menu_button_1.entities,
38
+ ...menu_detail_1.entities,
39
+ ...menu_1.entities,
40
+ ];
41
+ exports.schema = {
42
+ resolverClasses: [
43
+ /* RESOLVER CLASSES */
44
+ ...menu_detail_column_1.resolvers,
45
+ ...menu_detail_button_1.resolvers,
46
+ ...menu_column_1.resolvers,
47
+ ...menu_button_1.resolvers,
48
+ ...menu_detail_1.resolvers,
49
+ ...menu_1.resolvers,
50
+ ]
51
+ };
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yBAAyB;AACzB,0EAAuD;AACvD,0EAAuD;AACvD,4DAAyC;AACzC,4DAAyC;AACzC,4DAAyC;AACzC,8CAA2B;AAE3B,mCAAmC;AACnC,6DAAmH;AACnH,6DAAmH;AACnH,+CAAgG;AAChG,+CAAgG;AAChG,+CAAgG;AAChG,iCAA6E;AAEhE,QAAA,QAAQ,GAAG;IACtB,cAAc;IACf,GAAG,6BAAwB;IAC3B,GAAG,6BAAwB;IAC3B,GAAG,sBAAkB;IACrB,GAAG,sBAAkB;IACrB,GAAG,sBAAkB;IACrB,GAAG,eAAY;CACf,CAAA;AAGY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACxB,GAAG,8BAAyB;QAC5B,GAAG,8BAAyB;QAC5B,GAAG,uBAAmB;QACtB,GAAG,uBAAmB;QACtB,GAAG,uBAAmB;QACtB,GAAG,gBAAa;KACf;CACF,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvers = exports.entities = void 0;
4
+ const menu_1 = require("./menu");
5
+ const menu_query_1 = require("./menu-query");
6
+ const menu_mutation_1 = require("./menu-mutation");
7
+ exports.entities = [menu_1.Menu];
8
+ exports.resolvers = [menu_query_1.MenuQuery, menu_mutation_1.MenuMutation];
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/menu/index.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,6CAAwC;AACxC,mDAA8C;AAEjC,QAAA,QAAQ,GAAG,CAAC,WAAI,CAAC,CAAA;AACjB,QAAA,SAAS,GAAG,CAAC,sBAAS,EAAE,4BAAY,CAAC,CAAA"}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MenuMutation = void 0;
16
+ const type_graphql_1 = require("type-graphql");
17
+ const typeorm_1 = require("typeorm");
18
+ const auth_base_1 = require("@things-factory/auth-base");
19
+ const menu_1 = require("./menu");
20
+ const menu_type_1 = require("./menu-type");
21
+ async function appendRoleToMenu(roleRepo, roles, targetRole) {
22
+ let roleIds = roles.map(role => role.id);
23
+ roleIds = Array.from(new Set([...roleIds, targetRole.id]));
24
+ return await roleRepo.findByIds(roleIds);
25
+ }
26
+ function removeRoleToMenu(roles, targetRole) {
27
+ return roles.filter(role => targetRole.id !== role.id);
28
+ }
29
+ let MenuMutation = class MenuMutation {
30
+ async createMenu(menu, context) {
31
+ var _a;
32
+ const { domain, user, tx } = context.state;
33
+ const menuRepo = tx === null || tx === void 0 ? void 0 : tx.getRepository(menu_1.Menu);
34
+ if ((_a = menu === null || menu === void 0 ? void 0 : menu.parent) === null || _a === void 0 ? void 0 : _a.id) {
35
+ menu.parent = await menuRepo.findOne({
36
+ domain,
37
+ id: menu.parent.id
38
+ });
39
+ }
40
+ return await tx.getRepository(menu_1.Menu).save(Object.assign(Object.assign({}, menu), { domain, creator: user, updater: user }));
41
+ }
42
+ async updateMenu(id, patch, context) {
43
+ var _a, _b;
44
+ const { domain, user, tx } = context.state;
45
+ const menuRepo = tx.getRepository(menu_1.Menu);
46
+ const menu = await menuRepo.findOne({
47
+ where: { domain, id },
48
+ relations: ['children', 'parent']
49
+ });
50
+ if ((_a = patch === null || patch === void 0 ? void 0 : patch.parent) === null || _a === void 0 ? void 0 : _a.id) {
51
+ patch.parent = await menuRepo.findOne(patch.parent.id);
52
+ }
53
+ if ((_b = patch === null || patch === void 0 ? void 0 : patch.children) === null || _b === void 0 ? void 0 : _b.length) {
54
+ const childrenIds = patch.children.map((children) => children.id);
55
+ patch.children = await menuRepo.findByIds(childrenIds);
56
+ }
57
+ return await menuRepo.save(Object.assign(Object.assign(Object.assign({}, menu), patch), { updater: user }));
58
+ }
59
+ async updateMultipleMenu(patches, context) {
60
+ var _a, _b, _c;
61
+ const { domain, user, tx } = context.state;
62
+ let results = [];
63
+ const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
64
+ const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
65
+ const menuRepo = tx.getRepository(menu_1.Menu);
66
+ if (_createRecords.length > 0) {
67
+ for (let i = 0; i < _createRecords.length; i++) {
68
+ const newRecord = _createRecords[i];
69
+ if ((_a = newRecord === null || newRecord === void 0 ? void 0 : newRecord.parent) === null || _a === void 0 ? void 0 : _a.id) {
70
+ newRecord.parent = await menuRepo.findOne({
71
+ domain,
72
+ id: newRecord.parent.id
73
+ });
74
+ }
75
+ const result = await menuRepo.save(Object.assign(Object.assign({}, newRecord), { domain, creator: user, updater: user }));
76
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
77
+ }
78
+ }
79
+ if (_updateRecords.length > 0) {
80
+ for (let i = 0; i < _updateRecords.length; i++) {
81
+ const updateRecord = _updateRecords[i];
82
+ const { id } = updateRecord;
83
+ const menu = await menuRepo.findOne({
84
+ where: { domain, id },
85
+ relations: ['children', 'parent']
86
+ });
87
+ if ((_b = updateRecord === null || updateRecord === void 0 ? void 0 : updateRecord.parent) === null || _b === void 0 ? void 0 : _b.id) {
88
+ updateRecord.parent = await menuRepo.findOne(updateRecord.parent.id);
89
+ }
90
+ if ((_c = updateRecord === null || updateRecord === void 0 ? void 0 : updateRecord.children) === null || _c === void 0 ? void 0 : _c.length) {
91
+ const childrenIds = updateRecord.children.map((children) => children.id);
92
+ updateRecord.children = await menuRepo.findByIds(childrenIds);
93
+ }
94
+ const result = await menuRepo.save(Object.assign(Object.assign(Object.assign({}, menu), updateRecord), { updater: user }));
95
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
96
+ }
97
+ }
98
+ return results;
99
+ }
100
+ async deleteMenu(id, context) {
101
+ const { domain, tx } = context.state;
102
+ await tx.getRepository(menu_1.Menu).delete({ domain, id });
103
+ return true;
104
+ }
105
+ async deleteMenus(ids, context) {
106
+ const { domain, tx } = context.state;
107
+ await tx.getRepository(menu_1.Menu).delete({
108
+ domain,
109
+ id: (0, typeorm_1.In)(ids)
110
+ });
111
+ return true;
112
+ }
113
+ async updateRoleMenu(roleId, targetMenuId, isCheckedMenu, context) {
114
+ const { domain, tx } = context.state;
115
+ const menuRepo = tx === null || tx === void 0 ? void 0 : tx.getRepository(menu_1.Menu);
116
+ const roleRepo = tx === null || tx === void 0 ? void 0 : tx.getRepository(auth_base_1.Role);
117
+ const menu = await menuRepo.findOne({ where: { domain, id: targetMenuId }, relations: ['roles'] });
118
+ const targetRole = await roleRepo.findOne({ where: { domain, id: roleId } });
119
+ if (isCheckedMenu) {
120
+ menu.roles = await appendRoleToMenu(roleRepo, menu.roles, targetRole);
121
+ }
122
+ else {
123
+ menu.roles = removeRoleToMenu(menu.roles, targetRole);
124
+ }
125
+ return await menuRepo.save(Object.assign({}, menu));
126
+ }
127
+ async updateRoleMenus(roleId, parentMenuId, isCheckedAll, context) {
128
+ const { domain, tx } = context.state;
129
+ const menuRepo = tx === null || tx === void 0 ? void 0 : tx.getRepository(menu_1.Menu);
130
+ const roleRepo = tx === null || tx === void 0 ? void 0 : tx.getRepository(auth_base_1.Role);
131
+ const targetParentMenu = await menuRepo.findOne({
132
+ where: { domain, id: parentMenuId },
133
+ relations: ['children', 'children.roles']
134
+ });
135
+ let childMenus = targetParentMenu.children;
136
+ const targetRole = await roleRepo.findOne({ where: { domain, id: roleId } });
137
+ if (isCheckedAll) {
138
+ childMenus.forEach(async (child) => {
139
+ child.roles = await appendRoleToMenu(roleRepo, child.roles, targetRole);
140
+ });
141
+ }
142
+ else {
143
+ childMenus.forEach(child => {
144
+ child.roles = removeRoleToMenu(child.roles, targetRole);
145
+ });
146
+ }
147
+ return await menuRepo.save([...childMenus]);
148
+ }
149
+ async importMenus(menus, context) {
150
+ const { domain, tx } = context.state;
151
+ await Promise.all(menus.map(async (menu) => {
152
+ const createdMenu = await tx.getRepository(menu_1.Menu).save(Object.assign({ domain }, menu));
153
+ }));
154
+ return true;
155
+ }
156
+ };
157
+ __decorate([
158
+ (0, type_graphql_1.Directive)('@transaction'),
159
+ (0, type_graphql_1.Mutation)(returns => menu_1.Menu, { description: 'To create new Menu' }),
160
+ __param(0, (0, type_graphql_1.Arg)('menu')),
161
+ __param(1, (0, type_graphql_1.Ctx)()),
162
+ __metadata("design:type", Function),
163
+ __metadata("design:paramtypes", [menu_type_1.NewMenu, Object]),
164
+ __metadata("design:returntype", Promise)
165
+ ], MenuMutation.prototype, "createMenu", null);
166
+ __decorate([
167
+ (0, type_graphql_1.Directive)('@transaction'),
168
+ (0, type_graphql_1.Mutation)(returns => menu_1.Menu, { description: 'To modify Menu information' }),
169
+ __param(0, (0, type_graphql_1.Arg)('id')),
170
+ __param(1, (0, type_graphql_1.Arg)('patch')),
171
+ __param(2, (0, type_graphql_1.Ctx)()),
172
+ __metadata("design:type", Function),
173
+ __metadata("design:paramtypes", [String, menu_type_1.MenuPatch, Object]),
174
+ __metadata("design:returntype", Promise)
175
+ ], MenuMutation.prototype, "updateMenu", null);
176
+ __decorate([
177
+ (0, type_graphql_1.Directive)('@transaction'),
178
+ (0, type_graphql_1.Mutation)(returns => [menu_1.Menu], { description: "To modify multiple Menus' information" }),
179
+ __param(0, (0, type_graphql_1.Arg)('patches', type => [menu_type_1.MenuPatch])),
180
+ __param(1, (0, type_graphql_1.Ctx)()),
181
+ __metadata("design:type", Function),
182
+ __metadata("design:paramtypes", [Array, Object]),
183
+ __metadata("design:returntype", Promise)
184
+ ], MenuMutation.prototype, "updateMultipleMenu", null);
185
+ __decorate([
186
+ (0, type_graphql_1.Directive)('@transaction'),
187
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete Menu' }),
188
+ __param(0, (0, type_graphql_1.Arg)('id')),
189
+ __param(1, (0, type_graphql_1.Ctx)()),
190
+ __metadata("design:type", Function),
191
+ __metadata("design:paramtypes", [String, Object]),
192
+ __metadata("design:returntype", Promise)
193
+ ], MenuMutation.prototype, "deleteMenu", null);
194
+ __decorate([
195
+ (0, type_graphql_1.Directive)('@transaction'),
196
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple Menus' }),
197
+ __param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
198
+ __param(1, (0, type_graphql_1.Ctx)()),
199
+ __metadata("design:type", Function),
200
+ __metadata("design:paramtypes", [Array, Object]),
201
+ __metadata("design:returntype", Promise)
202
+ ], MenuMutation.prototype, "deleteMenus", null);
203
+ __decorate([
204
+ (0, type_graphql_1.Directive)('@transaction'),
205
+ (0, type_graphql_1.Mutation)(returns => menu_1.Menu, { description: 'To update role Menu' }),
206
+ __param(0, (0, type_graphql_1.Arg)('roleId')),
207
+ __param(1, (0, type_graphql_1.Arg)('targetMenuId')),
208
+ __param(2, (0, type_graphql_1.Arg)('isCheckedMenu')),
209
+ __param(3, (0, type_graphql_1.Ctx)()),
210
+ __metadata("design:type", Function),
211
+ __metadata("design:paramtypes", [String, String, Boolean, Object]),
212
+ __metadata("design:returntype", Promise)
213
+ ], MenuMutation.prototype, "updateRoleMenu", null);
214
+ __decorate([
215
+ (0, type_graphql_1.Directive)('@transaction'),
216
+ (0, type_graphql_1.Mutation)(returns => [menu_1.Menu], { description: 'To update role Menu' }),
217
+ __param(0, (0, type_graphql_1.Arg)('roleId')),
218
+ __param(1, (0, type_graphql_1.Arg)('parentMenuId')),
219
+ __param(2, (0, type_graphql_1.Arg)('isCheckedAll')),
220
+ __param(3, (0, type_graphql_1.Ctx)()),
221
+ __metadata("design:type", Function),
222
+ __metadata("design:paramtypes", [String, String, Boolean, Object]),
223
+ __metadata("design:returntype", Promise)
224
+ ], MenuMutation.prototype, "updateRoleMenus", null);
225
+ __decorate([
226
+ (0, type_graphql_1.Directive)('@transaction'),
227
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple Menus' }),
228
+ __param(0, (0, type_graphql_1.Arg)('menus', type => [menu_type_1.MenuPatch])),
229
+ __param(1, (0, type_graphql_1.Ctx)()),
230
+ __metadata("design:type", Function),
231
+ __metadata("design:paramtypes", [Array, Object]),
232
+ __metadata("design:returntype", Promise)
233
+ ], MenuMutation.prototype, "importMenus", null);
234
+ MenuMutation = __decorate([
235
+ (0, type_graphql_1.Resolver)(menu_1.Menu)
236
+ ], MenuMutation);
237
+ exports.MenuMutation = MenuMutation;
238
+ //# sourceMappingURL=menu-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-mutation.js","sourceRoot":"","sources":["../../../server/service/menu/menu-mutation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAAsE;AACtE,qCAAwC;AAExC,yDAAgD;AAEhD,iCAA6B;AAC7B,2CAAgD;AAEhD,KAAK,UAAU,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU;IACzD,IAAI,OAAO,GAAa,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE1D,OAAO,MAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAK,EAAE,UAAU;IACzC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;AACxD,CAAC;AAGD,IAAa,YAAY,GAAzB,MAAa,YAAY;IAGvB,KAAK,CAAC,UAAU,CAAc,IAAa,EAAS,OAAY;;QAC9D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,MAAM,QAAQ,GAAG,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,WAAI,CAAC,CAAA;QAExC,IAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,EAAE,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;gBACnC,MAAM;gBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;aACnB,CAAC,CAAA;SACH;QAED,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAC,IAAI,iCACnC,IAAI,KACP,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAID,KAAK,CAAC,UAAU,CAAY,EAAU,EAAgB,KAAgB,EAAS,OAAY;;QACzF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAA;QAEvC,MAAM,IAAI,GAAS,MAAM,QAAQ,CAAC,OAAO,CAAC;YACxC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACrB,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;SAClC,CAAC,CAAA;QAEF,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,EAAE,EAAE;YACrB,KAAK,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;SACvD;QAED,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,0CAAE,MAAM,EAAE;YAC3B,MAAM,WAAW,GAAa,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACjF,KAAK,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;SACvD;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,+CACrB,IAAI,GACJ,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAID,KAAK,CAAC,kBAAkB,CACe,OAAoB,EAClD,OAAY;;QAEnB,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,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAA;QAEvC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEnC,IAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,EAAE,EAAE;oBACzB,SAAS,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;wBACxC,MAAM;wBACN,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE;qBACxB,CAAC,CAAA;iBACH;gBAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,iCAC7B,SAAS,KACZ,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;aACzC;SACF;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBACtC,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,CAAA;gBAE3B,MAAM,IAAI,GAAS,MAAM,QAAQ,CAAC,OAAO,CAAC;oBACxC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;oBACrB,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;iBAClC,CAAC,CAAA;gBAEF,IAAI,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,0CAAE,EAAE,EAAE;oBAC5B,YAAY,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;iBACrE;gBAED,IAAI,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,0CAAE,MAAM,EAAE;oBAClC,MAAM,WAAW,GAAa,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;oBACxF,YAAY,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;iBAC9D;gBAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,+CAC7B,IAAI,GACJ,YAAY,KACf,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;aACzC;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAID,KAAK,CAAC,UAAU,CAAY,EAAU,EAAS,OAAY;QACzD,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;QACnD,OAAO,IAAI,CAAA;IACb,CAAC;IAID,KAAK,CAAC,WAAW,CAA+B,GAAa,EAAS,OAAY;QAChF,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAC,MAAM,CAAC;YAClC,MAAM;YACN,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAID,KAAK,CAAC,cAAc,CACH,MAAc,EACR,YAAoB,EACnB,aAAsB,EACrC,OAAY;QAEnB,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,QAAQ,GAAqB,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,WAAI,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAqB,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,gBAAI,CAAC,CAAA;QAE1D,MAAM,IAAI,GAAS,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxG,MAAM,UAAU,GAAS,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QAElF,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;SACtE;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;SACtD;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,mBACrB,IAAI,EACP,CAAA;IACJ,CAAC;IAID,KAAK,CAAC,eAAe,CACJ,MAAc,EACR,YAAoB,EACpB,YAAqB,EACnC,OAAY;QAEnB,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,QAAQ,GAAqB,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,WAAI,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAqB,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,gBAAI,CAAC,CAAA;QAE1D,MAAM,gBAAgB,GAAS,MAAM,QAAQ,CAAC,OAAO,CAAC;YACpD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE;YACnC,SAAS,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;SAC1C,CAAC,CAAA;QACF,IAAI,UAAU,GAAW,gBAAgB,CAAC,QAAQ,CAAA;QAElD,MAAM,UAAU,GAAS,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QAElF,IAAI,YAAY,EAAE;YAChB,UAAU,CAAC,OAAO,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBAC/B,KAAK,CAAC,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;YACzE,CAAC,CAAC,CAAA;SACH;aAAM;YACL,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;YACzD,CAAC,CAAC,CAAA;SACH;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAA;IAC7C,CAAC;IAID,KAAK,CAAC,WAAW,CAAoC,KAAkB,EAAS,OAAY;QAC1F,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAe,EAAE,EAAE;YAClC,MAAM,WAAW,GAAS,MAAM,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAC,IAAI,iBAAG,MAAM,IAAK,IAAI,EAAG,CAAA;QAClF,CAAC,CAAC,CACH,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAlNC;IAFC,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IAC/C,WAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAiB,WAAA,IAAA,kBAAG,GAAE,CAAA;;qCAAf,mBAAO;;8CAiB1C;AAID;IAFC,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IACvD,WAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IAAoB,WAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,qBAAS;;8CAwBrE;AAID;IAFC,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAI,CAAC,EAAE,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC;IAEnF,WAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAS,CAAC,CAAC,CAAA;IACnC,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;sDA6DP;AAID;IAFC,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAC9C,WAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;8CAK7C;AAID;IAFC,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACvD,WAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAAiB,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;+CASpE;AAID;IAFC,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAE/D,WAAA,IAAA,kBAAG,EAAC,QAAQ,CAAC,CAAA;IACb,WAAA,IAAA,kBAAG,EAAC,cAAc,CAAC,CAAA;IACnB,WAAA,IAAA,kBAAG,EAAC,eAAe,CAAC,CAAA;IACpB,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;kDAmBP;AAID;IAFC,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAI,CAAC,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAEjE,WAAA,IAAA,kBAAG,EAAC,QAAQ,CAAC,CAAA;IACb,WAAA,IAAA,kBAAG,EAAC,cAAc,CAAC,CAAA;IACnB,WAAA,IAAA,kBAAG,EAAC,cAAc,CAAC,CAAA;IACnB,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;mDA0BP;AAID;IAFC,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACvD,WAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAS,CAAC,CAAC,CAAA;IAAsB,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;+CAU9E;AApNU,YAAY;IADxB,IAAA,uBAAQ,EAAC,WAAI,CAAC;GACF,YAAY,CAqNxB;AArNY,oCAAY"}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var _a;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.MenuQuery = void 0;
17
+ const type_graphql_1 = require("type-graphql");
18
+ const typeorm_1 = require("typeorm");
19
+ const auth_base_1 = require("@things-factory/auth-base");
20
+ const shell_1 = require("@things-factory/shell");
21
+ const menu_button_1 = require("../menu-button/menu-button");
22
+ const menu_column_1 = require("../menu-column/menu-column");
23
+ const menu_1 = require("./menu");
24
+ const menu_type_1 = require("./menu-type");
25
+ async function getNonRestrictedMenus(domain) {
26
+ const menus = await (0, typeorm_1.getRepository)(menu_1.Menu).find({
27
+ where: { domain, hiddenFlag: false, menuType: 'MENU' },
28
+ relations: ['parent', 'children', 'children.roles'],
29
+ order: { rank: 'ASC' }
30
+ });
31
+ menus.forEach(menu => {
32
+ menu.children = menu.children.filter(child => { var _a; return !((_a = child.roles) === null || _a === void 0 ? void 0 : _a.length); });
33
+ });
34
+ return menus;
35
+ }
36
+ async function getRestrictedMenus(roleIds, domain) {
37
+ const menus = await (0, typeorm_1.getRepository)(menu_1.Menu).find({
38
+ where: { domain, hiddenFlag: false, menuType: 'MENU' },
39
+ relations: ['parent', 'children', 'children.roles'],
40
+ order: { rank: 'ASC' }
41
+ });
42
+ const userRoles = await (0, typeorm_1.getRepository)(auth_base_1.Role).find({ where: { domain, id: (0, typeorm_1.In)(roleIds) } });
43
+ menus.forEach(menu => {
44
+ menu.children = menu.children.filter(child => {
45
+ var _a;
46
+ const childRoleIds = ((_a = child.roles) === null || _a === void 0 ? void 0 : _a.map(role => role.id)) || [];
47
+ return userRoles.find(role => childRoleIds.includes(role.id)) || false;
48
+ });
49
+ });
50
+ return menus;
51
+ }
52
+ let MenuQuery = class MenuQuery {
53
+ async menu(id, context) {
54
+ const { domain } = context.state;
55
+ return await (0, typeorm_1.getRepository)(menu_1.Menu).findOne({
56
+ where: { domain, id },
57
+ relations: ['roles']
58
+ });
59
+ }
60
+ async menuByRouting(routing, context) {
61
+ const { domain } = context.state;
62
+ return await (0, typeorm_1.getRepository)(menu_1.Menu).findOne({
63
+ where: { domain, routing }
64
+ });
65
+ }
66
+ async menus(params, context) {
67
+ const { domain } = context.state;
68
+ const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
69
+ domain,
70
+ params,
71
+ repository: await (0, typeorm_1.getRepository)(menu_1.Menu),
72
+ searchables: ['name', 'description']
73
+ });
74
+ const [items, total] = await queryBuilder.getManyAndCount();
75
+ return { items, total };
76
+ }
77
+ async roleMenus(roleId, context) {
78
+ const { domain } = context.state;
79
+ const menuRepo = (0, typeorm_1.getRepository)(menu_1.Menu);
80
+ const menus = await menuRepo.find({
81
+ where: { domain },
82
+ relations: ['parent', 'roles']
83
+ });
84
+ const role = await (0, typeorm_1.getRepository)(auth_base_1.Role).findOne({ where: { domain, id: roleId } });
85
+ let newChildMenus = [];
86
+ menus.forEach(menu => {
87
+ if (menu.roles) {
88
+ const menuRoleIds = menu.roles.map(role => role.id);
89
+ if (menuRoleIds.includes(role.id)) {
90
+ newChildMenus.push(menu);
91
+ }
92
+ }
93
+ });
94
+ return { items: newChildMenus, total: newChildMenus.length };
95
+ }
96
+ async userMenus(context) {
97
+ const { domain, user } = context.state;
98
+ var menus = [];
99
+ try {
100
+ const qb = (0, typeorm_1.getRepository)(auth_base_1.User).createQueryBuilder('USER');
101
+ const user = await qb
102
+ .leftJoinAndSelect('USER.roles', 'ROLES')
103
+ .leftJoinAndSelect('ROLES.domain', 'ROLES_DOMAIN')
104
+ .where('USER.id = :userId', { userId: context.state.user.id })
105
+ .andWhere('ROLES_DOMAIN.id = :domainId', { domainId: context.state.domain.id })
106
+ .getOne();
107
+ // get menus which are non-restricted by any role.
108
+ menus.push(...(await getNonRestrictedMenus(context.state.domain)));
109
+ const userRoleIds = user.roles.map((role) => role.id);
110
+ let restrictedMenus = [];
111
+ if (userRoleIds === null || userRoleIds === void 0 ? void 0 : userRoleIds.length) {
112
+ // get menus which are restricted by role ()
113
+ restrictedMenus = [...(await getRestrictedMenus(userRoleIds, context.state.domain))];
114
+ }
115
+ const restrictedMenuIds = restrictedMenus.map((restrictedMenu) => restrictedMenu.id);
116
+ menus.forEach(menu => {
117
+ const idx = restrictedMenuIds.indexOf(menu.id);
118
+ if (idx !== -1) {
119
+ menu.children = Array.from(new Set([...restrictedMenus[idx].children, ...menu.children]));
120
+ }
121
+ });
122
+ return menus.filter((groupMenu) => { var _a; return (_a = groupMenu === null || groupMenu === void 0 ? void 0 : groupMenu.children) === null || _a === void 0 ? void 0 : _a.length; });
123
+ }
124
+ catch (e) {
125
+ throw e;
126
+ }
127
+ }
128
+ async children(menu) {
129
+ return (menu.children ||
130
+ (await (0, typeorm_1.getRepository)(menu_1.Menu).find({
131
+ parent: menu
132
+ })));
133
+ }
134
+ async buttons(menu) {
135
+ return await (0, typeorm_1.getRepository)(menu_button_1.MenuButton).find({
136
+ menu
137
+ });
138
+ }
139
+ async columns(menu) {
140
+ return await (0, typeorm_1.getRepository)(menu_column_1.MenuColumn).find({
141
+ menu
142
+ });
143
+ }
144
+ async domain(menu) {
145
+ return await (0, typeorm_1.getRepository)(shell_1.Domain).findOne(menu.domainId);
146
+ }
147
+ async updater(menu) {
148
+ return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(menu.updaterId);
149
+ }
150
+ async creator(menu) {
151
+ return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(menu.creatorId);
152
+ }
153
+ };
154
+ __decorate([
155
+ (0, type_graphql_1.Query)(returns => menu_1.Menu, { description: 'To fetch a Menu' }),
156
+ __param(0, (0, type_graphql_1.Arg)('id')),
157
+ __param(1, (0, type_graphql_1.Ctx)()),
158
+ __metadata("design:type", Function),
159
+ __metadata("design:paramtypes", [String, Object]),
160
+ __metadata("design:returntype", Promise)
161
+ ], MenuQuery.prototype, "menu", null);
162
+ __decorate([
163
+ (0, type_graphql_1.Query)(returns => menu_1.Menu, { description: 'To fetch a Menu by routing' }),
164
+ __param(0, (0, type_graphql_1.Arg)('routing')),
165
+ __metadata("design:type", Function),
166
+ __metadata("design:paramtypes", [String, Object]),
167
+ __metadata("design:returntype", Promise)
168
+ ], MenuQuery.prototype, "menuByRouting", null);
169
+ __decorate([
170
+ (0, type_graphql_1.Query)(returns => menu_type_1.MenuList, { description: 'To fetch multiple Menus' }),
171
+ __param(0, (0, type_graphql_1.Args)()),
172
+ __param(1, (0, type_graphql_1.Ctx)()),
173
+ __metadata("design:type", Function),
174
+ __metadata("design:paramtypes", [typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object, Object]),
175
+ __metadata("design:returntype", Promise)
176
+ ], MenuQuery.prototype, "menus", null);
177
+ __decorate([
178
+ (0, type_graphql_1.Query)(returns => menu_type_1.MenuList, { description: 'To fetch Menus by role' }),
179
+ __param(0, (0, type_graphql_1.Arg)('roleId')),
180
+ __param(1, (0, type_graphql_1.Ctx)()),
181
+ __metadata("design:type", Function),
182
+ __metadata("design:paramtypes", [String, Object]),
183
+ __metadata("design:returntype", Promise)
184
+ ], MenuQuery.prototype, "roleMenus", null);
185
+ __decorate([
186
+ (0, type_graphql_1.Query)(returns => [menu_1.Menu], { description: 'To fetch Menus by role' }),
187
+ __param(0, (0, type_graphql_1.Ctx)()),
188
+ __metadata("design:type", Function),
189
+ __metadata("design:paramtypes", [Object]),
190
+ __metadata("design:returntype", Promise)
191
+ ], MenuQuery.prototype, "userMenus", null);
192
+ __decorate([
193
+ (0, type_graphql_1.FieldResolver)(type => [menu_1.Menu]),
194
+ __param(0, (0, type_graphql_1.Root)()),
195
+ __metadata("design:type", Function),
196
+ __metadata("design:paramtypes", [menu_1.Menu]),
197
+ __metadata("design:returntype", Promise)
198
+ ], MenuQuery.prototype, "children", null);
199
+ __decorate([
200
+ (0, type_graphql_1.FieldResolver)(type => [menu_button_1.MenuButton]),
201
+ __param(0, (0, type_graphql_1.Root)()),
202
+ __metadata("design:type", Function),
203
+ __metadata("design:paramtypes", [menu_1.Menu]),
204
+ __metadata("design:returntype", Promise)
205
+ ], MenuQuery.prototype, "buttons", null);
206
+ __decorate([
207
+ (0, type_graphql_1.FieldResolver)(type => [menu_column_1.MenuColumn]),
208
+ __param(0, (0, type_graphql_1.Root)()),
209
+ __metadata("design:type", Function),
210
+ __metadata("design:paramtypes", [menu_1.Menu]),
211
+ __metadata("design:returntype", Promise)
212
+ ], MenuQuery.prototype, "columns", null);
213
+ __decorate([
214
+ (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
215
+ __param(0, (0, type_graphql_1.Root)()),
216
+ __metadata("design:type", Function),
217
+ __metadata("design:paramtypes", [menu_1.Menu]),
218
+ __metadata("design:returntype", Promise)
219
+ ], MenuQuery.prototype, "domain", null);
220
+ __decorate([
221
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
222
+ __param(0, (0, type_graphql_1.Root)()),
223
+ __metadata("design:type", Function),
224
+ __metadata("design:paramtypes", [menu_1.Menu]),
225
+ __metadata("design:returntype", Promise)
226
+ ], MenuQuery.prototype, "updater", null);
227
+ __decorate([
228
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
229
+ __param(0, (0, type_graphql_1.Root)()),
230
+ __metadata("design:type", Function),
231
+ __metadata("design:paramtypes", [menu_1.Menu]),
232
+ __metadata("design:returntype", Promise)
233
+ ], MenuQuery.prototype, "creator", null);
234
+ MenuQuery = __decorate([
235
+ (0, type_graphql_1.Resolver)(menu_1.Menu)
236
+ ], MenuQuery);
237
+ exports.MenuQuery = MenuQuery;
238
+ //# sourceMappingURL=menu-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-query.js","sourceRoot":"","sources":["../../../server/service/menu/menu-query.ts"],"names":[],"mappings":"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"}