@things-factory/board-service 9.0.0-beta.25 → 9.0.0-beta.27

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 (179) hide show
  1. package/package.json +3 -3
  2. package/dist-server/constants/error-code.d.ts +0 -2
  3. package/dist-server/constants/error-code.js +0 -6
  4. package/dist-server/constants/error-code.js.map +0 -1
  5. package/dist-server/controllers/analyzer/analyze-integration.d.ts +0 -5
  6. package/dist-server/controllers/analyzer/analyze-integration.js +0 -117
  7. package/dist-server/controllers/analyzer/analyze-integration.js.map +0 -1
  8. package/dist-server/controllers/fonts.d.ts +0 -9
  9. package/dist-server/controllers/fonts.js +0 -76
  10. package/dist-server/controllers/fonts.js.map +0 -1
  11. package/dist-server/controllers/headless-model.d.ts +0 -6
  12. package/dist-server/controllers/headless-model.js +0 -55
  13. package/dist-server/controllers/headless-model.js.map +0 -1
  14. package/dist-server/controllers/headless-pdf-to-image.d.ts +0 -12
  15. package/dist-server/controllers/headless-pdf-to-image.js +0 -106
  16. package/dist-server/controllers/headless-pdf-to-image.js.map +0 -1
  17. package/dist-server/controllers/headless-playlist.d.ts +0 -5
  18. package/dist-server/controllers/headless-playlist.js +0 -71
  19. package/dist-server/controllers/headless-playlist.js.map +0 -1
  20. package/dist-server/controllers/headless-pool-for-board.d.ts +0 -1
  21. package/dist-server/controllers/headless-pool-for-board.js +0 -64
  22. package/dist-server/controllers/headless-pool-for-board.js.map +0 -1
  23. package/dist-server/controllers/headless-pool-for-label.d.ts +0 -1
  24. package/dist-server/controllers/headless-pool-for-label.js +0 -133
  25. package/dist-server/controllers/headless-pool-for-label.js.map +0 -1
  26. package/dist-server/controllers/index.d.ts +0 -34
  27. package/dist-server/controllers/index.js +0 -14
  28. package/dist-server/controllers/index.js.map +0 -1
  29. package/dist-server/controllers/label-command.d.ts +0 -19
  30. package/dist-server/controllers/label-command.js +0 -52
  31. package/dist-server/controllers/label-command.js.map +0 -1
  32. package/dist-server/controllers/pdf.d.ts +0 -9
  33. package/dist-server/controllers/pdf.js +0 -102
  34. package/dist-server/controllers/pdf.js.map +0 -1
  35. package/dist-server/controllers/screenshot.d.ts +0 -11
  36. package/dist-server/controllers/screenshot.js +0 -101
  37. package/dist-server/controllers/screenshot.js.map +0 -1
  38. package/dist-server/controllers/thumbnail.d.ts +0 -7
  39. package/dist-server/controllers/thumbnail.js +0 -16
  40. package/dist-server/controllers/thumbnail.js.map +0 -1
  41. package/dist-server/errors/index.d.ts +0 -1
  42. package/dist-server/errors/index.js +0 -5
  43. package/dist-server/errors/index.js.map +0 -1
  44. package/dist-server/errors/license-error.d.ts +0 -11
  45. package/dist-server/errors/license-error.js +0 -18
  46. package/dist-server/errors/license-error.js.map +0 -1
  47. package/dist-server/index.d.ts +0 -5
  48. package/dist-server/index.js +0 -35
  49. package/dist-server/index.js.map +0 -1
  50. package/dist-server/migrations/1556862253000-SeedGroup.d.ts +0 -5
  51. package/dist-server/migrations/1556862253000-SeedGroup.js +0 -43
  52. package/dist-server/migrations/1556862253000-SeedGroup.js.map +0 -1
  53. package/dist-server/migrations/index.d.ts +0 -1
  54. package/dist-server/migrations/index.js +0 -12
  55. package/dist-server/migrations/index.js.map +0 -1
  56. package/dist-server/routers/internal-board-view-router.d.ts +0 -1
  57. package/dist-server/routers/internal-board-view-router.js +0 -32
  58. package/dist-server/routers/internal-board-view-router.js.map +0 -1
  59. package/dist-server/routers/standalone-board-service-router.d.ts +0 -1
  60. package/dist-server/routers/standalone-board-service-router.js +0 -250
  61. package/dist-server/routers/standalone-board-service-router.js.map +0 -1
  62. package/dist-server/routes.d.ts +0 -1
  63. package/dist-server/routes.js +0 -23
  64. package/dist-server/routes.js.map +0 -1
  65. package/dist-server/service/analysis/analysis-query.d.ts +0 -3
  66. package/dist-server/service/analysis/analysis-query.js +0 -25
  67. package/dist-server/service/analysis/analysis-query.js.map +0 -1
  68. package/dist-server/service/analysis/index.d.ts +0 -2
  69. package/dist-server/service/analysis/index.js +0 -6
  70. package/dist-server/service/analysis/index.js.map +0 -1
  71. package/dist-server/service/board/board-history.d.ts +0 -28
  72. package/dist-server/service/board/board-history.js +0 -155
  73. package/dist-server/service/board/board-history.js.map +0 -1
  74. package/dist-server/service/board/board-mutation.d.ts +0 -12
  75. package/dist-server/service/board/board-mutation.js +0 -377
  76. package/dist-server/service/board/board-mutation.js.map +0 -1
  77. package/dist-server/service/board/board-query.d.ts +0 -20
  78. package/dist-server/service/board/board-query.js +0 -220
  79. package/dist-server/service/board/board-query.js.map +0 -1
  80. package/dist-server/service/board/board-subscription.d.ts +0 -6
  81. package/dist-server/service/board/board-subscription.js +0 -49
  82. package/dist-server/service/board/board-subscription.js.map +0 -1
  83. package/dist-server/service/board/board-type.d.ts +0 -24
  84. package/dist-server/service/board/board-type.js +0 -88
  85. package/dist-server/service/board/board-type.js.map +0 -1
  86. package/dist-server/service/board/board.d.ts +0 -25
  87. package/dist-server/service/board/board.js +0 -140
  88. package/dist-server/service/board/board.js.map +0 -1
  89. package/dist-server/service/board/event-subscriber.d.ts +0 -15
  90. package/dist-server/service/board/event-subscriber.js +0 -63
  91. package/dist-server/service/board/event-subscriber.js.map +0 -1
  92. package/dist-server/service/board/index.d.ts +0 -9
  93. package/dist-server/service/board/index.js +0 -13
  94. package/dist-server/service/board/index.js.map +0 -1
  95. package/dist-server/service/board-favorite/board-favorite-query.d.ts +0 -5
  96. package/dist-server/service/board-favorite/board-favorite-query.js +0 -56
  97. package/dist-server/service/board-favorite/board-favorite-query.js.map +0 -1
  98. package/dist-server/service/board-favorite/board-favorite-type.d.ts +0 -8
  99. package/dist-server/service/board-favorite/board-favorite-type.js +0 -31
  100. package/dist-server/service/board-favorite/board-favorite-type.js.map +0 -1
  101. package/dist-server/service/board-favorite/index.d.ts +0 -3
  102. package/dist-server/service/board-favorite/index.js +0 -7
  103. package/dist-server/service/board-favorite/index.js.map +0 -1
  104. package/dist-server/service/board-template/board-template-mutation.d.ts +0 -8
  105. package/dist-server/service/board-template/board-template-mutation.js +0 -146
  106. package/dist-server/service/board-template/board-template-mutation.js.map +0 -1
  107. package/dist-server/service/board-template/board-template-query.d.ts +0 -13
  108. package/dist-server/service/board-template/board-template-query.js +0 -147
  109. package/dist-server/service/board-template/board-template-query.js.map +0 -1
  110. package/dist-server/service/board-template/board-template-type.d.ts +0 -21
  111. package/dist-server/service/board-template/board-template-type.js +0 -81
  112. package/dist-server/service/board-template/board-template-type.js.map +0 -1
  113. package/dist-server/service/board-template/board-template.d.ts +0 -23
  114. package/dist-server/service/board-template/board-template.js +0 -123
  115. package/dist-server/service/board-template/board-template.js.map +0 -1
  116. package/dist-server/service/board-template/index.d.ts +0 -6
  117. package/dist-server/service/board-template/index.js +0 -10
  118. package/dist-server/service/board-template/index.js.map +0 -1
  119. package/dist-server/service/group/group-mutation.d.ts +0 -8
  120. package/dist-server/service/group/group-mutation.js +0 -89
  121. package/dist-server/service/group/group-mutation.js.map +0 -1
  122. package/dist-server/service/group/group-query.d.ts +0 -13
  123. package/dist-server/service/group/group-query.js +0 -92
  124. package/dist-server/service/group/group-query.js.map +0 -1
  125. package/dist-server/service/group/group-type.d.ts +0 -13
  126. package/dist-server/service/group/group-type.js +0 -49
  127. package/dist-server/service/group/group-type.js.map +0 -1
  128. package/dist-server/service/group/group.d.ts +0 -17
  129. package/dist-server/service/group/group.js +0 -77
  130. package/dist-server/service/group/group.js.map +0 -1
  131. package/dist-server/service/group/index.d.ts +0 -5
  132. package/dist-server/service/group/index.js +0 -9
  133. package/dist-server/service/group/index.js.map +0 -1
  134. package/dist-server/service/index.d.ts +0 -10
  135. package/dist-server/service/index.js +0 -49
  136. package/dist-server/service/index.js.map +0 -1
  137. package/dist-server/service/permission/domain-permission-subscriber.d.ts +0 -9
  138. package/dist-server/service/permission/domain-permission-subscriber.js +0 -30
  139. package/dist-server/service/permission/domain-permission-subscriber.js.map +0 -1
  140. package/dist-server/service/permission/index.d.ts +0 -2
  141. package/dist-server/service/permission/index.js +0 -6
  142. package/dist-server/service/permission/index.js.map +0 -1
  143. package/dist-server/service/play-group/event-subscriber.d.ts +0 -6
  144. package/dist-server/service/play-group/event-subscriber.js +0 -58
  145. package/dist-server/service/play-group/event-subscriber.js.map +0 -1
  146. package/dist-server/service/play-group/index.d.ts +0 -8
  147. package/dist-server/service/play-group/index.js +0 -12
  148. package/dist-server/service/play-group/index.js.map +0 -1
  149. package/dist-server/service/play-group/play-group-mutation.d.ts +0 -10
  150. package/dist-server/service/play-group/play-group-mutation.js +0 -146
  151. package/dist-server/service/play-group/play-group-mutation.js.map +0 -1
  152. package/dist-server/service/play-group/play-group-query.d.ts +0 -14
  153. package/dist-server/service/play-group/play-group-query.js +0 -129
  154. package/dist-server/service/play-group/play-group-query.js.map +0 -1
  155. package/dist-server/service/play-group/play-group-subscription.d.ts +0 -6
  156. package/dist-server/service/play-group/play-group-subscription.js +0 -49
  157. package/dist-server/service/play-group/play-group-subscription.js.map +0 -1
  158. package/dist-server/service/play-group/play-group-type.d.ts +0 -13
  159. package/dist-server/service/play-group/play-group-type.js +0 -49
  160. package/dist-server/service/play-group/play-group-type.js.map +0 -1
  161. package/dist-server/service/play-group/play-group.d.ts +0 -18
  162. package/dist-server/service/play-group/play-group.js +0 -82
  163. package/dist-server/service/play-group/play-group.js.map +0 -1
  164. package/dist-server/service/theme/index.d.ts +0 -6
  165. package/dist-server/service/theme/index.js +0 -10
  166. package/dist-server/service/theme/index.js.map +0 -1
  167. package/dist-server/service/theme/theme-mutation.d.ts +0 -10
  168. package/dist-server/service/theme/theme-mutation.js +0 -125
  169. package/dist-server/service/theme/theme-mutation.js.map +0 -1
  170. package/dist-server/service/theme/theme-query.d.ts +0 -11
  171. package/dist-server/service/theme/theme-query.js +0 -79
  172. package/dist-server/service/theme/theme-query.js.map +0 -1
  173. package/dist-server/service/theme/theme-type.d.ts +0 -21
  174. package/dist-server/service/theme/theme-type.js +0 -82
  175. package/dist-server/service/theme/theme-type.js.map +0 -1
  176. package/dist-server/service/theme/theme.d.ts +0 -25
  177. package/dist-server/service/theme/theme.js +0 -101
  178. package/dist-server/service/theme/theme.js.map +0 -1
  179. package/dist-server/tsconfig.tsbuildinfo +0 -1
