@things-factory/board-service 5.0.14 → 6.0.0-alpha.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/fonts.js +2 -2
- package/dist-server/controllers/fonts.js.map +1 -1
- package/dist-server/controllers/headless-model.js +3 -4
- package/dist-server/controllers/headless-model.js.map +1 -1
- package/dist-server/migrations/1556862253000-SeedGroup.js +7 -8
- package/dist-server/migrations/1556862253000-SeedGroup.js.map +1 -1
- package/dist-server/routers/standalone-board-service-router.js +2 -2
- package/dist-server/routers/standalone-board-service-router.js.map +1 -1
- package/dist-server/service/board/board-mutation.js +10 -11
- package/dist-server/service/board/board-mutation.js.map +1 -1
- package/dist-server/service/board/board-query.js +10 -11
- package/dist-server/service/board/board-query.js.map +1 -1
- package/dist-server/service/board/board.js +3 -4
- package/dist-server/service/board/board.js.map +1 -1
- package/dist-server/service/group/group-mutation.js +11 -11
- package/dist-server/service/group/group-mutation.js.map +1 -1
- package/dist-server/service/group/group-query.js +9 -11
- package/dist-server/service/group/group-query.js.map +1 -1
- package/dist-server/service/group/group.js +3 -4
- package/dist-server/service/group/group.js.map +1 -1
- package/dist-server/service/play-group/play-group-mutation.js +14 -12
- package/dist-server/service/play-group/play-group-mutation.js.map +1 -1
- package/dist-server/service/play-group/play-group-query.js +11 -10
- package/dist-server/service/play-group/play-group-query.js.map +1 -1
- package/dist-server/service/play-group/play-group.js +3 -4
- package/dist-server/service/play-group/play-group.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/server/controllers/fonts.ts +2 -1
- package/server/controllers/headless-model.ts +3 -3
- package/server/migrations/1556862253000-SeedGroup.ts +5 -5
- package/server/routers/standalone-board-service-router.ts +2 -2
- package/server/service/board/board-mutation.ts +13 -10
- package/server/service/board/board-query.ts +10 -10
- package/server/service/group/group-mutation.ts +19 -10
- package/server/service/group/group-query.ts +9 -10
- package/server/service/play-group/play-group-mutation.ts +20 -20
- package/server/service/play-group/play-group-query.ts +13 -11
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fonts = void 0;
|
|
4
|
-
const typeorm_1 = require("typeorm");
|
|
5
4
|
const font_base_1 = require("@things-factory/font-base");
|
|
5
|
+
const shell_1 = require("@things-factory/shell");
|
|
6
6
|
const fonts = async () => {
|
|
7
|
-
const qb = await (0,
|
|
7
|
+
const qb = await (0, shell_1.getRepository)(font_base_1.Font).createQueryBuilder('FONT');
|
|
8
8
|
return (await qb.select('name').distinct(true).where({ active: true }).getRawMany()).map((f) => f.name);
|
|
9
9
|
};
|
|
10
10
|
exports.fonts = fonts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../server/controllers/fonts.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../server/controllers/fonts.ts"],"names":[],"mappings":";;;AAEA,yDAAgD;AAChD,iDAAqD;AAE9C,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;IAC9B,MAAM,EAAE,GAA6B,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACzF,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CACtF,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAChC,CAAA;AACH,CAAC,CAAA;AALY,QAAA,KAAK,SAKjB","sourcesContent":["import { SelectQueryBuilder } from 'typeorm'\n\nimport { Font } from '@things-factory/font-base'\nimport { getRepository } from '@things-factory/shell'\n\nexport const fonts = async () => {\n const qb: SelectQueryBuilder<Font> = await getRepository(Font).createQueryBuilder('FONT')\n return (await qb.select('name').distinct(true).where({ active: true }).getRawMany()).map(\n (f: { name: string }) => f.name\n )\n}\n"]}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.headlessModel = void 0;
|
|
4
|
-
const typeorm_1 = require("typeorm");
|
|
5
|
-
const board_1 = require("../service/board/board");
|
|
6
4
|
const shell_1 = require("@things-factory/shell");
|
|
5
|
+
const board_1 = require("../service/board/board");
|
|
7
6
|
const headlessModel = async (target) => {
|
|
8
7
|
var { domain, id, model } = target || {};
|
|
9
8
|
if (model) {
|
|
@@ -15,8 +14,8 @@ const headlessModel = async (target) => {
|
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
else if (id) {
|
|
18
|
-
const repository = (0,
|
|
19
|
-
var board = await repository.
|
|
17
|
+
const repository = (0, shell_1.getRepository)(board_1.Board);
|
|
18
|
+
var board = await repository.findOneBy({ domain: { id: domain.id }, id });
|
|
20
19
|
model = JSON.parse(board.model);
|
|
21
20
|
}
|
|
22
21
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless-model.js","sourceRoot":"","sources":["../../server/controllers/headless-model.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"headless-model.js","sourceRoot":"","sources":["../../server/controllers/headless-model.ts"],"names":[],"mappings":";;;AAAA,iDAAqE;AAErE,kDAA8C;AAEvC,MAAM,aAAa,GAAG,KAAK,EAAC,MAAM,EAAC,EAAE;IAC1C,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAExC,IAAI,KAAK,EAAE;QACT,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;YAC5B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SAC1B;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,MAAM,oCAAoC,CAAA;SAC3C;KACF;SAAM,IAAI,EAAE,EAAE;QACb,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,aAAK,CAAC,CAAA;QACvC,IAAI,KAAK,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACzE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KAChC;SAAM;QACL,MAAM,iCAAiC,CAAA;KACxC;IAED,OAAO;QACL,IAAI,EAAE,IAAA,sBAAc,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC;QACvC,KAAK;QACL,KAAK;KACN,CAAA;AACH,CAAC,CAAA;AAtBY,QAAA,aAAa,iBAsBzB","sourcesContent":["import { getContextPath, getRepository } from '@things-factory/shell'\n\nimport { Board } from '../service/board/board'\n\nexport const headlessModel = async target => {\n var { domain, id, model } = target || {}\n\n if (model) {\n if (typeof model == 'string') {\n model = JSON.parse(model)\n } else if (typeof model !== 'object') {\n throw 'model should be a string or object'\n }\n } else if (id) {\n const repository = getRepository(Board)\n var board = await repository.findOneBy({ domain: { id: domain.id }, id })\n model = JSON.parse(board.model)\n } else {\n throw 'parameter model or id mandatory'\n }\n\n return {\n base: getContextPath(domain?.subdomain),\n model,\n board\n }\n}\n"]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SeedGroup1556862253000 = void 0;
|
|
4
|
-
const typeorm_1 = require("typeorm");
|
|
5
4
|
const env_1 = require("@things-factory/env");
|
|
6
5
|
const shell_1 = require("@things-factory/shell");
|
|
7
6
|
const group_1 = require("../service/group/group");
|
|
@@ -13,9 +12,9 @@ const SEED_GROUP = [
|
|
|
13
12
|
];
|
|
14
13
|
class SeedGroup1556862253000 {
|
|
15
14
|
async up(queryRunner) {
|
|
16
|
-
const repository = (0,
|
|
17
|
-
const domainRepository = (0,
|
|
18
|
-
const domain = await domainRepository.
|
|
15
|
+
const repository = (0, shell_1.getRepository)(group_1.Group);
|
|
16
|
+
const domainRepository = (0, shell_1.getRepository)(shell_1.Domain);
|
|
17
|
+
const domain = await domainRepository.findOneBy({ name: 'SYSTEM' });
|
|
19
18
|
try {
|
|
20
19
|
return await Promise.all(SEED_GROUP.map(async (group) => {
|
|
21
20
|
await repository.save(Object.assign(Object.assign({}, group), { domain }));
|
|
@@ -26,13 +25,13 @@ class SeedGroup1556862253000 {
|
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
27
|
async down(queryRunner) {
|
|
29
|
-
const repository = (0,
|
|
30
|
-
const domainRepository = (0,
|
|
31
|
-
const domain = await domainRepository.
|
|
28
|
+
const repository = (0, shell_1.getRepository)(group_1.Group);
|
|
29
|
+
const domainRepository = (0, shell_1.getRepository)(shell_1.Domain);
|
|
30
|
+
const domain = await domainRepository.findOneBy({ name: 'SYSTEM' });
|
|
32
31
|
SEED_GROUP.reverse().forEach(async (group) => {
|
|
33
32
|
let record = await repository.findOne({
|
|
34
33
|
where: {
|
|
35
|
-
domain,
|
|
34
|
+
domain: { id: domain.id },
|
|
36
35
|
name: group.name
|
|
37
36
|
}
|
|
38
37
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1556862253000-SeedGroup.js","sourceRoot":"","sources":["../../server/migrations/1556862253000-SeedGroup.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"1556862253000-SeedGroup.js","sourceRoot":"","sources":["../../server/migrations/1556862253000-SeedGroup.ts"],"names":[],"mappings":";;;AAEA,6CAA4C;AAC5C,iDAA6D;AAE7D,kDAA8C;AAE9C,MAAM,UAAU,GAAG;IACjB;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,WAAW;KACzB;CACF,CAAA;AAED,MAAa,sBAAsB;IAC1B,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,aAAK,CAAC,CAAA;QACvC,MAAM,gBAAgB,GAAG,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEnE,IAAI;YACF,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBAC3B,MAAM,UAAU,CAAC,IAAI,iCAChB,KAAK,KACR,MAAM,IACN,CAAA;YACJ,CAAC,CAAC,CACH,CAAA;SACF;QAAC,OAAO,CAAC,EAAE;YACV,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SAChB;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,aAAK,CAAC,CAAA;QACvC,MAAM,gBAAgB,GAAG,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEnE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACzC,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;gBACpC,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;oBACzB,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;aACF,CAAC,CAAA;YAEF,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AApCD,wDAoCC","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { Group } from '../service/group/group'\n\nconst SEED_GROUP = [\n {\n name: 'DASHBOARD',\n description: 'Dashboard'\n }\n]\n\nexport class SeedGroup1556862253000 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<any> {\n const repository = getRepository(Group)\n const domainRepository = getRepository(Domain)\n const domain = await domainRepository.findOneBy({ name: 'SYSTEM' })\n\n try {\n return await Promise.all(\n SEED_GROUP.map(async group => {\n await repository.save({\n ...group,\n domain\n })\n })\n )\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<any> {\n const repository = getRepository(Group)\n const domainRepository = getRepository(Domain)\n const domain = await domainRepository.findOneBy({ name: 'SYSTEM' })\n\n SEED_GROUP.reverse().forEach(async group => {\n let record = await repository.findOne({\n where: {\n domain: { id: domain.id },\n name: group.name\n }\n })\n\n await repository.remove(record)\n })\n }\n}\n"]}
|
|
@@ -4,8 +4,8 @@ exports.standaloneBoardServiceRouter = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const content_disposition_1 = tslib_1.__importDefault(require("content-disposition"));
|
|
6
6
|
const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
|
|
7
|
-
const typeorm_1 = require("typeorm");
|
|
8
7
|
const auth_base_1 = require("@things-factory/auth-base");
|
|
8
|
+
const shell_1 = require("@things-factory/shell");
|
|
9
9
|
const fonts_1 = require("../controllers/fonts");
|
|
10
10
|
const headless_model_1 = require("../controllers/headless-model");
|
|
11
11
|
const label_command_1 = require("../controllers/label-command");
|
|
@@ -35,7 +35,7 @@ exports.standaloneBoardServiceRouter.get('/headless/:id', async (context, next)
|
|
|
35
35
|
exports.standaloneBoardServiceRouter.get('/thumbnail/:id', async (context, next) => {
|
|
36
36
|
const { domain } = context.state;
|
|
37
37
|
const { id } = context.params;
|
|
38
|
-
const { name, thumbnail } = await (0,
|
|
38
|
+
const { name, thumbnail } = await (0, shell_1.getRepository)(board_1.Board).findOneBy({ domain: { id: domain.id }, id });
|
|
39
39
|
if (thumbnail) {
|
|
40
40
|
const index = thumbnail.indexOf(';base64,');
|
|
41
41
|
const base64 = thumbnail.substring(index + 8);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standalone-board-service-router.js","sourceRoot":"","sources":["../../server/routers/standalone-board-service-router.ts"],"names":[],"mappings":";;;;AAAA,sFAAoD;AACpD,oEAA+B;
|
|
1
|
+
{"version":3,"file":"standalone-board-service-router.js","sourceRoot":"","sources":["../../server/routers/standalone-board-service-router.ts"],"names":[],"mappings":"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","sourcesContent":["import contentDisposition from 'content-disposition'\nimport Router from 'koa-router'\n\nimport { setAccessTokenCookie } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\n\nimport { fonts } from '../controllers/fonts'\nimport { headlessModel } from '../controllers/headless-model'\nimport { labelcommand } from '../controllers/label-command'\nimport { pdf } from '../controllers/pdf'\nimport { screenshot } from '../controllers/screenshot'\nimport { Board } from '../service/board/board'\n\nexport const standaloneBoardServiceRouter = new Router()\n\n// for board headless\nstandaloneBoardServiceRouter.get('/headless-full/:id', async (context, next) => {\n const { domain, user } = context.state\n const { id } = context.params\n\n const { model, base } = await headlessModel({ domain, id })\n model.fonts = await fonts()\n\n setAccessTokenCookie(context, await user.sign({ domain }))\n\n await context.render('internal-board-full-feature-view', { model, base })\n})\n\n// for board headless\nstandaloneBoardServiceRouter.get('/headless/:id', async (context, next) => {\n const { domain, user } = context.state\n const { id } = context.params\n\n const { model, base } = await headlessModel({ domain, id })\n model.fonts = await fonts()\n\n setAccessTokenCookie(context, await user.sign({ domain }))\n\n await context.render('internal-board-service-view', { model, base })\n})\n\n// for board thumbnail\nstandaloneBoardServiceRouter.get('/thumbnail/:id', async (context, next) => {\n const { domain } = context.state\n const { id } = context.params\n\n const { name, thumbnail } = await getRepository(Board).findOneBy({ domain: { id: domain.id }, id })\n\n if (thumbnail) {\n const index = thumbnail.indexOf(';base64,')\n const base64 = thumbnail.substring(index + 8)\n const buffer = Buffer.from(base64, 'base64')\n\n context.type = 'image/png'\n context.set('Content-Disposition', contentDisposition(`thumbnail-${name}.png`))\n context.body = buffer\n } else {\n context.throw(404, 'thumbnail not found')\n }\n})\n\n// for webpage scrap\nstandaloneBoardServiceRouter.get('/screenshot/:id', async (context, next) => {\n const { domain } = context.state\n const { id } = context.params\n\n const { model, board } = await headlessModel({ domain, id })\n const data = Object.keys(context.query).length ? context.query : null\n\n context.type = 'image/png'\n context.set('Content-Disposition', contentDisposition(`${board.name}.png`))\n context.body = await screenshot({ id, model, data, options: { encoding: 'binary', type: 'png' }, context })\n})\n\n// for webpage scrap\nstandaloneBoardServiceRouter.get('/board/pdf/:id', async (context, next) => {\n const { domain } = context.state\n const { id } = context.params\n\n const { model, board } = await headlessModel({ domain, id })\n const data = Object.keys(context.query).length ? context.query : null\n\n const result = await pdf({\n id,\n model,\n data,\n options: {\n format: 'A4'\n },\n context\n })\n\n context.type = 'application/pdf'\n context.set('Content-Disposition', contentDisposition(`${board.name}.pdf`))\n context.body = result\n})\n\n// for webpage scrap => zpl image print(grf format) command\nstandaloneBoardServiceRouter.get('/label-command/:id', async (context, next) => {\n const { id } = context.params\n\n const data = Object.keys(context.query).length ? context.query : null\n\n const orientation = data && data.orientation\n const mirror = data && data.mirror\n const upsideDown = data && data.upsideDown\n\n context.type = 'text/plain'\n context.body = await labelcommand({ id, data, orientation, mirror, upsideDown, context } as any)\n})\n"]}
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BoardMutation = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const type_graphql_1 = require("type-graphql");
|
|
6
|
-
const typeorm_1 = require("typeorm");
|
|
7
6
|
const shell_1 = require("@things-factory/shell");
|
|
8
7
|
const thumbnail_1 = require("../../controllers/thumbnail");
|
|
9
8
|
const group_1 = require("../group/group");
|
|
@@ -12,11 +11,11 @@ const board_type_1 = require("./board-type");
|
|
|
12
11
|
let BoardMutation = class BoardMutation {
|
|
13
12
|
async createBoard(board, context) {
|
|
14
13
|
const { domain, user, notify } = context.state;
|
|
15
|
-
const repository = (0,
|
|
16
|
-
const groupRepository = (0,
|
|
14
|
+
const repository = (0, shell_1.getRepository)(board_1.Board);
|
|
15
|
+
const groupRepository = (0, shell_1.getRepository)(group_1.Group);
|
|
17
16
|
const newBoard = Object.assign({}, board);
|
|
18
17
|
if (board.groupId) {
|
|
19
|
-
newBoard.group = await groupRepository.
|
|
18
|
+
newBoard.group = await groupRepository.findOneBy({
|
|
20
19
|
id: board.groupId
|
|
21
20
|
});
|
|
22
21
|
}
|
|
@@ -42,8 +41,8 @@ let BoardMutation = class BoardMutation {
|
|
|
42
41
|
}
|
|
43
42
|
async updateBoard(id, patch, context) {
|
|
44
43
|
const { domain, user, notify } = context.state;
|
|
45
|
-
const repository = (0,
|
|
46
|
-
const board = await repository.
|
|
44
|
+
const repository = (0, shell_1.getRepository)(board_1.Board);
|
|
45
|
+
const board = await repository.findOneBy({ domain: { id: domain.id }, id });
|
|
47
46
|
if (patch.model) {
|
|
48
47
|
const base64 = await (0, thumbnail_1.thumbnail)({
|
|
49
48
|
model: patch.model,
|
|
@@ -57,10 +56,10 @@ let BoardMutation = class BoardMutation {
|
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
58
|
if (patch.groupId !== undefined) {
|
|
60
|
-
const groupRepository = (0,
|
|
59
|
+
const groupRepository = (0, shell_1.getRepository)(group_1.Group);
|
|
61
60
|
board.group =
|
|
62
|
-
(await groupRepository.
|
|
63
|
-
domain,
|
|
61
|
+
(await groupRepository.findOneBy({
|
|
62
|
+
domain: { id: domain.id },
|
|
64
63
|
id: patch.groupId
|
|
65
64
|
})) || null;
|
|
66
65
|
delete patch.groupId;
|
|
@@ -78,8 +77,8 @@ let BoardMutation = class BoardMutation {
|
|
|
78
77
|
}
|
|
79
78
|
async deleteBoard(id, context) {
|
|
80
79
|
const { domain, user, notify } = context.state;
|
|
81
|
-
const repository = (0,
|
|
82
|
-
const board = await repository.
|
|
80
|
+
const repository = (0, shell_1.getRepository)(board_1.Board);
|
|
81
|
+
const board = await repository.findOneBy({ domain: { id: domain.id }, id });
|
|
83
82
|
const deleted = await repository.delete(id);
|
|
84
83
|
notify &&
|
|
85
84
|
notify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-mutation.js","sourceRoot":"","sources":["../../../server/service/board/board-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;
|
|
1
|
+
{"version":3,"file":"board-mutation.js","sourceRoot":"","sources":["../../../server/service/board/board-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\n\nimport { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'\n\nimport { thumbnail } from '../../controllers/thumbnail'\nimport { Group } from '../group/group'\nimport { Board } from './board'\nimport { BoardPatch, NewBoard } from './board-type'\n\n@Resolver(Board)\nexport class BoardMutation {\n @Mutation(returns => Board, { description: 'To create new Board' })\n async createBoard(@Arg('board') board: NewBoard, @Ctx() context: ResolverContext): Promise<Board> {\n const { domain, user, notify } = context.state\n const repository = getRepository(Board)\n const groupRepository = getRepository(Group)\n\n const newBoard: Board = {\n ...board\n }\n\n if (board.groupId) {\n newBoard.group = await groupRepository.findOneBy({\n id: board.groupId\n })\n }\n\n const base64 = await thumbnail({\n model: board.model,\n context\n })\n\n if (base64) {\n newBoard.thumbnail = 'data:image/png;base64,' + base64.toString('base64')\n } else {\n newBoard.thumbnail = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='\n }\n\n const created = await repository.save({\n domain,\n ...newBoard,\n creator: user,\n updater: user\n })\n\n notify &&\n notify({\n mode: 'in-app',\n title: `Board '${created.name}' created`,\n body: `Board '${created.name}' created by ${user.name}\\n${created.description}`,\n url: getRedirectSubdomainPath(context, domain.subdomain, `/board-viewer/${created.id}`)\n })\n\n return created\n }\n\n @Mutation(returns => Board, { description: 'To modify Board information' })\n async updateBoard(\n @Arg('id') id: string,\n @Arg('patch') patch: BoardPatch,\n @Ctx() context: ResolverContext\n ): Promise<Board> {\n const { domain, user, notify } = context.state\n const repository = getRepository(Board)\n\n const board = await repository.findOneBy({ domain: { id: domain.id }, id })\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 if (patch.groupId !== undefined) {\n const groupRepository = getRepository(Group)\n board.group =\n (await groupRepository.findOneBy({\n domain: { id: domain.id },\n id: patch.groupId\n })) || null\n\n delete patch.groupId\n }\n\n const updated = await repository.save({\n ...board,\n ...patch,\n updater: user\n })\n\n notify &&\n notify({\n mode: 'in-app',\n title: `Board '${updated.name}' updated`,\n body: `Board '${updated.name}' updated by ${user.name}\\n${updated.description}`,\n image: getRedirectSubdomainPath(context, domain.subdomain, `/thumbnail/${updated.id}`),\n url: getRedirectSubdomainPath(context, domain.subdomain, `/board-viewer/${updated.id}`)\n })\n\n return updated\n }\n\n @Mutation(returns => Boolean, { description: 'To delete Board' })\n async deleteBoard(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, user, notify } = context.state\n const repository = getRepository(Board)\n const board = await repository.findOneBy({ domain: { id: domain.id }, id })\n\n const deleted = await repository.delete(id)\n\n notify &&\n notify({\n mode: 'in-app',\n title: `Board '${board.name}' deleted`,\n body: `Board '${board.name}' deleted by ${user.name}\\n${board.description}`\n })\n\n return true\n }\n}\n"]}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.BoardQuery = void 0;
|
|
5
4
|
const tslib_1 = require("tslib");
|
|
6
5
|
const type_graphql_1 = require("type-graphql");
|
|
7
|
-
const typeorm_1 = require("typeorm");
|
|
8
6
|
const auth_base_1 = require("@things-factory/auth-base");
|
|
9
7
|
const shell_1 = require("@things-factory/shell");
|
|
10
8
|
const group_1 = require("../group/group");
|
|
@@ -14,14 +12,14 @@ const board_type_1 = require("./board-type");
|
|
|
14
12
|
let BoardQuery = class BoardQuery {
|
|
15
13
|
async board(id, context) {
|
|
16
14
|
const { domain } = context.state;
|
|
17
|
-
return await (0,
|
|
18
|
-
where: { domain, id }
|
|
15
|
+
return await (0, shell_1.getRepository)(board_1.Board).findOne({
|
|
16
|
+
where: { domain: { id: domain.id }, id }
|
|
19
17
|
});
|
|
20
18
|
}
|
|
21
19
|
async boards(params, context) {
|
|
22
20
|
const { domain } = context.state;
|
|
23
21
|
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
|
24
|
-
repository: (0,
|
|
22
|
+
repository: (0, shell_1.getRepository)(board_1.Board),
|
|
25
23
|
params,
|
|
26
24
|
domain,
|
|
27
25
|
searchables: ['name', 'description']
|
|
@@ -30,28 +28,29 @@ let BoardQuery = class BoardQuery {
|
|
|
30
28
|
return { items, total };
|
|
31
29
|
}
|
|
32
30
|
async group(board) {
|
|
33
|
-
return await (0,
|
|
31
|
+
return await (0, shell_1.getRepository)(group_1.Group).findOneBy({
|
|
34
32
|
id: board.groupId
|
|
35
33
|
});
|
|
36
34
|
}
|
|
37
35
|
async playGroups(board) {
|
|
38
36
|
var _a;
|
|
39
|
-
return (_a = (await (0,
|
|
37
|
+
return (_a = (await (0, shell_1.getRepository)(board_1.Board).findOne({
|
|
38
|
+
where: { id: board.id },
|
|
40
39
|
relations: ['playGroups']
|
|
41
40
|
}))) === null || _a === void 0 ? void 0 : _a.playGroups;
|
|
42
41
|
}
|
|
43
42
|
async domain(board) {
|
|
44
|
-
return await (0,
|
|
43
|
+
return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({
|
|
45
44
|
id: board.domainId
|
|
46
45
|
});
|
|
47
46
|
}
|
|
48
47
|
async updater(board) {
|
|
49
|
-
return await (0,
|
|
48
|
+
return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({
|
|
50
49
|
id: board.updaterId
|
|
51
50
|
});
|
|
52
51
|
}
|
|
53
52
|
async creator(board) {
|
|
54
|
-
return await (0,
|
|
53
|
+
return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({
|
|
55
54
|
id: board.creatorId
|
|
56
55
|
});
|
|
57
56
|
}
|
|
@@ -69,7 +68,7 @@ tslib_1.__decorate([
|
|
|
69
68
|
tslib_1.__param(0, (0, type_graphql_1.Args)()),
|
|
70
69
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
71
70
|
tslib_1.__metadata("design:type", Function),
|
|
72
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
71
|
+
tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
|
|
73
72
|
tslib_1.__metadata("design:returntype", Promise)
|
|
74
73
|
], BoardQuery.prototype, "boards", null);
|
|
75
74
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-query.js","sourceRoot":"","sources":["../../../server/service/board/board-query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"board-query.js","sourceRoot":"","sources":["../../../server/service/board/board-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { Group } from '../group/group'\nimport { PlayGroup } from '../play-group/play-group'\nimport { Board } from './board'\nimport { BoardList } from './board-type'\n\n@Resolver(Board)\nexport class BoardQuery {\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 return await getRepository(Board).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => BoardList, { description: 'To fetch multiple Boards' })\n async boards(@Args() 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 await getRepository(Group).findOneBy({\n id: board.groupId\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 await getRepository(Domain).findOneBy({\n id: board.domainId\n })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() board: Board): Promise<User> {\n return await getRepository(User).findOneBy({\n id: board.updaterId\n })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() board: Board): Promise<User> {\n return await getRepository(User).findOneBy({\n id: board.creatorId\n })\n }\n}\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b, _c;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.Board = void 0;
|
|
5
4
|
const tslib_1 = require("tslib");
|
|
@@ -22,7 +21,7 @@ tslib_1.__decorate([
|
|
|
22
21
|
tslib_1.__decorate([
|
|
23
22
|
(0, typeorm_1.ManyToOne)(type => shell_1.Domain),
|
|
24
23
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
25
|
-
tslib_1.__metadata("design:type",
|
|
24
|
+
tslib_1.__metadata("design:type", shell_1.Domain)
|
|
26
25
|
], Board.prototype, "domain", void 0);
|
|
27
26
|
tslib_1.__decorate([
|
|
28
27
|
(0, typeorm_1.RelationId)((board) => board.domain),
|
|
@@ -93,7 +92,7 @@ tslib_1.__decorate([
|
|
|
93
92
|
nullable: true
|
|
94
93
|
}),
|
|
95
94
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
96
|
-
tslib_1.__metadata("design:type",
|
|
95
|
+
tslib_1.__metadata("design:type", auth_base_1.User)
|
|
97
96
|
], Board.prototype, "creator", void 0);
|
|
98
97
|
tslib_1.__decorate([
|
|
99
98
|
(0, typeorm_1.RelationId)((board) => board.creator),
|
|
@@ -104,7 +103,7 @@ tslib_1.__decorate([
|
|
|
104
103
|
nullable: true
|
|
105
104
|
}),
|
|
106
105
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
107
|
-
tslib_1.__metadata("design:type",
|
|
106
|
+
tslib_1.__metadata("design:type", auth_base_1.User)
|
|
108
107
|
], Board.prototype, "updater", void 0);
|
|
109
108
|
tslib_1.__decorate([
|
|
110
109
|
(0, typeorm_1.RelationId)((board) => board.creator),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board.js","sourceRoot":"","sources":["../../../server/service/board/board.ts"],"names":[],"mappings":"
|
|
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 UpdateDateColumn\n} from 'typeorm'\nimport { Field, ID, ObjectType } from 'type-graphql'\n\nimport { Domain } from '@things-factory/shell'\nimport { Group } from '../group/group'\nimport { PlayGroup } from '../play-group/play-group'\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_0', (board: Board) => [board.domain, board.name], { unique: true })\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 @ManyToOne(type => Domain)\n @Field({ 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({\n nullable: true\n })\n @Field({ nullable: true })\n description?: 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 : 'varchar'\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 : 'varchar'\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, {\n nullable: true\n })\n @Field({ nullable: true })\n creator?: User\n\n @RelationId((board: Board) => board.creator)\n creatorId?: string\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field({ nullable: true })\n updater?: User\n\n @RelationId((board: Board) => board.creator)\n updaterId?: string\n}\n"]}
|
|
@@ -3,40 +3,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.GroupMutation = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const type_graphql_1 = require("type-graphql");
|
|
6
|
-
const
|
|
6
|
+
const shell_1 = require("@things-factory/shell");
|
|
7
7
|
const board_1 = require("../board/board");
|
|
8
8
|
const group_1 = require("./group");
|
|
9
9
|
const group_type_1 = require("./group-type");
|
|
10
10
|
let GroupMutation = class GroupMutation {
|
|
11
11
|
async createGroup(group, context) {
|
|
12
12
|
const { domain, user } = context.state;
|
|
13
|
-
return await (0,
|
|
13
|
+
return await (0, shell_1.getRepository)(group_1.Group).save(Object.assign(Object.assign({ domain }, group), { creator: user, updater: user }));
|
|
14
14
|
}
|
|
15
15
|
async updateGroup(id, patch, context) {
|
|
16
16
|
const { domain, user } = context.state;
|
|
17
|
-
const repository = (0,
|
|
18
|
-
const group = await repository.
|
|
17
|
+
const repository = (0, shell_1.getRepository)(group_1.Group);
|
|
18
|
+
const group = await repository.findOneBy({ domain: { id: domain.id }, id });
|
|
19
19
|
return await repository.save(Object.assign(Object.assign(Object.assign({}, group), patch), { updater: user }));
|
|
20
20
|
}
|
|
21
21
|
async joinGroup(id, boardIds, context) {
|
|
22
22
|
const { domain } = context.state;
|
|
23
|
-
const repository = (0,
|
|
24
|
-
const group = await repository.
|
|
25
|
-
const boardRepository = (0,
|
|
23
|
+
const repository = (0, shell_1.getRepository)(group_1.Group);
|
|
24
|
+
const group = await repository.findOneBy({ domain: { id: domain.id }, id });
|
|
25
|
+
const boardRepository = (0, shell_1.getRepository)(board_1.Board);
|
|
26
26
|
await boardIds.forEach(async (boardId) => {
|
|
27
|
-
let board = await boardRepository.
|
|
27
|
+
let board = await boardRepository.findOneBy({ domain: { id: domain.id }, id: boardId });
|
|
28
28
|
board.group = group;
|
|
29
29
|
await boardRepository.save(board);
|
|
30
30
|
});
|
|
31
31
|
return await repository.findOne({
|
|
32
|
-
where: { domain, id },
|
|
32
|
+
where: { domain: { id: domain.id }, id },
|
|
33
33
|
relations: ['boards']
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
async deleteGroup(id, context) {
|
|
37
|
-
const repository = (0,
|
|
37
|
+
const repository = (0, shell_1.getRepository)(group_1.Group);
|
|
38
38
|
/* TODO - 그룹에 소속된 보드가 있는 경우에는 그룹을 지워서는 안된다. */
|
|
39
|
-
const group = await repository.
|
|
39
|
+
const group = await repository.findOneBy({
|
|
40
40
|
domain: context.state.domain,
|
|
41
41
|
id
|
|
42
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-mutation.js","sourceRoot":"","sources":["../../../server/service/group/group-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;
|
|
1
|
+
{"version":3,"file":"group-mutation.js","sourceRoot":"","sources":["../../../server/service/group/group-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { Board } from '../board/board'\nimport { Group } from './group'\nimport { GroupPatch, NewGroup } from './group-type'\n\n@Resolver(Group)\nexport class GroupMutation {\n @Mutation(returns => Group, { nullable: true, description: 'To create new Group' })\n async createGroup(@Arg('group') group: NewGroup, @Ctx() context: ResolverContext): Promise<Group> {\n const { domain, user } = context.state\n\n return await getRepository(Group).save({\n domain,\n ...group,\n creator: user,\n updater: user\n })\n }\n\n @Mutation(returns => Group, { description: 'To modify Group information' })\n async updateGroup(\n @Arg('id') id: string,\n @Arg('patch') patch: GroupPatch,\n @Ctx() context: ResolverContext\n ): Promise<Group> {\n const { domain, user } = context.state\n const repository = getRepository(Group)\n\n const group = await repository.findOneBy({ domain: { id: domain.id }, id })\n\n return await repository.save({\n ...group,\n ...patch,\n updater: user\n })\n }\n\n @Mutation(returns => Group, { description: 'To make the board to join the group' })\n async joinGroup(\n @Arg('id') id: string,\n @Arg('boardIds', type => [String]) boardIds: string[],\n @Ctx() context: ResolverContext\n ) {\n const { domain } = context.state\n const repository = getRepository(Group)\n const group = await repository.findOneBy({ domain: { id: domain.id }, id })\n\n const boardRepository = getRepository(Board)\n\n await boardIds.forEach(async boardId => {\n let board = await boardRepository.findOneBy({ domain: { id: domain.id }, id: boardId })\n board.group = group\n await boardRepository.save(board)\n })\n\n return await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['boards']\n })\n }\n\n @Mutation(returns => Boolean, { description: 'To delete Group' })\n async deleteGroup(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const repository = getRepository(Group)\n\n /* TODO - 그룹에 소속된 보드가 있는 경우에는 그룹을 지워서는 안된다. */\n const group = await repository.findOneBy({\n domain: context.state.domain,\n id\n })\n\n await repository.delete(id)\n return true\n }\n}\n"]}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.GroupQuery = void 0;
|
|
5
4
|
const tslib_1 = require("tslib");
|
|
6
5
|
const type_graphql_1 = require("type-graphql");
|
|
7
|
-
const typeorm_1 = require("typeorm");
|
|
8
6
|
const auth_base_1 = require("@things-factory/auth-base");
|
|
9
7
|
const shell_1 = require("@things-factory/shell");
|
|
10
8
|
const board_1 = require("../board/board");
|
|
@@ -13,14 +11,14 @@ const group_type_1 = require("./group-type");
|
|
|
13
11
|
let GroupQuery = class GroupQuery {
|
|
14
12
|
async group(id, context) {
|
|
15
13
|
const { domain } = context.state;
|
|
16
|
-
return await (0,
|
|
17
|
-
where: { domain, id }
|
|
14
|
+
return await (0, shell_1.getRepository)(group_1.Group).findOne({
|
|
15
|
+
where: { domain: { id: domain.id }, id }
|
|
18
16
|
});
|
|
19
17
|
}
|
|
20
18
|
async groups(params, context) {
|
|
21
19
|
const { domain } = context.state;
|
|
22
20
|
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
|
23
|
-
repository: (0,
|
|
21
|
+
repository: (0, shell_1.getRepository)(group_1.Group),
|
|
24
22
|
params,
|
|
25
23
|
domain,
|
|
26
24
|
searchables: ['name', 'description']
|
|
@@ -29,18 +27,18 @@ let GroupQuery = class GroupQuery {
|
|
|
29
27
|
return { items, total };
|
|
30
28
|
}
|
|
31
29
|
async boards(group) {
|
|
32
|
-
return await (0,
|
|
33
|
-
group
|
|
30
|
+
return await (0, shell_1.getRepository)(board_1.Board).findBy({
|
|
31
|
+
group: { id: group.id }
|
|
34
32
|
});
|
|
35
33
|
}
|
|
36
34
|
async domain(group) {
|
|
37
|
-
return await (0,
|
|
35
|
+
return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: group.domainId });
|
|
38
36
|
}
|
|
39
37
|
async updater(group) {
|
|
40
|
-
return await (0,
|
|
38
|
+
return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: group.updaterId });
|
|
41
39
|
}
|
|
42
40
|
async creator(group) {
|
|
43
|
-
return await (0,
|
|
41
|
+
return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: group.creatorId });
|
|
44
42
|
}
|
|
45
43
|
};
|
|
46
44
|
tslib_1.__decorate([
|
|
@@ -56,7 +54,7 @@ tslib_1.__decorate([
|
|
|
56
54
|
tslib_1.__param(0, (0, type_graphql_1.Args)()),
|
|
57
55
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
58
56
|
tslib_1.__metadata("design:type", Function),
|
|
59
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
57
|
+
tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
|
|
60
58
|
tslib_1.__metadata("design:returntype", Promise)
|
|
61
59
|
], GroupQuery.prototype, "groups", null);
|
|
62
60
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-query.js","sourceRoot":"","sources":["../../../server/service/group/group-query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"group-query.js","sourceRoot":"","sources":["../../../server/service/group/group-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { Board } from '../board/board'\nimport { Group } from './group'\nimport { GroupList } from './group-type'\n\n@Resolver(Group)\nexport class GroupQuery {\n @Query(returns => Group, { nullable: true, description: 'To fetch a Group' })\n async group(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Group> {\n const { domain } = context.state\n\n return await getRepository(Group).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => GroupList, { description: 'To fetch multiple Groups' })\n async groups(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<GroupList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(Group),\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 => [Board])\n async boards(@Root() group: Group) {\n return await getRepository(Board).findBy({\n group: { id: group.id }\n })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() group: Group) {\n return await getRepository(Domain).findOneBy({ id: group.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() group: Group): Promise<User> {\n return await getRepository(User).findOneBy({ id: group.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() group: Group): Promise<User> {\n return await getRepository(User).findOneBy({ id: group.creatorId })\n }\n}\n"]}
|