@things-factory/board-service 9.0.0-beta.8 → 9.0.0
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 +35 -20
- 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 +112 -53
- 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 +40 -39
- 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 +6 -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 +28 -20
- 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 +26 -21
- 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 +7 -7
- 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 +21 -18
- package/dist-server/service/board-template/board-template-type.js.map +1 -1
- package/dist-server/service/board-template/board-template.js +14 -14
- package/dist-server/service/board-template/board-template.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 +25 -16
- 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 +17 -17
- 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 +10 -10
- 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 +12 -12
- 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 +35 -22
- 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 +20 -18
- 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 +6 -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 +10 -10
- package/dist-server/service/play-group/play-group-type.js.map +1 -1
- package/dist-server/service/play-group/play-group.d.ts +2 -2
- package/dist-server/service/play-group/play-group.js +17 -13
- 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 +44 -24
- 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 +13 -13
- 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 +18 -18
- package/dist-server/service/theme/theme-type.js.map +1 -1
- package/dist-server/service/theme/theme.js +16 -13
- package/dist-server/service/theme/theme.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
|
@@ -7,16 +7,16 @@ const type_graphql_1 = require("type-graphql");
|
|
|
7
7
|
const auth_base_1 = require("@things-factory/auth-base");
|
|
8
8
|
const shell_1 = require("@things-factory/shell");
|
|
9
9
|
const operato_license_checker_1 = require("@things-factory/operato-license-checker");
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
10
|
+
const group_js_1 = require("../group/group.js");
|
|
11
|
+
const play_group_js_1 = require("../play-group/play-group.js");
|
|
12
|
+
const board_js_1 = require("./board.js");
|
|
13
|
+
const board_type_js_1 = require("./board-type.js");
|
|
14
|
+
const board_history_js_1 = require("./board-history.js");
|
|
15
|
+
const license_error_js_1 = require("../../errors/license-error.js");
|
|
16
16
|
let BoardQuery = class BoardQuery {
|
|
17
17
|
async board(id, context) {
|
|
18
18
|
const { domain } = context.state;
|
|
19
|
-
var board = await (0, shell_1.getRepository)(
|
|
19
|
+
var board = await (0, shell_1.getRepository)(board_js_1.Board).findOne({
|
|
20
20
|
where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, id }
|
|
21
21
|
});
|
|
22
22
|
if (domain) {
|
|
@@ -27,22 +27,22 @@ let BoardQuery = class BoardQuery {
|
|
|
27
27
|
.from(shell_1.Domain, 'domain')
|
|
28
28
|
.getCount();
|
|
29
29
|
if (!(0, operato_license_checker_1.checkDomain)(count)) {
|
|
30
|
-
throw new
|
|
31
|
-
errorCode: context.t(
|
|
30
|
+
throw new license_error_js_1.LicenseError({
|
|
31
|
+
errorCode: context.t(license_error_js_1.LicenseError.ERROR_CODES.OVER_LIMIT)
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
if (board) {
|
|
36
36
|
// 1. check boardSecret is over limit quantity or not
|
|
37
|
-
var count = await (0, shell_1.getRepository)(
|
|
37
|
+
var count = await (0, shell_1.getRepository)(board_js_1.Board)
|
|
38
38
|
.manager.createQueryBuilder()
|
|
39
39
|
.select('id')
|
|
40
|
-
.from(
|
|
40
|
+
.from(board_js_1.Board, 'board')
|
|
41
41
|
.where('"domain_id" = :domainId', { domainId: domain.id })
|
|
42
42
|
.getCount();
|
|
43
43
|
if (!(0, operato_license_checker_1.checkTarget)(count)) {
|
|
44
|
-
throw new
|
|
45
|
-
errorCode: context.t(
|
|
44
|
+
throw new license_error_js_1.LicenseError({
|
|
45
|
+
errorCode: context.t(license_error_js_1.LicenseError.ERROR_CODES.OVER_LIMIT)
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -50,14 +50,14 @@ let BoardQuery = class BoardQuery {
|
|
|
50
50
|
}
|
|
51
51
|
async boardByName(name, context) {
|
|
52
52
|
const { domain } = context.state;
|
|
53
|
-
return await (0, shell_1.getRepository)(
|
|
53
|
+
return await (0, shell_1.getRepository)(board_js_1.Board).findOne({
|
|
54
54
|
where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, name }
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
async boardsCreatedByMe(params, context) {
|
|
58
58
|
const { domain, user } = context.state;
|
|
59
59
|
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
|
60
|
-
repository: (0, shell_1.getRepository)(
|
|
60
|
+
repository: (0, shell_1.getRepository)(board_js_1.Board),
|
|
61
61
|
params,
|
|
62
62
|
domain,
|
|
63
63
|
alias: 'board',
|
|
@@ -68,7 +68,7 @@ let BoardQuery = class BoardQuery {
|
|
|
68
68
|
}
|
|
69
69
|
async boardVersions(id, context) {
|
|
70
70
|
const { domain } = context.state;
|
|
71
|
-
return await (0, shell_1.getRepository)(
|
|
71
|
+
return await (0, shell_1.getRepository)(board_history_js_1.BoardHistory).find({
|
|
72
72
|
where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },
|
|
73
73
|
relations: ['updater'],
|
|
74
74
|
order: { version: 'DESC' },
|
|
@@ -77,7 +77,7 @@ let BoardQuery = class BoardQuery {
|
|
|
77
77
|
}
|
|
78
78
|
async boardPublished(id, context) {
|
|
79
79
|
const { domain } = context.state;
|
|
80
|
-
return await (0, shell_1.getRepository)(
|
|
80
|
+
return await (0, shell_1.getRepository)(board_history_js_1.BoardHistory).findOne({
|
|
81
81
|
where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },
|
|
82
82
|
order: { version: 'DESC' }
|
|
83
83
|
});
|
|
@@ -85,7 +85,7 @@ let BoardQuery = class BoardQuery {
|
|
|
85
85
|
async boards(params, context) {
|
|
86
86
|
const { domain } = context.state;
|
|
87
87
|
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
|
88
|
-
repository: (0, shell_1.getRepository)(
|
|
88
|
+
repository: (0, shell_1.getRepository)(board_js_1.Board),
|
|
89
89
|
params,
|
|
90
90
|
domain,
|
|
91
91
|
searchables: ['name', 'description']
|
|
@@ -95,16 +95,15 @@ let BoardQuery = class BoardQuery {
|
|
|
95
95
|
}
|
|
96
96
|
async group(board) {
|
|
97
97
|
return (board.groupId &&
|
|
98
|
-
(await (0, shell_1.getRepository)(
|
|
98
|
+
(await (0, shell_1.getRepository)(group_js_1.Group).findOneBy({
|
|
99
99
|
id: board.groupId
|
|
100
100
|
})));
|
|
101
101
|
}
|
|
102
102
|
async playGroups(board) {
|
|
103
|
-
|
|
104
|
-
return (_a = (await (0, shell_1.getRepository)(board_1.Board).findOne({
|
|
103
|
+
return (await (0, shell_1.getRepository)(board_js_1.Board).findOne({
|
|
105
104
|
where: { id: board.id },
|
|
106
105
|
relations: ['playGroups']
|
|
107
|
-
}))
|
|
106
|
+
}))?.playGroups;
|
|
108
107
|
}
|
|
109
108
|
async domain(board) {
|
|
110
109
|
return (board.domainId &&
|
|
@@ -128,7 +127,7 @@ let BoardQuery = class BoardQuery {
|
|
|
128
127
|
exports.BoardQuery = BoardQuery;
|
|
129
128
|
tslib_1.__decorate([
|
|
130
129
|
(0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
|
|
131
|
-
(0, type_graphql_1.Query)(returns =>
|
|
130
|
+
(0, type_graphql_1.Query)(returns => board_js_1.Board, { description: 'Finds a single board by its ID.' }),
|
|
132
131
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
133
132
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
134
133
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -136,7 +135,7 @@ tslib_1.__decorate([
|
|
|
136
135
|
tslib_1.__metadata("design:returntype", Promise)
|
|
137
136
|
], BoardQuery.prototype, "board", null);
|
|
138
137
|
tslib_1.__decorate([
|
|
139
|
-
(0, type_graphql_1.Query)(returns =>
|
|
138
|
+
(0, type_graphql_1.Query)(returns => board_js_1.Board, { nullable: true, description: 'Finds a single board by its name.' }),
|
|
140
139
|
(0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
|
|
141
140
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
|
|
142
141
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
@@ -145,7 +144,7 @@ tslib_1.__decorate([
|
|
|
145
144
|
tslib_1.__metadata("design:returntype", Promise)
|
|
146
145
|
], BoardQuery.prototype, "boardByName", null);
|
|
147
146
|
tslib_1.__decorate([
|
|
148
|
-
(0, type_graphql_1.Query)(returns =>
|
|
147
|
+
(0, type_graphql_1.Query)(returns => board_type_js_1.BoardList, { description: 'Retrieves a paginated list of boards created by the current user.' }),
|
|
149
148
|
tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
150
149
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
151
150
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -153,7 +152,7 @@ tslib_1.__decorate([
|
|
|
153
152
|
tslib_1.__metadata("design:returntype", Promise)
|
|
154
153
|
], BoardQuery.prototype, "boardsCreatedByMe", null);
|
|
155
154
|
tslib_1.__decorate([
|
|
156
|
-
(0, type_graphql_1.Query)(returns => [
|
|
155
|
+
(0, type_graphql_1.Query)(returns => [board_history_js_1.BoardHistory], { description: 'Retrieves up to 10 historical versions of a specific board.' }),
|
|
157
156
|
(0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
|
|
158
157
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
159
158
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
@@ -162,7 +161,7 @@ tslib_1.__decorate([
|
|
|
162
161
|
tslib_1.__metadata("design:returntype", Promise)
|
|
163
162
|
], BoardQuery.prototype, "boardVersions", null);
|
|
164
163
|
tslib_1.__decorate([
|
|
165
|
-
(0, type_graphql_1.Query)(returns =>
|
|
164
|
+
(0, type_graphql_1.Query)(returns => board_history_js_1.BoardHistory, { description: 'Retrieves the most recently published version of a board.' }),
|
|
166
165
|
(0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
|
|
167
166
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
168
167
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
@@ -171,7 +170,7 @@ tslib_1.__decorate([
|
|
|
171
170
|
tslib_1.__metadata("design:returntype", Promise)
|
|
172
171
|
], BoardQuery.prototype, "boardPublished", null);
|
|
173
172
|
tslib_1.__decorate([
|
|
174
|
-
(0, type_graphql_1.Query)(returns =>
|
|
173
|
+
(0, type_graphql_1.Query)(returns => board_type_js_1.BoardList, { description: 'Retrieves a paginated list of all boards.' }),
|
|
175
174
|
(0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
|
|
176
175
|
tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
177
176
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
@@ -180,41 +179,43 @@ tslib_1.__decorate([
|
|
|
180
179
|
tslib_1.__metadata("design:returntype", Promise)
|
|
181
180
|
], BoardQuery.prototype, "boards", null);
|
|
182
181
|
tslib_1.__decorate([
|
|
183
|
-
(0, type_graphql_1.FieldResolver)(type =>
|
|
182
|
+
(0, type_graphql_1.FieldResolver)(type => group_js_1.Group, { description: 'Resolves the group that the board belongs to.' }),
|
|
184
183
|
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
185
184
|
tslib_1.__metadata("design:type", Function),
|
|
186
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
185
|
+
tslib_1.__metadata("design:paramtypes", [board_js_1.Board]),
|
|
187
186
|
tslib_1.__metadata("design:returntype", Promise)
|
|
188
187
|
], BoardQuery.prototype, "group", null);
|
|
189
188
|
tslib_1.__decorate([
|
|
190
|
-
(0, type_graphql_1.FieldResolver)(type => [
|
|
189
|
+
(0, type_graphql_1.FieldResolver)(type => [play_group_js_1.PlayGroup], {
|
|
190
|
+
description: 'Resolves the list of play groups that this board is a member of.'
|
|
191
|
+
}),
|
|
191
192
|
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
192
193
|
tslib_1.__metadata("design:type", Function),
|
|
193
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
194
|
+
tslib_1.__metadata("design:paramtypes", [board_js_1.Board]),
|
|
194
195
|
tslib_1.__metadata("design:returntype", Promise)
|
|
195
196
|
], BoardQuery.prototype, "playGroups", null);
|
|
196
197
|
tslib_1.__decorate([
|
|
197
|
-
(0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
|
|
198
|
+
(0, type_graphql_1.FieldResolver)(type => shell_1.Domain, { description: 'Resolves the domain associated with the board.' }),
|
|
198
199
|
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
199
200
|
tslib_1.__metadata("design:type", Function),
|
|
200
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
201
|
+
tslib_1.__metadata("design:paramtypes", [board_js_1.Board]),
|
|
201
202
|
tslib_1.__metadata("design:returntype", Promise)
|
|
202
203
|
], BoardQuery.prototype, "domain", null);
|
|
203
204
|
tslib_1.__decorate([
|
|
204
|
-
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
|
205
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User, { description: 'Resolves the user who last updated the board.' }),
|
|
205
206
|
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
206
207
|
tslib_1.__metadata("design:type", Function),
|
|
207
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
208
|
+
tslib_1.__metadata("design:paramtypes", [board_js_1.Board]),
|
|
208
209
|
tslib_1.__metadata("design:returntype", Promise)
|
|
209
210
|
], BoardQuery.prototype, "updater", null);
|
|
210
211
|
tslib_1.__decorate([
|
|
211
|
-
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
|
212
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User, { description: 'Resolves the user who created the board.' }),
|
|
212
213
|
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
213
214
|
tslib_1.__metadata("design:type", Function),
|
|
214
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
215
|
+
tslib_1.__metadata("design:paramtypes", [board_js_1.Board]),
|
|
215
216
|
tslib_1.__metadata("design:returntype", Promise)
|
|
216
217
|
], BoardQuery.prototype, "creator", null);
|
|
217
218
|
exports.BoardQuery = BoardQuery = tslib_1.__decorate([
|
|
218
|
-
(0, type_graphql_1.Resolver)(
|
|
219
|
+
(0, type_graphql_1.Resolver)(board_js_1.Board)
|
|
219
220
|
], BoardQuery);
|
|
220
221
|
//# sourceMappingURL=board-query.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-query.js","sourceRoot":"","sources":["../../../server/service/board/board-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root, Directive } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { checkTarget, checkDomain, getPermission } from '@things-factory/operato-license-checker'\n\nimport { Group } from '../group/group'\nimport { PlayGroup } from '../play-group/play-group'\nimport { Board } from './board'\nimport { BoardList } from './board-type'\nimport { BoardHistory } from './board-history'\n\nimport { LicenseError } from '../../errors/license-error'\n@Resolver(Board)\nexport class BoardQuery {\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Board, { description: 'To fetch a board' })\n async board(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Board> {\n const { domain } = context.state\n\n var board = await getRepository(Board).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id }\n })\n\n if (domain) {\n // 1. check domainSecret is over limit quantity or not\n var count = await getRepository(Domain)\n .manager.createQueryBuilder()\n .select('id')\n .from(Domain, 'domain')\n .getCount()\n\n if (!checkDomain(count)) {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.OVER_LIMIT)\n })\n }\n }\n\n if (board) {\n // 1. check boardSecret is over limit quantity or not\n var count = await getRepository(Board)\n .manager.createQueryBuilder()\n .select('id')\n .from(Board, 'board')\n .where('\"domain_id\" = :domainId', { domainId: domain.id })\n .getCount()\n\n if (!checkTarget(count)) {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.OVER_LIMIT)\n })\n }\n }\n\n return board\n }\n\n @Query(returns => Board, { nullable: true, description: 'To fetch a Board Model by name' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Board> {\n const { domain } = context.state\n\n return await getRepository(Board).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name }\n })\n }\n\n @Query(returns => BoardList, { description: 'To fetch Boards created by me' })\n async boardsCreatedByMe(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BoardList> {\n const { domain, user } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(Board),\n params,\n domain,\n alias: 'board',\n searchables: ['name', 'description']\n }).andWhere('board.creator = :user', { user: user.id })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => [BoardHistory], { description: 'To fetch a Board Versions' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardVersions(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BoardHistory[]> {\n const { domain } = context.state\n\n return await getRepository(BoardHistory).find({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },\n relations: ['updater'],\n order: { version: 'DESC' },\n take: 10\n })\n }\n\n @Query(returns => BoardHistory, { description: 'To fetch the latest Board published' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardPublished(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BoardHistory> {\n const { domain } = context.state\n\n return await getRepository(BoardHistory).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },\n order: { version: 'DESC' }\n })\n }\n\n @Query(returns => BoardList, { description: 'To fetch multiple Boards' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boards(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<BoardList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(Board),\n params,\n domain,\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Group)\n async group(@Root() board: Board) {\n return (\n board.groupId &&\n (await getRepository(Group).findOneBy({\n id: board.groupId\n }))\n )\n }\n\n @FieldResolver(type => [PlayGroup])\n async playGroups(@Root() board: Board) {\n return (\n await getRepository(Board).findOne({\n where: { id: board.id },\n relations: ['playGroups']\n })\n )?.playGroups\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() board: Board) {\n return (\n board.domainId &&\n (await getRepository(Domain).findOneBy({\n id: board.domainId\n }))\n )\n }\n\n @FieldResolver(type => User)\n async updater(@Root() board: Board): Promise<User> {\n return (\n board.updaterId &&\n (await getRepository(User).findOneBy({\n id: board.updaterId\n }))\n )\n }\n\n @FieldResolver(type => User)\n async creator(@Root() board: Board): Promise<User> {\n return (\n board.creatorId &&\n (await getRepository(User).findOneBy({\n id: board.creatorId\n }))\n )\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"board-query.js","sourceRoot":"","sources":["../../../server/service/board/board-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root, Directive } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { checkTarget, checkDomain, getPermission } from '@things-factory/operato-license-checker'\n\nimport { Group } from '../group/group.js'\nimport { PlayGroup } from '../play-group/play-group.js'\nimport { Board } from './board.js'\nimport { BoardList } from './board-type.js'\nimport { BoardHistory } from './board-history.js'\n\nimport { LicenseError } from '../../errors/license-error.js'\n@Resolver(Board)\nexport class BoardQuery {\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Board, { description: 'Finds a single board by its ID.' })\n async board(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Board> {\n const { domain } = context.state\n\n var board = await getRepository(Board).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id }\n })\n\n if (domain) {\n // 1. check domainSecret is over limit quantity or not\n var count = await getRepository(Domain)\n .manager.createQueryBuilder()\n .select('id')\n .from(Domain, 'domain')\n .getCount()\n\n if (!checkDomain(count)) {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.OVER_LIMIT)\n })\n }\n }\n\n if (board) {\n // 1. check boardSecret is over limit quantity or not\n var count = await getRepository(Board)\n .manager.createQueryBuilder()\n .select('id')\n .from(Board, 'board')\n .where('\"domain_id\" = :domainId', { domainId: domain.id })\n .getCount()\n\n if (!checkTarget(count)) {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.OVER_LIMIT)\n })\n }\n }\n\n return board\n }\n\n @Query(returns => Board, { nullable: true, description: 'Finds a single board by its name.' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Board> {\n const { domain } = context.state\n\n return await getRepository(Board).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name }\n })\n }\n\n @Query(returns => BoardList, { description: 'Retrieves a paginated list of boards created by the current user.' })\n async boardsCreatedByMe(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BoardList> {\n const { domain, user } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(Board),\n params,\n domain,\n alias: 'board',\n searchables: ['name', 'description']\n }).andWhere('board.creator = :user', { user: user.id })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => [BoardHistory], { description: 'Retrieves up to 10 historical versions of a specific board.' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardVersions(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BoardHistory[]> {\n const { domain } = context.state\n\n return await getRepository(BoardHistory).find({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },\n relations: ['updater'],\n order: { version: 'DESC' },\n take: 10\n })\n }\n\n @Query(returns => BoardHistory, { description: 'Retrieves the most recently published version of a board.' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boardPublished(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BoardHistory> {\n const { domain } = context.state\n\n return await getRepository(BoardHistory).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, originalId: id },\n order: { version: 'DESC' }\n })\n }\n\n @Query(returns => BoardList, { description: 'Retrieves a paginated list of all boards.' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\n async boards(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<BoardList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(Board),\n params,\n domain,\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Group, { description: 'Resolves the group that the board belongs to.' })\n async group(@Root() board: Board) {\n return (\n board.groupId &&\n (await getRepository(Group).findOneBy({\n id: board.groupId\n }))\n )\n }\n\n @FieldResolver(type => [PlayGroup], {\n description: 'Resolves the list of play groups that this board is a member of.'\n })\n async playGroups(@Root() board: Board) {\n return (\n await getRepository(Board).findOne({\n where: { id: board.id },\n relations: ['playGroups']\n })\n )?.playGroups\n }\n\n @FieldResolver(type => Domain, { description: 'Resolves the domain associated with the board.' })\n async domain(@Root() board: Board) {\n return (\n board.domainId &&\n (await getRepository(Domain).findOneBy({\n id: board.domainId\n }))\n )\n }\n\n @FieldResolver(type => User, { description: 'Resolves the user who last updated the board.' })\n async updater(@Root() board: Board): Promise<User> {\n return (\n board.updaterId &&\n (await getRepository(User).findOneBy({\n id: board.updaterId\n }))\n )\n }\n\n @FieldResolver(type => User, { description: 'Resolves the user who created the board.' })\n async creator(@Root() board: Board): Promise<User> {\n return (\n board.creatorId &&\n (await getRepository(User).findOneBy({\n id: board.creatorId\n }))\n )\n }\n}\n"]}
|
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const type_graphql_1 = require("type-graphql");
|
|
6
6
|
const graphql_yoga_1 = require("graphql-yoga");
|
|
7
7
|
const shell_1 = require("@things-factory/shell");
|
|
8
|
-
const
|
|
8
|
+
const board_js_1 = require("./board.js");
|
|
9
9
|
let BoardSubscription = class BoardSubscription {
|
|
10
10
|
board(payload, id) {
|
|
11
11
|
return payload.board;
|
|
@@ -14,15 +14,15 @@ let BoardSubscription = class BoardSubscription {
|
|
|
14
14
|
exports.BoardSubscription = BoardSubscription;
|
|
15
15
|
tslib_1.__decorate([
|
|
16
16
|
(0, type_graphql_1.Subscription)({
|
|
17
|
+
description: 'Subscribes to real-time updates for a specific board.',
|
|
17
18
|
subscribe: ({ args, context, info }) => {
|
|
18
|
-
var _a;
|
|
19
19
|
const { domain, user } = context.state;
|
|
20
20
|
const { id } = args;
|
|
21
|
-
const subdomain = domain
|
|
21
|
+
const subdomain = domain?.subdomain;
|
|
22
22
|
if (!domain) {
|
|
23
23
|
throw new Error('domain required');
|
|
24
24
|
}
|
|
25
|
-
if (!
|
|
25
|
+
if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {
|
|
26
26
|
throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
|
|
27
27
|
}
|
|
28
28
|
return (0, graphql_yoga_1.pipe)(shell_1.pubsub.subscribe('board'), (0, graphql_yoga_1.filter)((payload) => {
|
|
@@ -41,9 +41,9 @@ tslib_1.__decorate([
|
|
|
41
41
|
tslib_1.__param(1, (0, type_graphql_1.Arg)('id')),
|
|
42
42
|
tslib_1.__metadata("design:type", Function),
|
|
43
43
|
tslib_1.__metadata("design:paramtypes", [Object, String]),
|
|
44
|
-
tslib_1.__metadata("design:returntype",
|
|
44
|
+
tslib_1.__metadata("design:returntype", board_js_1.Board)
|
|
45
45
|
], BoardSubscription.prototype, "board", null);
|
|
46
46
|
exports.BoardSubscription = BoardSubscription = tslib_1.__decorate([
|
|
47
|
-
(0, type_graphql_1.Resolver)(
|
|
47
|
+
(0, type_graphql_1.Resolver)(board_js_1.Board)
|
|
48
48
|
], BoardSubscription);
|
|
49
49
|
//# sourceMappingURL=board-subscription.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-subscription.js","sourceRoot":"","sources":["../../../server/service/board/board-subscription.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAChE,+CAA2C;AAC3C,iDAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"board-subscription.js","sourceRoot":"","sources":["../../../server/service/board/board-subscription.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAChE,+CAA2C;AAC3C,iDAA8C;AAC9C,yCAAkC;AAG3B,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAkC5B,KAAK,CAAS,OAAyB,EAAa,EAAU;QAC5D,OAAO,OAAO,CAAC,KAAK,CAAA;IACtB,CAAC;CACF,CAAA;AArCY,8CAAiB;AAkC5B;IAjCC,IAAA,2BAAY,EAAC;QACZ,WAAW,EAAE,uDAAuD;QACpE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;YACrC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;YACnB,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,CAAA;YAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YACjF,CAAC;YAED,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,IAAA,qBAAM,EAAC,CAAC,OAAyB,EAAE,EAAE;gBACnC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;gBAE/C,IAAI,QAAQ,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;oBACnB,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IACK,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAA6B,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;;;4CAAc,gBAAK;8CAErE;4BApCU,iBAAiB;IAD7B,IAAA,uBAAQ,EAAC,gBAAK,CAAC;GACH,iBAAiB,CAqC7B","sourcesContent":["import { Resolver, Subscription, Root, Arg } from 'type-graphql'\nimport { filter, pipe } from 'graphql-yoga'\nimport { pubsub } from '@things-factory/shell'\nimport { Board } from './board.js'\n\n@Resolver(Board)\nexport class BoardSubscription {\n @Subscription({\n description: 'Subscribes to real-time updates for a specific board.',\n subscribe: ({ args, context, info }) => {\n const { domain, user } = context.state\n const { id } = args\n const subdomain = domain?.subdomain\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n return pipe(\n pubsub.subscribe('board'),\n filter((payload: { board: Board }) => {\n const { domainId, id: boardId } = payload.board\n\n if (domainId !== domain.id) {\n return false\n }\n\n if (id !== boardId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n board(@Root() payload: { board: Board }, @Arg('id') id: string): Board {\n return payload.board\n }\n}\n"]}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { Board } from './board';
|
|
2
|
-
import { BoardHistory } from './board-history';
|
|
1
|
+
import { Board } from './board.js';
|
|
2
|
+
import { BoardHistory } from './board-history.js';
|
|
3
3
|
export declare class NewBoard {
|
|
4
4
|
name: string;
|
|
5
5
|
description?: string;
|
|
6
6
|
model: string;
|
|
7
|
+
type?: 'main' | 'sub' | 'popup';
|
|
7
8
|
groupId?: string;
|
|
8
9
|
thumbnail?: string;
|
|
9
10
|
}
|
|
10
11
|
export declare class BoardPatch {
|
|
11
12
|
name?: string;
|
|
12
13
|
description?: string;
|
|
14
|
+
type?: 'main' | 'sub' | 'popup';
|
|
13
15
|
model?: string;
|
|
14
16
|
groupId?: string;
|
|
15
17
|
thumbnail?: string;
|
|
@@ -3,86 +3,94 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BoardHistoryList = exports.BoardList = exports.BoardPatch = exports.NewBoard = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const type_graphql_1 = require("type-graphql");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
6
|
+
const board_js_1 = require("./board.js");
|
|
7
|
+
const board_history_js_1 = require("./board-history.js");
|
|
8
8
|
let NewBoard = class NewBoard {
|
|
9
9
|
};
|
|
10
10
|
exports.NewBoard = NewBoard;
|
|
11
11
|
tslib_1.__decorate([
|
|
12
|
-
(0, type_graphql_1.Field)(),
|
|
12
|
+
(0, type_graphql_1.Field)({ description: 'The name of the new board.' }),
|
|
13
13
|
tslib_1.__metadata("design:type", String)
|
|
14
14
|
], NewBoard.prototype, "name", void 0);
|
|
15
15
|
tslib_1.__decorate([
|
|
16
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
16
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'A detailed description for the new board.' }),
|
|
17
17
|
tslib_1.__metadata("design:type", String)
|
|
18
18
|
], NewBoard.prototype, "description", void 0);
|
|
19
19
|
tslib_1.__decorate([
|
|
20
|
-
(0, type_graphql_1.Field)(),
|
|
20
|
+
(0, type_graphql_1.Field)({ description: 'The JSON model for the new board.' }),
|
|
21
21
|
tslib_1.__metadata("design:type", String)
|
|
22
22
|
], NewBoard.prototype, "model", void 0);
|
|
23
23
|
tslib_1.__decorate([
|
|
24
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
24
|
+
(0, type_graphql_1.Field)({ nullable: true, description: "The type for the new board, can be 'main', 'sub', or 'popup'." }),
|
|
25
|
+
tslib_1.__metadata("design:type", String)
|
|
26
|
+
], NewBoard.prototype, "type", void 0);
|
|
27
|
+
tslib_1.__decorate([
|
|
28
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'The ID of the group to associate the new board with.' }),
|
|
25
29
|
tslib_1.__metadata("design:type", String)
|
|
26
30
|
], NewBoard.prototype, "groupId", void 0);
|
|
27
31
|
tslib_1.__decorate([
|
|
28
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
32
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'A base64 encoded thumbnail image for the new board.' }),
|
|
29
33
|
tslib_1.__metadata("design:type", String)
|
|
30
34
|
], NewBoard.prototype, "thumbnail", void 0);
|
|
31
35
|
exports.NewBoard = NewBoard = tslib_1.__decorate([
|
|
32
|
-
(0, type_graphql_1.InputType)()
|
|
36
|
+
(0, type_graphql_1.InputType)({ description: 'Input for creating a new board.' })
|
|
33
37
|
], NewBoard);
|
|
34
38
|
let BoardPatch = class BoardPatch {
|
|
35
39
|
};
|
|
36
40
|
exports.BoardPatch = BoardPatch;
|
|
37
41
|
tslib_1.__decorate([
|
|
38
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
42
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'The new name for the board.' }),
|
|
39
43
|
tslib_1.__metadata("design:type", String)
|
|
40
44
|
], BoardPatch.prototype, "name", void 0);
|
|
41
45
|
tslib_1.__decorate([
|
|
42
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
46
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'The new description for the board.' }),
|
|
43
47
|
tslib_1.__metadata("design:type", String)
|
|
44
48
|
], BoardPatch.prototype, "description", void 0);
|
|
45
49
|
tslib_1.__decorate([
|
|
46
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
50
|
+
(0, type_graphql_1.Field)({ nullable: true, description: "The new type for the board, can be 'main', 'sub', or 'popup'." }),
|
|
51
|
+
tslib_1.__metadata("design:type", String)
|
|
52
|
+
], BoardPatch.prototype, "type", void 0);
|
|
53
|
+
tslib_1.__decorate([
|
|
54
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'The new JSON model for the board.' }),
|
|
47
55
|
tslib_1.__metadata("design:type", String)
|
|
48
56
|
], BoardPatch.prototype, "model", void 0);
|
|
49
57
|
tslib_1.__decorate([
|
|
50
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
58
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'The new group ID for the board.' }),
|
|
51
59
|
tslib_1.__metadata("design:type", String)
|
|
52
60
|
], BoardPatch.prototype, "groupId", void 0);
|
|
53
61
|
tslib_1.__decorate([
|
|
54
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
62
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'The new base64 encoded thumbnail image for the board.' }),
|
|
55
63
|
tslib_1.__metadata("design:type", String)
|
|
56
64
|
], BoardPatch.prototype, "thumbnail", void 0);
|
|
57
65
|
exports.BoardPatch = BoardPatch = tslib_1.__decorate([
|
|
58
|
-
(0, type_graphql_1.InputType)()
|
|
66
|
+
(0, type_graphql_1.InputType)({ description: 'Input for updating (patching) an existing board.' })
|
|
59
67
|
], BoardPatch);
|
|
60
68
|
let BoardList = class BoardList {
|
|
61
69
|
};
|
|
62
70
|
exports.BoardList = BoardList;
|
|
63
71
|
tslib_1.__decorate([
|
|
64
|
-
(0, type_graphql_1.Field)(type => [
|
|
72
|
+
(0, type_graphql_1.Field)(type => [board_js_1.Board], { description: 'The list of board items.' }),
|
|
65
73
|
tslib_1.__metadata("design:type", Array)
|
|
66
74
|
], BoardList.prototype, "items", void 0);
|
|
67
75
|
tslib_1.__decorate([
|
|
68
|
-
(0, type_graphql_1.Field)(type => type_graphql_1.Int),
|
|
76
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'The total number of boards.' }),
|
|
69
77
|
tslib_1.__metadata("design:type", Number)
|
|
70
78
|
], BoardList.prototype, "total", void 0);
|
|
71
79
|
exports.BoardList = BoardList = tslib_1.__decorate([
|
|
72
|
-
(0, type_graphql_1.ObjectType)()
|
|
80
|
+
(0, type_graphql_1.ObjectType)({ description: 'A paginated list of boards.' })
|
|
73
81
|
], BoardList);
|
|
74
82
|
let BoardHistoryList = class BoardHistoryList {
|
|
75
83
|
};
|
|
76
84
|
exports.BoardHistoryList = BoardHistoryList;
|
|
77
85
|
tslib_1.__decorate([
|
|
78
|
-
(0, type_graphql_1.Field)(type => [
|
|
86
|
+
(0, type_graphql_1.Field)(type => [board_history_js_1.BoardHistory], { description: 'The list of board history items.' }),
|
|
79
87
|
tslib_1.__metadata("design:type", Array)
|
|
80
88
|
], BoardHistoryList.prototype, "items", void 0);
|
|
81
89
|
tslib_1.__decorate([
|
|
82
|
-
(0, type_graphql_1.Field)(type => type_graphql_1.Int),
|
|
90
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'The total number of board histories.' }),
|
|
83
91
|
tslib_1.__metadata("design:type", Number)
|
|
84
92
|
], BoardHistoryList.prototype, "total", void 0);
|
|
85
93
|
exports.BoardHistoryList = BoardHistoryList = tslib_1.__decorate([
|
|
86
|
-
(0, type_graphql_1.ObjectType)()
|
|
94
|
+
(0, type_graphql_1.ObjectType)({ description: 'A paginated list of board histories.' })
|
|
87
95
|
], BoardHistoryList);
|
|
88
96
|
//# sourceMappingURL=board-type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-type.js","sourceRoot":"","sources":["../../../server/service/board/board-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAsF;AAEtF,
|
|
1
|
+
{"version":3,"file":"board-type.js","sourceRoot":"","sources":["../../../server/service/board/board-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { Board } from './board.js'\nimport { BoardHistory } from './board-history.js'\n\n@InputType({ description: 'Input for creating a new board.' })\nexport class NewBoard {\n @Field({ description: 'The name of the new board.' })\n name: string\n\n @Field({ nullable: true, description: 'A detailed description for the new board.' })\n description?: string\n\n @Field({ description: 'The JSON model for the new board.' })\n model: string\n\n @Field({ nullable: true, description: \"The type for the new board, can be 'main', 'sub', or 'popup'.\" })\n type?: 'main' | 'sub' | 'popup'\n\n @Field({ nullable: true, description: 'The ID of the group to associate the new board with.' })\n groupId?: string\n\n @Field({ nullable: true, description: 'A base64 encoded thumbnail image for the new board.' })\n thumbnail?: string\n}\n\n@InputType({ description: 'Input for updating (patching) an existing board.' })\nexport class BoardPatch {\n @Field({ nullable: true, description: 'The new name for the board.' })\n name?: string\n\n @Field({ nullable: true, description: 'The new description for the board.' })\n description?: string\n\n @Field({ nullable: true, description: \"The new type for the board, can be 'main', 'sub', or 'popup'.\" })\n type?: 'main' | 'sub' | 'popup'\n\n @Field({ nullable: true, description: 'The new JSON model for the board.' })\n model?: string\n\n @Field({ nullable: true, description: 'The new group ID for the board.' })\n groupId?: string\n\n @Field({ nullable: true, description: 'The new base64 encoded thumbnail image for the board.' })\n thumbnail?: string\n}\n\n@ObjectType({ description: 'A paginated list of boards.' })\nexport class BoardList {\n @Field(type => [Board], { description: 'The list of board items.' })\n items: Board[]\n\n @Field(type => Int, { description: 'The total number of boards.' })\n total: number\n}\n\n@ObjectType({ description: 'A paginated list of board histories.' })\nexport class BoardHistoryList {\n @Field(type => [BoardHistory], { description: 'The list of board history items.' })\n items: BoardHistory[]\n\n @Field(type => Int, { description: 'The total number of board histories.' })\n total: number\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Domain } from '@things-factory/shell';
|
|
2
|
-
import { Group } from '../group/group';
|
|
3
|
-
import { PlayGroup } from '../play-group/play-group';
|
|
2
|
+
import { Group } from '../group/group.js';
|
|
3
|
+
import { PlayGroup } from '../play-group/play-group.js';
|
|
4
4
|
import { User } from '@things-factory/auth-base';
|
|
5
5
|
export declare class Board {
|
|
6
6
|
readonly id?: string;
|
|
@@ -9,6 +9,7 @@ export declare class Board {
|
|
|
9
9
|
domainId?: string;
|
|
10
10
|
name?: string;
|
|
11
11
|
description?: string;
|
|
12
|
+
type?: 'main' | 'sub' | 'popup';
|
|
12
13
|
state?: 'draft' | 'released';
|
|
13
14
|
model?: string;
|
|
14
15
|
thumbnail?: string;
|