@things-factory/board-service 9.0.0-beta.8 → 9.0.0-beta.80
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.
- package/dist-server/controllers/analyzer/analyze-integration.js +4 -4
- package/dist-server/controllers/analyzer/analyze-integration.js.map +1 -1
- package/dist-server/controllers/fonts.js +12 -9
- package/dist-server/controllers/fonts.js.map +1 -1
- package/dist-server/controllers/headless-model.d.ts +1 -1
- package/dist-server/controllers/headless-model.js +6 -6
- package/dist-server/controllers/headless-model.js.map +1 -1
- package/dist-server/controllers/headless-playlist.d.ts +1 -1
- package/dist-server/controllers/headless-playlist.js +5 -5
- package/dist-server/controllers/headless-playlist.js.map +1 -1
- package/dist-server/controllers/headless-pool-for-label.js +4 -17
- package/dist-server/controllers/headless-pool-for-label.js.map +1 -1
- package/dist-server/controllers/index.d.ts +1 -1
- package/dist-server/controllers/index.js +8 -8
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/controllers/label-command.js +5 -5
- package/dist-server/controllers/label-command.js.map +1 -1
- package/dist-server/controllers/pdf.d.ts +9 -1
- package/dist-server/controllers/pdf.js +18 -11
- package/dist-server/controllers/pdf.js.map +1 -1
- package/dist-server/controllers/screenshot.js +14 -10
- package/dist-server/controllers/screenshot.js.map +1 -1
- package/dist-server/controllers/thumbnail.js +2 -2
- package/dist-server/controllers/thumbnail.js.map +1 -1
- package/dist-server/errors/index.d.ts +1 -1
- package/dist-server/errors/index.js +1 -1
- package/dist-server/errors/index.js.map +1 -1
- package/dist-server/errors/license-error.js +4 -2
- package/dist-server/errors/license-error.js.map +1 -1
- package/dist-server/index.d.ts +4 -4
- package/dist-server/index.js +4 -4
- package/dist-server/index.js.map +1 -1
- package/dist-server/migrations/1556862253000-SeedGroup.js +7 -4
- package/dist-server/migrations/1556862253000-SeedGroup.js.map +1 -1
- package/dist-server/routers/internal-board-view-router.js +1 -1
- package/dist-server/routers/internal-board-view-router.js.map +1 -1
- package/dist-server/routers/standalone-board-service-router.js +41 -41
- package/dist-server/routers/standalone-board-service-router.js.map +1 -1
- package/dist-server/routes.js +12 -10
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/analysis/analysis-query.js +2 -2
- package/dist-server/service/analysis/analysis-query.js.map +1 -1
- package/dist-server/service/analysis/index.d.ts +1 -1
- package/dist-server/service/analysis/index.js +2 -2
- package/dist-server/service/analysis/index.js.map +1 -1
- package/dist-server/service/board/board-history.d.ts +4 -3
- package/dist-server/service/board/board-history.js +12 -7
- package/dist-server/service/board/board-history.js.map +1 -1
- package/dist-server/service/board/board-mutation.d.ts +2 -2
- package/dist-server/service/board/board-mutation.js +107 -52
- package/dist-server/service/board/board-mutation.js.map +1 -1
- package/dist-server/service/board/board-query.d.ts +5 -5
- package/dist-server/service/board/board-query.js +35 -36
- package/dist-server/service/board/board-query.js.map +1 -1
- package/dist-server/service/board/board-subscription.d.ts +1 -1
- package/dist-server/service/board/board-subscription.js +5 -6
- package/dist-server/service/board/board-subscription.js.map +1 -1
- package/dist-server/service/board/board-type.d.ts +4 -2
- package/dist-server/service/board/board-type.js +12 -4
- package/dist-server/service/board/board-type.js.map +1 -1
- package/dist-server/service/board/board.d.ts +3 -2
- package/dist-server/service/board/board.js +12 -7
- package/dist-server/service/board/board.js.map +1 -1
- package/dist-server/service/board/event-subscriber.d.ts +5 -5
- package/dist-server/service/board/event-subscriber.js +8 -8
- package/dist-server/service/board/event-subscriber.js.map +1 -1
- package/dist-server/service/board/index.d.ts +6 -6
- package/dist-server/service/board/index.js +9 -9
- package/dist-server/service/board/index.js.map +1 -1
- package/dist-server/service/board-favorite/board-favorite-query.d.ts +1 -1
- package/dist-server/service/board-favorite/board-favorite-query.js +5 -5
- package/dist-server/service/board-favorite/board-favorite-query.js.map +1 -1
- package/dist-server/service/board-favorite/board-favorite-type.d.ts +1 -1
- package/dist-server/service/board-favorite/board-favorite-type.js +2 -2
- package/dist-server/service/board-favorite/board-favorite-type.js.map +1 -1
- package/dist-server/service/board-favorite/index.d.ts +1 -1
- package/dist-server/service/board-favorite/index.js +2 -2
- package/dist-server/service/board-favorite/index.js.map +1 -1
- package/dist-server/service/board-template/board-template-mutation.d.ts +2 -2
- package/dist-server/service/board-template/board-template-mutation.js +43 -25
- package/dist-server/service/board-template/board-template-mutation.js.map +1 -1
- package/dist-server/service/board-template/board-template-query.d.ts +2 -2
- package/dist-server/service/board-template/board-template-query.js +13 -13
- package/dist-server/service/board-template/board-template-query.js.map +1 -1
- package/dist-server/service/board-template/board-template-type.d.ts +1 -1
- package/dist-server/service/board-template/board-template-type.js +2 -2
- package/dist-server/service/board-template/board-template-type.js.map +1 -1
- package/dist-server/service/board-template/index.d.ts +3 -3
- package/dist-server/service/board-template/index.js +5 -5
- package/dist-server/service/board-template/index.js.map +1 -1
- package/dist-server/service/group/group-mutation.d.ts +2 -2
- package/dist-server/service/group/group-mutation.js +24 -15
- package/dist-server/service/group/group-mutation.js.map +1 -1
- package/dist-server/service/group/group-query.d.ts +3 -3
- package/dist-server/service/group/group-query.js +14 -14
- package/dist-server/service/group/group-query.js.map +1 -1
- package/dist-server/service/group/group-type.d.ts +1 -1
- package/dist-server/service/group/group-type.js +2 -2
- package/dist-server/service/group/group-type.js.map +1 -1
- package/dist-server/service/group/group.d.ts +1 -1
- package/dist-server/service/group/group.js +3 -3
- package/dist-server/service/group/group.js.map +1 -1
- package/dist-server/service/group/index.d.ts +3 -3
- package/dist-server/service/group/index.js +5 -5
- package/dist-server/service/group/index.js.map +1 -1
- package/dist-server/service/index.d.ts +6 -6
- package/dist-server/service/index.js +31 -31
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/permission/domain-permission-subscriber.js +3 -3
- package/dist-server/service/permission/domain-permission-subscriber.js.map +1 -1
- package/dist-server/service/permission/index.d.ts +1 -1
- package/dist-server/service/permission/index.js +2 -2
- package/dist-server/service/permission/index.js.map +1 -1
- package/dist-server/service/play-group/event-subscriber.d.ts +1 -1
- package/dist-server/service/play-group/event-subscriber.js +3 -3
- package/dist-server/service/play-group/event-subscriber.js.map +1 -1
- package/dist-server/service/play-group/index.d.ts +5 -5
- package/dist-server/service/play-group/index.js +8 -8
- package/dist-server/service/play-group/index.js.map +1 -1
- package/dist-server/service/play-group/play-group-mutation.d.ts +2 -2
- package/dist-server/service/play-group/play-group-mutation.js +34 -21
- package/dist-server/service/play-group/play-group-mutation.js.map +1 -1
- package/dist-server/service/play-group/play-group-query.d.ts +3 -3
- package/dist-server/service/play-group/play-group-query.js +15 -15
- package/dist-server/service/play-group/play-group-query.js.map +1 -1
- package/dist-server/service/play-group/play-group-subscription.d.ts +1 -1
- package/dist-server/service/play-group/play-group-subscription.js +5 -6
- package/dist-server/service/play-group/play-group-subscription.js.map +1 -1
- package/dist-server/service/play-group/play-group-type.d.ts +1 -1
- package/dist-server/service/play-group/play-group-type.js +2 -2
- package/dist-server/service/play-group/play-group-type.js.map +1 -1
- package/dist-server/service/play-group/play-group.d.ts +1 -1
- package/dist-server/service/play-group/play-group.js +3 -3
- package/dist-server/service/play-group/play-group.js.map +1 -1
- package/dist-server/service/theme/index.d.ts +3 -3
- package/dist-server/service/theme/index.js +5 -5
- package/dist-server/service/theme/index.js.map +1 -1
- package/dist-server/service/theme/theme-mutation.d.ts +2 -2
- package/dist-server/service/theme/theme-mutation.js +39 -21
- package/dist-server/service/theme/theme-mutation.js.map +1 -1
- package/dist-server/service/theme/theme-query.d.ts +2 -2
- package/dist-server/service/theme/theme-query.js +10 -10
- package/dist-server/service/theme/theme-query.js.map +1 -1
- package/dist-server/service/theme/theme-type.d.ts +1 -1
- package/dist-server/service/theme/theme-type.js +2 -2
- package/dist-server/service/theme/theme-type.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -9
- package/views/internal-board-full-feature-view.html +0 -1
- package/views/internal-board-player-view.html +0 -1
- package/views/internal-board-service-view.html +0 -1
|
@@ -5,8 +5,8 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const typeorm_1 = require("typeorm");
|
|
6
6
|
const type_graphql_1 = require("type-graphql");
|
|
7
7
|
const shell_1 = require("@things-factory/shell");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const group_js_1 = require("../group/group.js");
|
|
9
|
+
const play_group_js_1 = require("../play-group/play-group.js");
|
|
10
10
|
const auth_base_1 = require("@things-factory/auth-base");
|
|
11
11
|
const env_1 = require("@things-factory/env");
|
|
12
12
|
const ORMCONFIG = env_1.config.get('ormconfig', {});
|
|
@@ -46,6 +46,11 @@ tslib_1.__decorate([
|
|
|
46
46
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
47
47
|
tslib_1.__metadata("design:type", String)
|
|
48
48
|
], Board.prototype, "description", void 0);
|
|
49
|
+
tslib_1.__decorate([
|
|
50
|
+
(0, typeorm_1.Column)({ nullable: true, default: 'main' }),
|
|
51
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
52
|
+
tslib_1.__metadata("design:type", String)
|
|
53
|
+
], Board.prototype, "type", void 0);
|
|
49
54
|
tslib_1.__decorate([
|
|
50
55
|
(0, typeorm_1.Column)({ nullable: true, default: 'draft' }),
|
|
51
56
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
@@ -82,17 +87,17 @@ tslib_1.__decorate([
|
|
|
82
87
|
tslib_1.__metadata("design:type", String)
|
|
83
88
|
], Board.prototype, "thumbnail", void 0);
|
|
84
89
|
tslib_1.__decorate([
|
|
85
|
-
(0, typeorm_1.ManyToOne)(type =>
|
|
86
|
-
(0, type_graphql_1.Field)(type =>
|
|
87
|
-
tslib_1.__metadata("design:type",
|
|
90
|
+
(0, typeorm_1.ManyToOne)(type => group_js_1.Group, group => group.boards),
|
|
91
|
+
(0, type_graphql_1.Field)(type => group_js_1.Group, { nullable: true }),
|
|
92
|
+
tslib_1.__metadata("design:type", group_js_1.Group)
|
|
88
93
|
], Board.prototype, "group", void 0);
|
|
89
94
|
tslib_1.__decorate([
|
|
90
95
|
(0, typeorm_1.RelationId)((board) => board.group),
|
|
91
96
|
tslib_1.__metadata("design:type", String)
|
|
92
97
|
], Board.prototype, "groupId", void 0);
|
|
93
98
|
tslib_1.__decorate([
|
|
94
|
-
(0, typeorm_1.ManyToMany)(type =>
|
|
95
|
-
(0, type_graphql_1.Field)(type => [
|
|
99
|
+
(0, typeorm_1.ManyToMany)(type => play_group_js_1.PlayGroup, playGroup => playGroup.boards),
|
|
100
|
+
(0, type_graphql_1.Field)(type => [play_group_js_1.PlayGroup], { nullable: true }),
|
|
96
101
|
tslib_1.__metadata("design:type", Array)
|
|
97
102
|
], Board.prototype, "playGroups", void 0);
|
|
98
103
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board.js","sourceRoot":"","sources":["../../../server/service/board/board.ts"],"names":[],"mappings":";;;;AAAA,qCAWgB;AAChB,+CAAoD;AAEpD,iDAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"board.js","sourceRoot":"","sources":["../../../server/service/board/board.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToMany,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n DeleteDateColumn,\n UpdateDateColumn\n} from 'typeorm'\nimport { Field, ID, ObjectType } from 'type-graphql'\n\nimport { Domain } from '@things-factory/shell'\nimport { Group } from '../group/group.js'\nimport { PlayGroup } from '../play-group/play-group.js'\nimport { User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_board_1', (board: Board) => [board.domain, board.name], {\n unique: true,\n where: '\"deleted_at\" IS NULL'\n})\n@Index('ix_board_3', (board: Board) => [board.domain, board.group])\n@ObjectType({ description: 'Entity for Visualization Board' })\nexport class Board {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { nullable: true })\n readonly id?: string\n\n @Column({ nullable: true, default: 1 })\n @Field({ nullable: true })\n version?: number = 1\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true })\n domain?: Domain\n\n @RelationId((board: Board) => board.domain)\n domainId?: string\n\n @Column()\n @Field()\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @Column({ nullable: true, default: 'main' })\n @Field({ nullable: true })\n type?: 'main' | 'sub' | 'popup'\n\n @Column({ nullable: true, default: 'draft' })\n @Field({ nullable: true })\n state?: 'draft' | 'released'\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined\n })\n @Field({ nullable: true })\n model?: string\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined\n })\n @Field({ nullable: true })\n thumbnail?: string\n\n @ManyToOne(type => Group, group => group.boards)\n @Field(type => Group, { nullable: true })\n group?: Group\n\n @RelationId((board: Board) => board.group)\n groupId?: string\n\n @ManyToMany(type => PlayGroup, playGroup => playGroup.boards)\n @Field(type => [PlayGroup], { nullable: true })\n playGroups?: PlayGroup[]\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((board: Board) => board.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((board: Board) => board.updater)\n updaterId?: string\n\n @DeleteDateColumn()\n @Field({ nullable: true })\n deletedAt?: Date\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { EntitySubscriberInterface,
|
|
1
|
+
import { EntitySubscriberInterface, UpdateEvent } from 'typeorm';
|
|
2
2
|
import { HistoryEntitySubscriber } from '@operato/typeorm-history';
|
|
3
|
-
import { Board } from './board';
|
|
4
|
-
import { BoardHistory } from './board-history';
|
|
3
|
+
import { Board } from './board.js';
|
|
4
|
+
import { BoardHistory } from './board-history.js';
|
|
5
5
|
export declare class BoardSubscriber implements EntitySubscriberInterface<Board> {
|
|
6
6
|
listenTo(): typeof Board;
|
|
7
7
|
beforeUpdate(event: UpdateEvent<Board>): Promise<any>;
|
|
@@ -10,6 +10,6 @@ export declare class BoardSubscriber implements EntitySubscriberInterface<Board>
|
|
|
10
10
|
export declare class BoardHistoryEntitySubscriber extends HistoryEntitySubscriber<Board, BoardHistory> {
|
|
11
11
|
get entity(): typeof Board;
|
|
12
12
|
get historyEntity(): typeof BoardHistory;
|
|
13
|
-
afterInsert(event:
|
|
14
|
-
afterUpdate(event:
|
|
13
|
+
afterInsert(event: any): Promise<void>;
|
|
14
|
+
afterUpdate(event: any): Promise<void>;
|
|
15
15
|
}
|
|
@@ -5,11 +5,11 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const typeorm_1 = require("typeorm");
|
|
6
6
|
const typeorm_history_1 = require("@operato/typeorm-history");
|
|
7
7
|
const shell_1 = require("@things-factory/shell");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const board_js_1 = require("./board.js");
|
|
9
|
+
const board_history_js_1 = require("./board-history.js");
|
|
10
10
|
let BoardSubscriber = class BoardSubscriber {
|
|
11
11
|
listenTo() {
|
|
12
|
-
return
|
|
12
|
+
return board_js_1.Board;
|
|
13
13
|
}
|
|
14
14
|
async beforeUpdate(event) {
|
|
15
15
|
var board = event.entity;
|
|
@@ -19,7 +19,7 @@ let BoardSubscriber = class BoardSubscriber {
|
|
|
19
19
|
}
|
|
20
20
|
async afterUpdate(event) {
|
|
21
21
|
var board = event.entity;
|
|
22
|
-
board = await event.manager.findOne(
|
|
22
|
+
board = await event.manager.findOne(board_js_1.Board, {
|
|
23
23
|
where: { domain: { id: board.domainId }, id: board.id },
|
|
24
24
|
relations: ['playGroups']
|
|
25
25
|
});
|
|
@@ -40,19 +40,19 @@ exports.BoardSubscriber = BoardSubscriber = tslib_1.__decorate([
|
|
|
40
40
|
], BoardSubscriber);
|
|
41
41
|
let BoardHistoryEntitySubscriber = class BoardHistoryEntitySubscriber extends typeorm_history_1.HistoryEntitySubscriber {
|
|
42
42
|
get entity() {
|
|
43
|
-
return
|
|
43
|
+
return board_js_1.Board;
|
|
44
44
|
}
|
|
45
45
|
get historyEntity() {
|
|
46
|
-
return
|
|
46
|
+
return board_history_js_1.BoardHistory;
|
|
47
47
|
}
|
|
48
48
|
async afterInsert(event) {
|
|
49
49
|
if (event.entity.state == 'released') {
|
|
50
|
-
super.afterInsert(event);
|
|
50
|
+
await super.afterInsert(event);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
async afterUpdate(event) {
|
|
54
54
|
if (event.entity.state == 'released') {
|
|
55
|
-
super.afterUpdate(event);
|
|
55
|
+
await super.afterUpdate(event);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-subscriber.js","sourceRoot":"","sources":["../../../server/service/board/event-subscriber.ts"],"names":[],"mappings":";;;;AAAA,qCAA8F;AAE9F,8DAAkE;AAClE,iDAA6D;AAE7D,
|
|
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,KAAK;QAC5B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAY,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAK;QAC5B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAY,CAAC,CAAA;QACvC,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): Promise<void> {\n if (event.entity.state == 'released') {\n await super.afterInsert(event as any)\n }\n }\n\n public async afterUpdate(event): Promise<void> {\n if (event.entity.state == 'released') {\n await super.afterUpdate(event as any)\n }\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Board } from './board';
|
|
2
|
-
import { BoardHistory } from './board-history';
|
|
3
|
-
import { BoardQuery } from './board-query';
|
|
4
|
-
import { BoardMutation } from './board-mutation';
|
|
5
|
-
import { BoardSubscription } from './board-subscription';
|
|
6
|
-
import { BoardSubscriber, BoardHistoryEntitySubscriber } from './event-subscriber';
|
|
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
7
|
export declare const entities: (typeof Board | typeof BoardHistory)[];
|
|
8
8
|
export declare const resolvers: (typeof BoardQuery | typeof BoardMutation | typeof BoardSubscription)[];
|
|
9
9
|
export declare const subscribers: (typeof BoardSubscriber | typeof BoardHistoryEntitySubscriber)[];
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.subscribers = exports.resolvers = exports.entities = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
exports.entities = [
|
|
11
|
-
exports.resolvers = [
|
|
12
|
-
exports.subscribers = [
|
|
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
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/board/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
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 +1,5 @@
|
|
|
1
1
|
import { ListParam } from '@things-factory/shell';
|
|
2
|
-
import { BoardFavoriteList } from './board-favorite-type';
|
|
2
|
+
import { BoardFavoriteList } from './board-favorite-type.js';
|
|
3
3
|
export declare class BoardFavoriteQuery {
|
|
4
4
|
favoriteBoards(params: ListParam, context: ResolverContext): Promise<BoardFavoriteList>;
|
|
5
5
|
}
|
|
@@ -6,14 +6,14 @@ const type_graphql_1 = require("type-graphql");
|
|
|
6
6
|
const env_1 = require("@things-factory/env");
|
|
7
7
|
const fav_base_1 = require("@things-factory/fav-base");
|
|
8
8
|
const shell_1 = require("@things-factory/shell");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
9
|
+
const board_js_1 = require("../board/board.js");
|
|
10
|
+
const board_favorite_type_js_1 = require("./board-favorite-type.js");
|
|
11
11
|
const ORMCONFIG = env_1.config.get('ormconfig', {});
|
|
12
12
|
const DATABASE_TYPE = ORMCONFIG.type;
|
|
13
13
|
let BoardFavoriteQuery = class BoardFavoriteQuery {
|
|
14
14
|
async favoriteBoards(params, context) {
|
|
15
15
|
const { user } = context.state;
|
|
16
|
-
const queryBuilder = (0, shell_1.getRepository)(
|
|
16
|
+
const queryBuilder = (0, shell_1.getRepository)(board_js_1.Board).createQueryBuilder();
|
|
17
17
|
(0, shell_1.buildQuery)(queryBuilder, params, context);
|
|
18
18
|
var joinStatement = '';
|
|
19
19
|
switch (DATABASE_TYPE) {
|
|
@@ -43,7 +43,7 @@ let BoardFavoriteQuery = class BoardFavoriteQuery {
|
|
|
43
43
|
};
|
|
44
44
|
exports.BoardFavoriteQuery = BoardFavoriteQuery;
|
|
45
45
|
tslib_1.__decorate([
|
|
46
|
-
(0, type_graphql_1.Query)(returns =>
|
|
46
|
+
(0, type_graphql_1.Query)(returns => board_favorite_type_js_1.BoardFavoriteList, { description: 'To fetch multiple BoardFavorites' }),
|
|
47
47
|
tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
48
48
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
49
49
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -51,6 +51,6 @@ tslib_1.__decorate([
|
|
|
51
51
|
tslib_1.__metadata("design:returntype", Promise)
|
|
52
52
|
], BoardFavoriteQuery.prototype, "favoriteBoards", null);
|
|
53
53
|
exports.BoardFavoriteQuery = BoardFavoriteQuery = tslib_1.__decorate([
|
|
54
|
-
(0, type_graphql_1.Resolver)(
|
|
54
|
+
(0, type_graphql_1.Resolver)(board_favorite_type_js_1.BoardFavorite)
|
|
55
55
|
], BoardFavoriteQuery);
|
|
56
56
|
//# sourceMappingURL=board-favorite-query.js.map
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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"]}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BoardFavoriteList = exports.BoardFavorite = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const type_graphql_1 = require("type-graphql");
|
|
6
|
-
const
|
|
7
|
-
let BoardFavorite = class BoardFavorite extends
|
|
6
|
+
const board_js_1 = require("../board/board.js");
|
|
7
|
+
let BoardFavorite = class BoardFavorite extends board_js_1.Board {
|
|
8
8
|
};
|
|
9
9
|
exports.BoardFavorite = BoardFavorite;
|
|
10
10
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-favorite-type.js","sourceRoot":"","sources":["../../../server/service/board-favorite/board-favorite-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAqD;AAErD,
|
|
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,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolvers = exports.entities = void 0;
|
|
4
|
-
const
|
|
4
|
+
const board_favorite_query_js_1 = require("./board-favorite-query.js");
|
|
5
5
|
exports.entities = [];
|
|
6
|
-
exports.resolvers = [
|
|
6
|
+
exports.resolvers = [board_favorite_query_js_1.BoardFavoriteQuery];
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/board-favorite/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
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,5 +1,5 @@
|
|
|
1
|
-
import { BoardTemplate } from './board-template';
|
|
2
|
-
import { NewBoardTemplate, BoardTemplatePatch } from './board-template-type';
|
|
1
|
+
import { BoardTemplate } from './board-template.js';
|
|
2
|
+
import { NewBoardTemplate, BoardTemplatePatch } from './board-template-type.js';
|
|
3
3
|
export declare class BoardTemplateMutation {
|
|
4
4
|
createBoardTemplate(boardTemplate: NewBoardTemplate, context: ResolverContext): Promise<BoardTemplate>;
|
|
5
5
|
updateBoardTemplate(id: string, patch: BoardTemplatePatch, context: ResolverContext): Promise<BoardTemplate>;
|
|
@@ -4,14 +4,14 @@ exports.BoardTemplateMutation = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const type_graphql_1 = require("type-graphql");
|
|
6
6
|
const shell_1 = require("@things-factory/shell");
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
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
11
|
let BoardTemplateMutation = class BoardTemplateMutation {
|
|
12
12
|
async createBoardTemplate(boardTemplate, context) {
|
|
13
13
|
const { domain, user, tx } = context.state;
|
|
14
|
-
const repository =
|
|
14
|
+
const repository = (0, shell_1.getRepository)(board_template_js_1.BoardTemplate, tx);
|
|
15
15
|
const oldBoardTemplate = await repository.findOneBy({
|
|
16
16
|
name: boardTemplate.name,
|
|
17
17
|
domain: { id: domain.id }
|
|
@@ -19,8 +19,10 @@ let BoardTemplateMutation = class BoardTemplateMutation {
|
|
|
19
19
|
if (oldBoardTemplate) {
|
|
20
20
|
throw new Error(context.t('error.board-template name is already taken', { name: boardTemplate.name }));
|
|
21
21
|
}
|
|
22
|
-
const newBoardTemplate =
|
|
23
|
-
|
|
22
|
+
const newBoardTemplate = {
|
|
23
|
+
...boardTemplate
|
|
24
|
+
};
|
|
25
|
+
const base64 = await (0, thumbnail_js_1.thumbnail)({
|
|
24
26
|
model: boardTemplate.model,
|
|
25
27
|
context
|
|
26
28
|
});
|
|
@@ -30,16 +32,21 @@ let BoardTemplateMutation = class BoardTemplateMutation {
|
|
|
30
32
|
else {
|
|
31
33
|
newBoardTemplate.thumbnail = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
|
32
34
|
}
|
|
33
|
-
return await repository.save(
|
|
35
|
+
return await repository.save({
|
|
36
|
+
domain,
|
|
37
|
+
...newBoardTemplate,
|
|
38
|
+
creator: user,
|
|
39
|
+
updater: user
|
|
40
|
+
});
|
|
34
41
|
}
|
|
35
42
|
async updateBoardTemplate(id, patch, context) {
|
|
36
43
|
const { domain, user, tx } = context.state;
|
|
37
|
-
const repository =
|
|
44
|
+
const repository = (0, shell_1.getRepository)(board_template_js_1.BoardTemplate, tx);
|
|
38
45
|
const boardTemplate = await repository.findOne({
|
|
39
46
|
where: { domain: { id: domain.id }, id }
|
|
40
47
|
});
|
|
41
48
|
if (patch.model) {
|
|
42
|
-
const base64 = await (0,
|
|
49
|
+
const base64 = await (0, thumbnail_js_1.thumbnail)({
|
|
43
50
|
model: patch.model,
|
|
44
51
|
context
|
|
45
52
|
});
|
|
@@ -50,30 +57,41 @@ let BoardTemplateMutation = class BoardTemplateMutation {
|
|
|
50
57
|
patch.thumbnail = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
|
51
58
|
}
|
|
52
59
|
}
|
|
53
|
-
return await repository.save(
|
|
60
|
+
return await repository.save({
|
|
61
|
+
...boardTemplate,
|
|
62
|
+
...patch,
|
|
63
|
+
updater: user
|
|
64
|
+
});
|
|
54
65
|
}
|
|
55
66
|
async deleteBoardTemplate(id, context) {
|
|
56
67
|
const { domain, tx } = context.state;
|
|
57
|
-
await
|
|
68
|
+
await (0, shell_1.getRepository)(board_template_js_1.BoardTemplate, tx).delete({ domain: { id: domain.id }, id });
|
|
58
69
|
return true;
|
|
59
70
|
}
|
|
60
71
|
async registerBoardAsTemplate(id, name, description, visibility, context) {
|
|
61
72
|
const { domain, user, notify, tx } = context.state;
|
|
62
|
-
const boardTemplateRepository =
|
|
63
|
-
const board = await
|
|
73
|
+
const boardTemplateRepository = (0, shell_1.getRepository)(board_template_js_1.BoardTemplate, tx);
|
|
74
|
+
const board = await (0, shell_1.getRepository)(board_js_1.Board, tx).findOne({
|
|
64
75
|
where: { domain: { id: domain.id }, id }
|
|
65
76
|
});
|
|
66
77
|
if (!board) {
|
|
67
78
|
throw `Board given id(${id}) is not found`;
|
|
68
79
|
}
|
|
69
|
-
name
|
|
80
|
+
name ||= board.name;
|
|
70
81
|
const { model, thumbnail } = board;
|
|
71
82
|
const boardTemplate = await boardTemplateRepository.findOne({
|
|
72
83
|
where: { domain: { id: domain.id }, name }
|
|
73
84
|
});
|
|
74
85
|
const registered = boardTemplate
|
|
75
|
-
? await boardTemplateRepository.save(
|
|
76
|
-
|
|
86
|
+
? await boardTemplateRepository.save({
|
|
87
|
+
...boardTemplate,
|
|
88
|
+
name,
|
|
89
|
+
description: description || boardTemplate.description,
|
|
90
|
+
visibility: visibility || boardTemplate.visibility,
|
|
91
|
+
model,
|
|
92
|
+
thumbnail,
|
|
93
|
+
updater: user
|
|
94
|
+
})
|
|
77
95
|
: await boardTemplateRepository.save({
|
|
78
96
|
domain: { id: domain.id },
|
|
79
97
|
name,
|
|
@@ -89,8 +107,8 @@ let BoardTemplateMutation = class BoardTemplateMutation {
|
|
|
89
107
|
mode: 'in-app',
|
|
90
108
|
title: `BoardTemplate '${registered.name}' registered`,
|
|
91
109
|
body: `BoardTemplate '${registered.name}' registered by ${user.name}\n${registered.description}`,
|
|
92
|
-
image: (0, shell_1.getRedirectSubdomainPath)(context, domain
|
|
93
|
-
url: (0, shell_1.getRedirectSubdomainPath)(context, domain
|
|
110
|
+
image: (0, shell_1.getRedirectSubdomainPath)(context, domain, `/board-template-thumbnail/${registered.id}`),
|
|
111
|
+
url: (0, shell_1.getRedirectSubdomainPath)(context, domain, `/board-template-viewer/${registered.id}`)
|
|
94
112
|
});
|
|
95
113
|
return registered;
|
|
96
114
|
}
|
|
@@ -99,22 +117,22 @@ exports.BoardTemplateMutation = BoardTemplateMutation;
|
|
|
99
117
|
tslib_1.__decorate([
|
|
100
118
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
101
119
|
(0, type_graphql_1.Directive)('@privilege(category: "board-template", privilege: "mutation", domainOwnerGranted: true)'),
|
|
102
|
-
(0, type_graphql_1.Mutation)(returns =>
|
|
120
|
+
(0, type_graphql_1.Mutation)(returns => board_template_js_1.BoardTemplate, { description: 'To create new BoardTemplate' }),
|
|
103
121
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('boardTemplate')),
|
|
104
122
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
105
123
|
tslib_1.__metadata("design:type", Function),
|
|
106
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
124
|
+
tslib_1.__metadata("design:paramtypes", [board_template_type_js_1.NewBoardTemplate, Object]),
|
|
107
125
|
tslib_1.__metadata("design:returntype", Promise)
|
|
108
126
|
], BoardTemplateMutation.prototype, "createBoardTemplate", null);
|
|
109
127
|
tslib_1.__decorate([
|
|
110
128
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
111
129
|
(0, type_graphql_1.Directive)('@privilege(category: "board-template", privilege: "mutation", domainOwnerGranted: true)'),
|
|
112
|
-
(0, type_graphql_1.Mutation)(returns =>
|
|
130
|
+
(0, type_graphql_1.Mutation)(returns => board_template_js_1.BoardTemplate, { description: 'To modify BoardTemplate information' }),
|
|
113
131
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
114
132
|
tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
|
|
115
133
|
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
116
134
|
tslib_1.__metadata("design:type", Function),
|
|
117
|
-
tslib_1.__metadata("design:paramtypes", [String,
|
|
135
|
+
tslib_1.__metadata("design:paramtypes", [String, board_template_type_js_1.BoardTemplatePatch, Object]),
|
|
118
136
|
tslib_1.__metadata("design:returntype", Promise)
|
|
119
137
|
], BoardTemplateMutation.prototype, "updateBoardTemplate", null);
|
|
120
138
|
tslib_1.__decorate([
|
|
@@ -130,7 +148,7 @@ tslib_1.__decorate([
|
|
|
130
148
|
tslib_1.__decorate([
|
|
131
149
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
132
150
|
(0, type_graphql_1.Directive)('@privilege(category: "board-template", privilege: "mutation", domainOwnerGranted: true)'),
|
|
133
|
-
(0, type_graphql_1.Mutation)(returns =>
|
|
151
|
+
(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
152
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('id', { description: 'board Id to be regiestered' })),
|
|
135
153
|
tslib_1.__param(1, (0, type_graphql_1.Arg)('name', { description: 'name of board template to be regiestered' })),
|
|
136
154
|
tslib_1.__param(2, (0, type_graphql_1.Arg)('description', { description: 'description of board template to be regiestered' })),
|
|
@@ -141,6 +159,6 @@ tslib_1.__decorate([
|
|
|
141
159
|
tslib_1.__metadata("design:returntype", Promise)
|
|
142
160
|
], BoardTemplateMutation.prototype, "registerBoardAsTemplate", null);
|
|
143
161
|
exports.BoardTemplateMutation = BoardTemplateMutation = tslib_1.__decorate([
|
|
144
|
-
(0, type_graphql_1.Resolver)(
|
|
162
|
+
(0, type_graphql_1.Resolver)(board_template_js_1.BoardTemplate)
|
|
145
163
|
], BoardTemplateMutation);
|
|
146
164
|
//# sourceMappingURL=board-template-mutation.js.map
|
|
@@ -1 +1 @@
|
|
|
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 } from '@things-factory/shell'\nimport { BoardTemplate } from './board-template'\nimport { Board } from '../board/board'\nimport { NewBoardTemplate, BoardTemplatePatch } from './board-template-type'\nimport { thumbnail } from '../../controllers/thumbnail'\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 = tx.getRepository(BoardTemplate)\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 = tx.getRepository(BoardTemplate)\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 tx.getRepository(BoardTemplate).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 = tx.getRepository(BoardTemplate)\n\n const board = await tx.getRepository(Board).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.subdomain, `/board-template-thumbnail/${registered.id}`),\n url: getRedirectSubdomainPath(context, domain.subdomain, `/board-template-viewer/${registered.id}`)\n })\n\n return registered\n }\n}\n"]}
|
|
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,7 +1,7 @@
|
|
|
1
1
|
import { Domain, ListParam } from '@things-factory/shell';
|
|
2
2
|
import { User } from '@things-factory/auth-base';
|
|
3
|
-
import { BoardTemplate } from './board-template';
|
|
4
|
-
import { BoardTemplateList } from './board-template-type';
|
|
3
|
+
import { BoardTemplate } from './board-template.js';
|
|
4
|
+
import { BoardTemplateList } from './board-template-type.js';
|
|
5
5
|
export declare class BoardTemplateQuery {
|
|
6
6
|
boardTemplate(id: string, context: ResolverContext): Promise<BoardTemplate>;
|
|
7
7
|
boardTemplatesCreatedByMe(params: ListParam, context: ResolverContext): Promise<BoardTemplateList>;
|