@@ -1,15 +0,0 @@
1
- import { EntitySubscriberInterface, InsertEvent, UpdateEvent } from 'typeorm';
2
- import { HistoryEntitySubscriber } from '@operato/typeorm-history';
3
- import { Board } from './board.js';
4
- import { BoardHistory } from './board-history.js';
5
- export declare class BoardSubscriber implements EntitySubscriberInterface<Board> {
6
- listenTo(): typeof Board;
7
- beforeUpdate(event: UpdateEvent<Board>): Promise<any>;
8
- afterUpdate(event: UpdateEvent<Board>): Promise<any>;
9
- }
10
- export declare class BoardHistoryEntitySubscriber extends HistoryEntitySubscriber<Board, BoardHistory> {
11
- get entity(): typeof Board;
12
- get historyEntity(): typeof BoardHistory;
13
- afterInsert(event: InsertEvent<Board>): Promise<void>;
14
- afterUpdate(event: UpdateEvent<Board>): Promise<void>;
15
- }
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BoardHistoryEntitySubscriber = exports.BoardSubscriber = void 0;
4
- const tslib_1 = require("tslib");
5
- const typeorm_1 = require("typeorm");
6
- const typeorm_history_1 = require("@operato/typeorm-history");
7
- const shell_1 = require("@things-factory/shell");
8
- const board_js_1 = require("./board.js");
9
- const board_history_js_1 = require("./board-history.js");
10
- let BoardSubscriber = class BoardSubscriber {
11
- listenTo() {
12
- return board_js_1.Board;
13
- }
14
- async beforeUpdate(event) {
15
- var board = event.entity;
16
- if (!board.version) {
17
- board.version = 0;
18
- }
19
- }
20
- async afterUpdate(event) {
21
- var board = event.entity;
22
- board = await event.manager.findOne(board_js_1.Board, {
23
- where: { domain: { id: board.domainId }, id: board.id },
24
- relations: ['playGroups']
25
- });
26
- if (!board || board.state != 'released') {
27
- return;
28
- }
29
- board.playGroups.forEach(playGroup => shell_1.pubsub.publish('play-group', {
30
- playGroup
31
- }));
32
- shell_1.pubsub.publish('board', {
33
- board
34
- });
35
- }
36
- };
37
- exports.BoardSubscriber = BoardSubscriber;
38
- exports.BoardSubscriber = BoardSubscriber = tslib_1.__decorate([
39
- (0, typeorm_1.EventSubscriber)()
40
- ], BoardSubscriber);
41
- let BoardHistoryEntitySubscriber = class BoardHistoryEntitySubscriber extends typeorm_history_1.HistoryEntitySubscriber {
42
- get entity() {
43
- return board_js_1.Board;
44
- }
45
- get historyEntity() {
46
- return board_history_js_1.BoardHistory;
47
- }
48
- async afterInsert(event) {
49
- if (event.entity.state == 'released') {
50
- super.afterInsert(event);
51
- }
52
- }
53
- async afterUpdate(event) {
54
- if (event.entity.state == 'released') {
55
- super.afterUpdate(event);
56
- }
57
- }
58
- };
59
- exports.BoardHistoryEntitySubscriber = BoardHistoryEntitySubscriber;
60
- exports.BoardHistoryEntitySubscriber = BoardHistoryEntitySubscriber = tslib_1.__decorate([
61
- (0, typeorm_1.EventSubscriber)()
62
- ], BoardHistoryEntitySubscriber);
63
- //# sourceMappingURL=event-subscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-subscriber.js","sourceRoot":"","sources":["../../../server/service/board/event-subscriber.ts"],"names":[],"mappings":";;;;AAAA,qCAA8F;AAE9F,8DAAkE;AAClE,iDAA6D;AAE7D,yCAAkC;AAClC,yDAAiD;AAG1C,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,QAAQ;QACN,OAAO,gBAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAyB;QAC1C,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;QAExB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAyB;QACzC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;QAExB,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAK,EAAE;YACzC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;YACvD,SAAS,EAAE,CAAC,YAAY,CAAC;SAC1B,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;YACxC,OAAM;QACR,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CACnC,cAAM,CAAC,OAAO,CAAC,YAAY,EAAE;YAC3B,SAAS;SACV,CAAC,CACH,CAAA;QAED,cAAM,CAAC,OAAO,CAAC,OAAO,EAAE;YACtB,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAnCY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,yBAAe,GAAE;GACL,eAAe,CAmC3B;AAGM,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,yCAA4C;IAC5F,IAAW,MAAM;QACf,OAAO,gBAAK,CAAA;IACd,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,+BAAY,CAAA;IACrB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAyB;QAChD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;YACrC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAyB;QAChD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;YACrC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;CACF,CAAA;AApBY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,yBAAe,GAAE;GACL,4BAA4B,CAoBxC","sourcesContent":["import { EventSubscriber, EntitySubscriberInterface, InsertEvent, UpdateEvent } from 'typeorm'\n\nimport { HistoryEntitySubscriber } from '@operato/typeorm-history'\nimport { pubsub, getRepository } from '@things-factory/shell'\n\nimport { Board } from './board.js'\nimport { BoardHistory } from './board-history.js'\n\n@EventSubscriber()\nexport class BoardSubscriber implements EntitySubscriberInterface<Board> {\n listenTo() {\n return Board\n }\n\n async beforeUpdate(event: UpdateEvent<Board>): Promise<any> {\n var board = event.entity\n\n if (!board.version) {\n board.version = 0\n }\n }\n\n async afterUpdate(event: UpdateEvent<Board>): Promise<any> {\n var board = event.entity\n\n board = await event.manager.findOne(Board, {\n where: { domain: { id: board.domainId }, id: board.id },\n relations: ['playGroups']\n })\n\n if (!board || board.state != 'released') {\n return\n }\n\n board.playGroups.forEach(playGroup =>\n pubsub.publish('play-group', {\n playGroup\n })\n )\n\n pubsub.publish('board', {\n board\n })\n }\n}\n\n@EventSubscriber()\nexport class BoardHistoryEntitySubscriber extends HistoryEntitySubscriber<Board, BoardHistory> {\n public get entity() {\n return Board\n }\n\n public get historyEntity() {\n return BoardHistory\n }\n\n public async afterInsert(event: InsertEvent<Board>): Promise<void> {\n if (event.entity.state == 'released') {\n super.afterInsert(event)\n }\n }\n\n public async afterUpdate(event: UpdateEvent<Board>): Promise<void> {\n if (event.entity.state == 'released') {\n super.afterUpdate(event)\n }\n }\n}\n"]}
@@ -1,9 +0,0 @@
1
- import { Board } from './board.js';
2
- import { BoardHistory } from './board-history.js';
3
- import { BoardQuery } from './board-query.js';
4
- import { BoardMutation } from './board-mutation.js';
5
- import { BoardSubscription } from './board-subscription.js';
6
- import { BoardSubscriber, BoardHistoryEntitySubscriber } from './event-subscriber.js';
7
- export declare const entities: (typeof Board | typeof BoardHistory)[];
8
- export declare const resolvers: (typeof BoardQuery | typeof BoardMutation | typeof BoardSubscription)[];
9
- export declare const subscribers: (typeof BoardSubscriber | typeof BoardHistoryEntitySubscriber)[];
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.subscribers = exports.resolvers = exports.entities = void 0;
4
- const board_js_1 = require("./board.js");
5
- const board_history_js_1 = require("./board-history.js");
6
- const board_query_js_1 = require("./board-query.js");
7
- const board_mutation_js_1 = require("./board-mutation.js");
8
- const board_subscription_js_1 = require("./board-subscription.js");
9
- const event_subscriber_js_1 = require("./event-subscriber.js");
10
- exports.entities = [board_js_1.Board, board_history_js_1.BoardHistory];
11
- exports.resolvers = [board_query_js_1.BoardQuery, board_mutation_js_1.BoardMutation, board_subscription_js_1.BoardSubscription];
12
- exports.subscribers = [event_subscriber_js_1.BoardSubscriber, event_subscriber_js_1.BoardHistoryEntitySubscriber];
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/board/index.ts"],"names":[],"mappings":";;;AAAA,yCAAkC;AAClC,yDAAiD;AACjD,qDAA6C;AAC7C,2DAAmD;AACnD,mEAA2D;AAC3D,+DAAqF;AAExE,QAAA,QAAQ,GAAG,CAAC,gBAAK,EAAE,+BAAY,CAAC,CAAA;AAChC,QAAA,SAAS,GAAG,CAAC,2BAAU,EAAE,iCAAa,EAAE,yCAAiB,CAAC,CAAA;AAC1D,QAAA,WAAW,GAAG,CAAC,qCAAe,EAAE,kDAA4B,CAAC,CAAA","sourcesContent":["import { Board } from './board.js'\nimport { BoardHistory } from './board-history.js'\nimport { BoardQuery } from './board-query.js'\nimport { BoardMutation } from './board-mutation.js'\nimport { BoardSubscription } from './board-subscription.js'\nimport { BoardSubscriber, BoardHistoryEntitySubscriber } from './event-subscriber.js'\n\nexport const entities = [Board, BoardHistory]\nexport const resolvers = [BoardQuery, BoardMutation, BoardSubscription]\nexport const subscribers = [BoardSubscriber, BoardHistoryEntitySubscriber]\n"]}
@@ -1,5 +0,0 @@
1
- import { ListParam } from '@things-factory/shell';
2
- import { BoardFavoriteList } from './board-favorite-type.js';
3
- export declare class BoardFavoriteQuery {
4
- favoriteBoards(params: ListParam, context: ResolverContext): Promise<BoardFavoriteList>;
5
- }
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BoardFavoriteQuery = void 0;
4
- const tslib_1 = require("tslib");
5
- const type_graphql_1 = require("type-graphql");
6
- const env_1 = require("@things-factory/env");
7
- const fav_base_1 = require("@things-factory/fav-base");
8
- const shell_1 = require("@things-factory/shell");
9
- const board_js_1 = require("../board/board.js");
10
- const board_favorite_type_js_1 = require("./board-favorite-type.js");
11
- const ORMCONFIG = env_1.config.get('ormconfig', {});
12
- const DATABASE_TYPE = ORMCONFIG.type;
13
- let BoardFavoriteQuery = class BoardFavoriteQuery {
14
- async favoriteBoards(params, context) {
15
- const { user } = context.state;
16
- const queryBuilder = (0, shell_1.getRepository)(board_js_1.Board).createQueryBuilder();
17
- (0, shell_1.buildQuery)(queryBuilder, params, context);
18
- var joinStatement = '';
19
- switch (DATABASE_TYPE) {
20
- case 'postgres':
21
- joinStatement = 'CAST(Board.id as VARCHAR) = Favorite.routing';
22
- break;
23
- case 'sqlite':
24
- default:
25
- joinStatement = 'Board.id = Favorite.routing';
26
- }
27
- var qb = queryBuilder
28
- .innerJoin(fav_base_1.Favorite, 'Favorite', joinStatement)
29
- .select([
30
- 'Board.id as id',
31
- 'Board.name as name',
32
- 'Board.description as description',
33
- 'Board.thumbnail as thumbnail',
34
- 'Favorite.id as favoriteId'
35
- ])
36
- .andWhere('Favorite.user = :userId', {
37
- userId: user.id
38
- });
39
- const items = await qb.getRawMany();
40
- const total = await qb.getCount();
41
- return { items, total };
42
- }
43
- };
44
- exports.BoardFavoriteQuery = BoardFavoriteQuery;
45
- tslib_1.__decorate([
46
- (0, type_graphql_1.Query)(returns => board_favorite_type_js_1.BoardFavoriteList, { description: 'To fetch multiple BoardFavorites' }),
47
- tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
48
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
49
- tslib_1.__metadata("design:type", Function),
50
- tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
51
- tslib_1.__metadata("design:returntype", Promise)
52
- ], BoardFavoriteQuery.prototype, "favoriteBoards", null);
53
- exports.BoardFavoriteQuery = BoardFavoriteQuery = tslib_1.__decorate([
54
- (0, type_graphql_1.Resolver)(board_favorite_type_js_1.BoardFavorite)
55
- ], BoardFavoriteQuery);
56
- //# sourceMappingURL=board-favorite-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"board-favorite-query.js","sourceRoot":"","sources":["../../../server/service/board-favorite/board-favorite-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAyD;AAEzD,6CAA4C;AAC5C,uDAAmD;AACnD,iDAA4E;AAE5E,gDAAyC;AACzC,qEAA2E;AAE3E,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAA;AAG7B,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEvB,AAAN,KAAK,CAAC,cAAc,CACO,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE9B,MAAM,YAAY,GAAG,IAAA,qBAAa,EAAC,gBAAK,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAC9D,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,IAAI,aAAa,GAAG,EAAE,CAAA;QACtB,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,UAAU;gBACb,aAAa,GAAG,8CAA8C,CAAA;gBAC9D,MAAK;YACP,KAAK,QAAQ,CAAC;YACd;gBACE,aAAa,GAAG,6BAA6B,CAAA;QACjD,CAAC;QAED,IAAI,EAAE,GAAG,YAAY;aAClB,SAAS,CAAC,mBAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;aAC9C,MAAM,CAAC;YACN,gBAAgB;YAChB,oBAAoB;YACpB,kCAAkC;YAClC,8BAA8B;YAC9B,2BAA2B;SAC5B,CAAC;aACD,QAAQ,CAAC,yBAAyB,EAAE;YACnC,MAAM,EAAE,IAAI,CAAC,EAAE;SAChB,CAAC,CAAA;QAEJ,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,UAAU,EAAE,CAAA;QACnC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAA;QAEjC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AAvCY,gDAAkB;AAEvB;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,0CAAiB,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IAEtF,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;wDAmC3C;6BAtCU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,sCAAa,CAAC;GACX,kBAAkB,CAuC9B","sourcesContent":["import { Args, Ctx, Query, Resolver } from 'type-graphql'\n\nimport { config } from '@things-factory/env'\nimport { Favorite } from '@things-factory/fav-base'\nimport { buildQuery, getRepository, ListParam } from '@things-factory/shell'\n\nimport { Board } from '../board/board.js'\nimport { BoardFavorite, BoardFavoriteList } from './board-favorite-type.js'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Resolver(BoardFavorite)\nexport class BoardFavoriteQuery {\n @Query(returns => BoardFavoriteList, { description: 'To fetch multiple BoardFavorites' })\n async favoriteBoards(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BoardFavoriteList> {\n const { user } = context.state\n\n const queryBuilder = getRepository(Board).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n var joinStatement = ''\n switch (DATABASE_TYPE) {\n case 'postgres':\n joinStatement = 'CAST(Board.id as VARCHAR) = Favorite.routing'\n break\n case 'sqlite':\n default:\n joinStatement = 'Board.id = Favorite.routing'\n }\n\n var qb = queryBuilder\n .innerJoin(Favorite, 'Favorite', joinStatement)\n .select([\n 'Board.id as id',\n 'Board.name as name',\n 'Board.description as description',\n 'Board.thumbnail as thumbnail',\n 'Favorite.id as favoriteId'\n ])\n .andWhere('Favorite.user = :userId', {\n userId: user.id\n })\n\n const items = await qb.getRawMany()\n const total = await qb.getCount()\n\n return { items, total }\n }\n}\n"]}
@@ -1,8 +0,0 @@
1
- import { Board } from '../board/board.js';
2
- export declare class BoardFavorite extends Board {
3
- favoriteId?: string;
4
- }
5
- export declare class BoardFavoriteList {
6
- items: BoardFavorite[];
7
- total: number;
8
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BoardFavoriteList = exports.BoardFavorite = void 0;
4
- const tslib_1 = require("tslib");
5
- const type_graphql_1 = require("type-graphql");
6
- const board_js_1 = require("../board/board.js");
7
- let BoardFavorite = class BoardFavorite extends board_js_1.Board {
8
- };
9
- exports.BoardFavorite = BoardFavorite;
10
- tslib_1.__decorate([
11
- (0, type_graphql_1.Field)({ nullable: true }),
12
- tslib_1.__metadata("design:type", String)
13
- ], BoardFavorite.prototype, "favoriteId", void 0);
14
- exports.BoardFavorite = BoardFavorite = tslib_1.__decorate([
15
- (0, type_graphql_1.ObjectType)()
16
- ], BoardFavorite);
17
- let BoardFavoriteList = class BoardFavoriteList {
18
- };
19
- exports.BoardFavoriteList = BoardFavoriteList;
20
- tslib_1.__decorate([
21
- (0, type_graphql_1.Field)(type => [BoardFavorite]),
22
- tslib_1.__metadata("design:type", Array)
23
- ], BoardFavoriteList.prototype, "items", void 0);
24
- tslib_1.__decorate([
25
- (0, type_graphql_1.Field)(type => type_graphql_1.Int),
26
- tslib_1.__metadata("design:type", Number)
27
- ], BoardFavoriteList.prototype, "total", void 0);
28
- exports.BoardFavoriteList = BoardFavoriteList = tslib_1.__decorate([
29
- (0, type_graphql_1.ObjectType)()
30
- ], BoardFavoriteList);
31
- //# sourceMappingURL=board-favorite-type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"board-favorite-type.js","sourceRoot":"","sources":["../../../server/service/board-favorite/board-favorite-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAqD;AAErD,gDAAyC;AAGlC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,gBAAK;CAGvC,CAAA;AAHY,sCAAa;AAExB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACP;wBAFR,aAAa;IADzB,IAAA,yBAAU,GAAE;GACA,aAAa,CAGzB;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAM7B,CAAA;AANY,8CAAiB;AAE5B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;;gDACT;AAGtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;gDACN;4BALF,iBAAiB;IAD7B,IAAA,yBAAU,GAAE;GACA,iBAAiB,CAM7B","sourcesContent":["import { ObjectType, Field, Int } from 'type-graphql'\n\nimport { Board } from '../board/board.js'\n\n@ObjectType()\nexport class BoardFavorite extends Board {\n @Field({ nullable: true })\n favoriteId?: string\n}\n\n@ObjectType()\nexport class BoardFavoriteList {\n @Field(type => [BoardFavorite])\n items: BoardFavorite[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { BoardFavoriteQuery } from './board-favorite-query.js';
2
- export declare const entities: any[];
3
- export declare const resolvers: (typeof BoardFavoriteQuery)[];
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolvers = exports.entities = void 0;
4
- const board_favorite_query_js_1 = require("./board-favorite-query.js");
5
- exports.entities = [];
6
- exports.resolvers = [board_favorite_query_js_1.BoardFavoriteQuery];
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/board-favorite/index.ts"],"names":[],"mappings":";;;AAAA,uEAA8D;AAEjD,QAAA,QAAQ,GAAG,EAAE,CAAA;AACb,QAAA,SAAS,GAAG,CAAC,4CAAkB,CAAC,CAAA","sourcesContent":["import { BoardFavoriteQuery } from './board-favorite-query.js'\n\nexport const entities = []\nexport const resolvers = [BoardFavoriteQuery]\n"]}
@@ -1,8 +0,0 @@
1
- import { BoardTemplate } from './board-template.js';
2
- import { NewBoardTemplate, BoardTemplatePatch } from './board-template-type.js';
3
- export declare class BoardTemplateMutation {
4
- createBoardTemplate(boardTemplate: NewBoardTemplate, context: ResolverContext): Promise<BoardTemplate>;
5
- updateBoardTemplate(id: string, patch: BoardTemplatePatch, context: ResolverContext): Promise<BoardTemplate>;
6
- deleteBoardTemplate(id: string, context: ResolverContext): Promise<boolean>;
7
- registerBoardAsTemplate(id: string, name: string, description: string, visibility: string, context: ResolverContext): Promise<BoardTemplate>;
8
- }
@@ -1,146 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BoardTemplateMutation = void 0;
4
- const tslib_1 = require("tslib");
5
- const type_graphql_1 = require("type-graphql");
6
- const shell_1 = require("@things-factory/shell");
7
- const board_template_js_1 = require("./board-template.js");
8
- const board_js_1 = require("../board/board.js");
9
- const board_template_type_js_1 = require("./board-template-type.js");
10
- const thumbnail_js_1 = require("../../controllers/thumbnail.js");
11
- let BoardTemplateMutation = class BoardTemplateMutation {
12
- async createBoardTemplate(boardTemplate, context) {
13
- const { domain, user, tx } = context.state;
14
- const repository = (0, shell_1.getRepository)(board_template_js_1.BoardTemplate, tx);
15
- const oldBoardTemplate = await repository.findOneBy({
16
- name: boardTemplate.name,
17
- domain: { id: domain.id }
18
- });
19
- if (oldBoardTemplate) {
20
- throw new Error(context.t('error.board-template name is already taken', { name: boardTemplate.name }));
21
- }
22
- const newBoardTemplate = Object.assign({}, boardTemplate);
23
- const base64 = await (0, thumbnail_js_1.thumbnail)({
24
- model: boardTemplate.model,
25
- context
26
- });
27
- if (base64) {
28
- newBoardTemplate.thumbnail = 'data:image/png;base64,' + base64.toString('base64');
29
- }
30
- else {
31
- newBoardTemplate.thumbnail = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
32
- }
33
- return await repository.save(Object.assign(Object.assign({ domain }, newBoardTemplate), { creator: user, updater: user }));
34
- }
35
- async updateBoardTemplate(id, patch, context) {
36
- const { domain, user, tx } = context.state;
37
- const repository = (0, shell_1.getRepository)(board_template_js_1.BoardTemplate, tx);
38
- const boardTemplate = await repository.findOne({
39
- where: { domain: { id: domain.id }, id }
40
- });
41
- if (patch.model) {
42
- const base64 = await (0, thumbnail_js_1.thumbnail)({
43
- model: patch.model,
44
- context
45
- });
46
- if (base64) {
47
- patch.thumbnail = 'data:image/png;base64,' + base64.toString('base64');
48
- }
49
- else {
50
- patch.thumbnail = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
51
- }
52
- }
53
- return await repository.save(Object.assign(Object.assign(Object.assign({}, boardTemplate), patch), { updater: user }));
54
- }
55
- async deleteBoardTemplate(id, context) {
56
- const { domain, tx } = context.state;
57
- await (0, shell_1.getRepository)(board_template_js_1.BoardTemplate, tx).delete({ domain: { id: domain.id }, id });
58
- return true;
59
- }
60
- async registerBoardAsTemplate(id, name, description, visibility, context) {
61
- const { domain, user, notify, tx } = context.state;
62
- const boardTemplateRepository = (0, shell_1.getRepository)(board_template_js_1.BoardTemplate, tx);
63
- const board = await (0, shell_1.getRepository)(board_js_1.Board, tx).findOne({
64
- where: { domain: { id: domain.id }, id }
65
- });
66
- if (!board) {
67
- throw `Board given id(${id}) is not found`;
68
- }
69
- name || (name = board.name);
70
- const { model, thumbnail } = board;
71
- const boardTemplate = await boardTemplateRepository.findOne({
72
- where: { domain: { id: domain.id }, name }
73
- });
74
- const registered = boardTemplate
75
- ? await boardTemplateRepository.save(Object.assign(Object.assign({}, boardTemplate), { name, description: description || boardTemplate.description, visibility: visibility || boardTemplate.visibility, model,
76
- thumbnail, updater: user }))
77
- : await boardTemplateRepository.save({
78
- domain: { id: domain.id },
79
- name,
80
- description: description || board.description,
81
- model,
82
- thumbnail,
83
- visibility: visibility || 'private',
84
- updater: user,
85
- creator: user
86
- });
87
- notify &&
88
- notify({
89
- mode: 'in-app',
90
- title: `BoardTemplate '${registered.name}' registered`,
91
- body: `BoardTemplate '${registered.name}' registered by ${user.name}\n${registered.description}`,
92
- image: (0, shell_1.getRedirectSubdomainPath)(context, domain, `/board-template-thumbnail/${registered.id}`),
93
- url: (0, shell_1.getRedirectSubdomainPath)(context, domain, `/board-template-viewer/${registered.id}`)
94
- });
95
- return registered;
96
- }
97
- };
98
- exports.BoardTemplateMutation = BoardTemplateMutation;
99
- tslib_1.__decorate([
100
- (0, type_graphql_1.Directive)('@transaction'),
101
- (0, type_graphql_1.Directive)('@privilege(category: "board-template", privilege: "mutation", domainOwnerGranted: true)'),
102
- (0, type_graphql_1.Mutation)(returns => board_template_js_1.BoardTemplate, { description: 'To create new BoardTemplate' }),
103
- tslib_1.__param(0, (0, type_graphql_1.Arg)('boardTemplate')),
104
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
105
- tslib_1.__metadata("design:type", Function),
106
- tslib_1.__metadata("design:paramtypes", [board_template_type_js_1.NewBoardTemplate, Object]),
107
- tslib_1.__metadata("design:returntype", Promise)
108
- ], BoardTemplateMutation.prototype, "createBoardTemplate", null);
109
- tslib_1.__decorate([
110
- (0, type_graphql_1.Directive)('@transaction'),
111
- (0, type_graphql_1.Directive)('@privilege(category: "board-template", privilege: "mutation", domainOwnerGranted: true)'),
112
- (0, type_graphql_1.Mutation)(returns => board_template_js_1.BoardTemplate, { description: 'To modify BoardTemplate information' }),
113
- tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
114
- tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
115
- tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
116
- tslib_1.__metadata("design:type", Function),
117
- tslib_1.__metadata("design:paramtypes", [String, board_template_type_js_1.BoardTemplatePatch, Object]),
118
- tslib_1.__metadata("design:returntype", Promise)
119
- ], BoardTemplateMutation.prototype, "updateBoardTemplate", null);
120
- tslib_1.__decorate([
121
- (0, type_graphql_1.Directive)('@transaction'),
122
- (0, type_graphql_1.Directive)('@privilege(category: "board-template", privilege: "mutation", domainOwnerGranted: true)'),
123
- (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete BoardTemplate' }),
124
- tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
125
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
126
- tslib_1.__metadata("design:type", Function),
127
- tslib_1.__metadata("design:paramtypes", [String, Object]),
128
- tslib_1.__metadata("design:returntype", Promise)
129
- ], BoardTemplateMutation.prototype, "deleteBoardTemplate", null);
130
- tslib_1.__decorate([
131
- (0, type_graphql_1.Directive)('@transaction'),
132
- (0, type_graphql_1.Directive)('@privilege(category: "board-template", privilege: "mutation", domainOwnerGranted: true)'),
133
- (0, type_graphql_1.Mutation)(returns => board_template_js_1.BoardTemplate, { description: 'To register a board as a board template with the given ID' }),
134
- tslib_1.__param(0, (0, type_graphql_1.Arg)('id', { description: 'board Id to be regiestered' })),
135
- tslib_1.__param(1, (0, type_graphql_1.Arg)('name', { description: 'name of board template to be regiestered' })),
136
- tslib_1.__param(2, (0, type_graphql_1.Arg)('description', { description: 'description of board template to be regiestered' })),
137
- tslib_1.__param(3, (0, type_graphql_1.Arg)('visibility', { description: 'visibility of board template to be regiestered' })),
138
- tslib_1.__param(4, (0, type_graphql_1.Ctx)()),
139
- tslib_1.__metadata("design:type", Function),
140
- tslib_1.__metadata("design:paramtypes", [String, String, String, String, Object]),
141
- tslib_1.__metadata("design:returntype", Promise)
142
- ], BoardTemplateMutation.prototype, "registerBoardAsTemplate", null);
143
- exports.BoardTemplateMutation = BoardTemplateMutation = tslib_1.__decorate([
144
- (0, type_graphql_1.Resolver)(board_template_js_1.BoardTemplate)
145
- ], BoardTemplateMutation);
146
- //# sourceMappingURL=board-template-mutation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"board-template-mutation.js","sourceRoot":"","sources":["../../../server/service/board-template/board-template-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\n\nimport { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'\nimport { BoardTemplate } from './board-template.js'\nimport { Board } from '../board/board.js'\nimport { NewBoardTemplate, BoardTemplatePatch } from './board-template-type.js'\nimport { thumbnail } from '../../controllers/thumbnail.js'\n\n@Resolver(BoardTemplate)\nexport class BoardTemplateMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"board-template\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => BoardTemplate, { description: 'To create new BoardTemplate' })\n async createBoardTemplate(\n @Arg('boardTemplate') boardTemplate: NewBoardTemplate,\n @Ctx() context: ResolverContext\n ): Promise<BoardTemplate> {\n const { domain, user, tx } = context.state\n const repository = getRepository(BoardTemplate, tx)\n\n const oldBoardTemplate: BoardTemplate = await repository.findOneBy({\n name: boardTemplate.name,\n domain: { id: domain.id }\n })\n\n if (oldBoardTemplate) {\n throw new Error(context.t('error.board-template name is already taken', { name: boardTemplate.name }))\n }\n\n const newBoardTemplate: Partial<BoardTemplate> = {\n ...boardTemplate\n }\n\n const base64 = await thumbnail({\n model: boardTemplate.model,\n context\n })\n\n if (base64) {\n newBoardTemplate.thumbnail = 'data:image/png;base64,' + base64.toString('base64')\n } else {\n newBoardTemplate.thumbnail = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='\n }\n\n return await repository.save({\n domain,\n ...newBoardTemplate,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"board-template\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => BoardTemplate, { description: 'To modify BoardTemplate information' })\n async updateBoardTemplate(\n @Arg('id') id: string,\n @Arg('patch') patch: BoardTemplatePatch,\n @Ctx() context: ResolverContext\n ): Promise<BoardTemplate> {\n const { domain, user, tx } = context.state\n const repository = getRepository(BoardTemplate, tx)\n\n const boardTemplate = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (patch.model) {\n const base64 = await thumbnail({\n model: patch.model,\n context\n })\n\n if (base64) {\n patch.thumbnail = 'data:image/png;base64,' + base64.toString('base64')\n } else {\n patch.thumbnail = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='\n }\n }\n\n return await repository.save({\n ...boardTemplate,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"board-template\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete BoardTemplate' })\n async deleteBoardTemplate(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(BoardTemplate, tx).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"board-template\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => BoardTemplate, { description: 'To register a board as a board template with the given ID' })\n async registerBoardAsTemplate(\n @Arg('id', { description: 'board Id to be regiestered' }) id: string,\n @Arg('name', { description: 'name of board template to be regiestered' }) name: string,\n @Arg('description', { description: 'description of board template to be regiestered' }) description: string,\n @Arg('visibility', { description: 'visibility of board template to be regiestered' }) visibility: string,\n @Ctx() context: ResolverContext\n ): Promise<BoardTemplate> {\n const { domain, user, notify, tx } = context.state\n\n const boardTemplateRepository = getRepository(BoardTemplate, tx)\n\n const board = await getRepository(Board, tx).findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!board) {\n throw `Board given id(${id}) is not found`\n }\n\n name ||= board.name\n\n const { model, thumbnail } = board\n\n const boardTemplate = await boardTemplateRepository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n const registered = boardTemplate\n ? await boardTemplateRepository.save({\n ...boardTemplate,\n name,\n description: description || boardTemplate.description,\n visibility: visibility || boardTemplate.visibility,\n model,\n thumbnail,\n updater: user\n })\n : await boardTemplateRepository.save({\n domain: { id: domain.id },\n name,\n description: description || board.description,\n model,\n thumbnail,\n visibility: visibility || 'private',\n updater: user,\n creator: user\n })\n\n notify &&\n notify({\n mode: 'in-app',\n title: `BoardTemplate '${registered.name}' registered`,\n body: `BoardTemplate '${registered.name}' registered by ${user.name}\\n${registered.description}`,\n image: getRedirectSubdomainPath(context, domain, `/board-template-thumbnail/${registered.id}`),\n url: getRedirectSubdomainPath(context, domain, `/board-template-viewer/${registered.id}`)\n })\n\n return registered\n }\n}\n"]}
@@ -1,13 +0,0 @@
1
- import { Domain, ListParam } from '@things-factory/shell';
2
- import { User } from '@things-factory/auth-base';
3
- import { BoardTemplate } from './board-template.js';
4
- import { BoardTemplateList } from './board-template-type.js';
5
- export declare class BoardTemplateQuery {
6
- boardTemplate(id: string, context: ResolverContext): Promise<BoardTemplate>;
7
- boardTemplatesCreatedByMe(params: ListParam, context: ResolverContext): Promise<BoardTemplateList>;
8
- boardTemplates(params: ListParam, context: ResolverContext): Promise<BoardTemplateList>;
9
- mine(boardTemplate: BoardTemplate, context: ResolverContext): Promise<boolean>;
10
- domain(boardTemplate: BoardTemplate): Promise<Domain>;
11
- updater(boardTemplate: BoardTemplate): Promise<User>;
12
- creator(boardTemplate: BoardTemplate): Promise<User>;
13
- }
@@ -1,147 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BoardTemplateQuery = void 0;
4
- const tslib_1 = require("tslib");
5
- const typeorm_1 = require("typeorm");
6
- const type_graphql_1 = require("type-graphql");
7
- const shell_1 = require("@things-factory/shell");
8
- const auth_base_1 = require("@things-factory/auth-base");
9
- const board_template_js_1 = require("./board-template.js");
10
- const board_template_type_js_1 = require("./board-template-type.js");
11
- let BoardTemplateQuery = class BoardTemplateQuery {
12
- async boardTemplate(id, context) {
13
- const { domain, user } = context.state;
14
- const qb = await (0, shell_1.getRepository)(board_template_js_1.BoardTemplate)
15
- .createQueryBuilder('BoardTemplate')
16
- .where('id=:id', { id })
17
- .andWhere(new typeorm_1.Brackets(qb => {
18
- qb.where({ visibility: 'public' })
19
- .orWhere({
20
- visibility: 'domain',
21
- domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId]) }
22
- })
23
- .orWhere({
24
- visibility: 'private',
25
- creator: { id: user.id }
26
- });
27
- }));
28
- return qb.getOne();
29
- // return await getRepository(BoardTemplate).findOne({
30
- // where: {
31
- // domain: { id: In([domain.id, domain.parentId].filter(Boolean)) },
32
- // id
33
- // }
34
- // })
35
- }
36
- async boardTemplatesCreatedByMe(params, context) {
37
- const { user } = context.state;
38
- const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
39
- repository: (0, shell_1.getRepository)(board_template_js_1.BoardTemplate),
40
- params,
41
- alias: 'template',
42
- searchables: ['name', 'description']
43
- }).andWhere('template.creator = :user', { user: user.id });
44
- const [items, total] = await queryBuilder.getManyAndCount();
45
- return { items, total };
46
- }
47
- async boardTemplates(params, context) {
48
- const { domain, user } = context.state;
49
- /*
50
- 리스트에 포함되는 보드템플릿들
51
- - visibility가 public 인 경우
52
- - visibility가 domain이며 컨텍스트의 도메인과 같은 경우
53
- - visibility가 private 이며, creator가 나인 경우
54
- */
55
- const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
56
- params,
57
- repository: await (0, shell_1.getRepository)(board_template_js_1.BoardTemplate),
58
- searchables: ['name', 'description']
59
- }).andWhere(new typeorm_1.Brackets(qb => {
60
- qb.where({ visibility: 'public' })
61
- .orWhere({
62
- visibility: 'domain',
63
- domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId]) }
64
- })
65
- .orWhere({
66
- visibility: 'private',
67
- creator: { id: user.id }
68
- });
69
- }));
70
- const [items, total] = await queryBuilder.getManyAndCount();
71
- return { items, total };
72
- }
73
- async mine(boardTemplate, context) {
74
- const { creatorId } = boardTemplate;
75
- const { user } = context.state;
76
- return creatorId == user.id;
77
- }
78
- async domain(boardTemplate) {
79
- return boardTemplate.domainId && (await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: boardTemplate.domainId }));
80
- }
81
- async updater(boardTemplate) {
82
- return boardTemplate.updaterId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: boardTemplate.updaterId }));
83
- }
84
- async creator(boardTemplate) {
85
- return boardTemplate.creatorId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: boardTemplate.creatorId }));
86
- }
87
- };
88
- exports.BoardTemplateQuery = BoardTemplateQuery;
89
- tslib_1.__decorate([
90
- (0, type_graphql_1.Query)(returns => board_template_js_1.BoardTemplate, { nullable: true, description: 'To fetch a BoardTemplate' }),
91
- (0, type_graphql_1.Directive)('@privilege(category: "board-template", privilege: "query", domainOwnerGranted: true)'),
92
- tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
93
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
94
- tslib_1.__metadata("design:type", Function),
95
- tslib_1.__metadata("design:paramtypes", [String, Object]),
96
- tslib_1.__metadata("design:returntype", Promise)
97
- ], BoardTemplateQuery.prototype, "boardTemplate", null);
98
- tslib_1.__decorate([
99
- (0, type_graphql_1.Query)(returns => board_template_type_js_1.BoardTemplateList, { description: 'To fetch BoardTemplates created by me' }),
100
- tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
101
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
102
- tslib_1.__metadata("design:type", Function),
103
- tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
104
- tslib_1.__metadata("design:returntype", Promise)
105
- ], BoardTemplateQuery.prototype, "boardTemplatesCreatedByMe", null);
106
- tslib_1.__decorate([
107
- (0, type_graphql_1.Query)(returns => board_template_type_js_1.BoardTemplateList, { description: 'To fetch multiple BoardTemplates' }),
108
- (0, type_graphql_1.Directive)('@privilege(category: "board-template", privilege: "query", domainOwnerGranted: true)'),
109
- tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
110
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
111
- tslib_1.__metadata("design:type", Function),
112
- tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
113
- tslib_1.__metadata("design:returntype", Promise)
114
- ], BoardTemplateQuery.prototype, "boardTemplates", null);
115
- tslib_1.__decorate([
116
- (0, type_graphql_1.FieldResolver)(type => Boolean),
117
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
118
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
119
- tslib_1.__metadata("design:type", Function),
120
- tslib_1.__metadata("design:paramtypes", [board_template_js_1.BoardTemplate, Object]),
121
- tslib_1.__metadata("design:returntype", Promise)
122
- ], BoardTemplateQuery.prototype, "mine", null);
123
- tslib_1.__decorate([
124
- (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
125
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
126
- tslib_1.__metadata("design:type", Function),
127
- tslib_1.__metadata("design:paramtypes", [board_template_js_1.BoardTemplate]),
128
- tslib_1.__metadata("design:returntype", Promise)
129
- ], BoardTemplateQuery.prototype, "domain", null);
130
- tslib_1.__decorate([
131
- (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
132
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
133
- tslib_1.__metadata("design:type", Function),
134
- tslib_1.__metadata("design:paramtypes", [board_template_js_1.BoardTemplate]),
135
- tslib_1.__metadata("design:returntype", Promise)
136
- ], BoardTemplateQuery.prototype, "updater", null);
137
- tslib_1.__decorate([
138
- (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
139
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
140
- tslib_1.__metadata("design:type", Function),
141
- tslib_1.__metadata("design:paramtypes", [board_template_js_1.BoardTemplate]),
142
- tslib_1.__metadata("design:returntype", Promise)
143
- ], BoardTemplateQuery.prototype, "creator", null);
144
- exports.BoardTemplateQuery = BoardTemplateQuery = tslib_1.__decorate([
145
- (0, type_graphql_1.Resolver)(board_template_js_1.BoardTemplate)
146
- ], BoardTemplateQuery);
147
- //# sourceMappingURL=board-template-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"board-template-query.js","sourceRoot":"","sources":["../../../server/service/board-template/board-template-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Brackets, In } from 'typeorm'\nimport { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { BoardTemplate } from './board-template.js'\nimport { BoardTemplateList } from './board-template-type.js'\n\n@Resolver(BoardTemplate)\nexport class BoardTemplateQuery {\n @Query(returns => BoardTemplate!, { nullable: true, description: 'To fetch a BoardTemplate' })\n @Directive('@privilege(category: \"board-template\", privilege: \"query\", domainOwnerGranted: true)')\n async boardTemplate(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BoardTemplate> {\n const { domain, user } = context.state\n\n const qb = await getRepository(BoardTemplate)\n .createQueryBuilder('BoardTemplate')\n .where('id=:id', { id })\n .andWhere(\n new Brackets(qb => {\n qb.where({ visibility: 'public' })\n .orWhere({\n visibility: 'domain',\n domain: { id: In([domain.id, domain.parentId]) }\n })\n .orWhere({\n visibility: 'private',\n creator: { id: user.id }\n })\n })\n )\n\n return qb.getOne()\n\n // return await getRepository(BoardTemplate).findOne({\n // where: {\n // domain: { id: In([domain.id, domain.parentId].filter(Boolean)) },\n // id\n // }\n // })\n }\n\n @Query(returns => BoardTemplateList, { description: 'To fetch BoardTemplates created by me' })\n async boardTemplatesCreatedByMe(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BoardTemplateList> {\n const { user } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(BoardTemplate),\n params,\n alias: 'template',\n searchables: ['name', 'description']\n }).andWhere('template.creator = :user', { user: user.id })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => BoardTemplateList, { description: 'To fetch multiple BoardTemplates' })\n @Directive('@privilege(category: \"board-template\", privilege: \"query\", domainOwnerGranted: true)')\n async boardTemplates(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BoardTemplateList> {\n const { domain, user } = context.state\n /* \n 리스트에 포함되는 보드템플릿들 \n - visibility가 public 인 경우\n - visibility가 domain이며 컨텍스트의 도메인과 같은 경우\n - visibility가 private 이며, creator가 나인 경우\n */\n\n const queryBuilder = getQueryBuilderFromListParams({\n params,\n repository: await getRepository(BoardTemplate),\n searchables: ['name', 'description']\n }).andWhere(\n new Brackets(qb => {\n qb.where({ visibility: 'public' })\n .orWhere({\n visibility: 'domain',\n domain: { id: In([domain.id, domain.parentId]) }\n })\n .orWhere({\n visibility: 'private',\n creator: { id: user.id }\n })\n })\n )\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Boolean)\n async mine(@Root() boardTemplate: BoardTemplate, @Ctx() context: ResolverContext): Promise<boolean> {\n const { creatorId } = boardTemplate\n const { user } = context.state\n\n return creatorId == user.id\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() boardTemplate: BoardTemplate): Promise<Domain> {\n return boardTemplate.domainId && (await getRepository(Domain).findOneBy({ id: boardTemplate.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() boardTemplate: BoardTemplate): Promise<User> {\n return boardTemplate.updaterId && (await getRepository(User).findOneBy({ id: boardTemplate.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() boardTemplate: BoardTemplate): Promise<User> {\n return boardTemplate.creatorId && (await getRepository(User).findOneBy({ id: boardTemplate.creatorId }))\n }\n}\n"]}