@things-factory/board-service 4.3.671 → 4.3.672
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 +11 -0
- package/dist-server/controllers/fonts.js.map +1 -0
- package/dist-server/controllers/headless-model.js +32 -0
- package/dist-server/controllers/headless-model.js.map +1 -0
- package/dist-server/controllers/headless-pool-for-board.js +86 -0
- package/dist-server/controllers/headless-pool-for-board.js.map +1 -0
- package/dist-server/controllers/headless-pool-for-label.js +157 -0
- package/dist-server/controllers/headless-pool-for-label.js.map +1 -0
- package/dist-server/controllers/index.js +19 -0
- package/dist-server/controllers/index.js.map +1 -0
- package/dist-server/controllers/label-command.js +52 -0
- package/dist-server/controllers/label-command.js.map +1 -0
- package/dist-server/controllers/pdf.js +92 -0
- package/dist-server/controllers/pdf.js.map +1 -0
- package/dist-server/controllers/print.js +57 -0
- package/dist-server/controllers/print.js.map +1 -0
- package/dist-server/controllers/screenshot.js +90 -0
- package/dist-server/controllers/screenshot.js.map +1 -0
- package/dist-server/controllers/thumbnail.js +16 -0
- package/dist-server/controllers/thumbnail.js.map +1 -0
- package/dist-server/index.js +21 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/migrations/1556862253000-SeedGroup.js +43 -0
- package/dist-server/migrations/1556862253000-SeedGroup.js.map +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/routers/board-print-router.js +40 -0
- package/dist-server/routers/board-print-router.js.map +1 -0
- package/dist-server/routers/internal-board-view-router.js +19 -0
- package/dist-server/routers/internal-board-view-router.js.map +1 -0
- package/dist-server/routers/standalone-board-service-router.js +92 -0
- package/dist-server/routers/standalone-board-service-router.js.map +1 -0
- package/dist-server/routes.js +25 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/service/board/board-mutation.js +133 -0
- package/dist-server/service/board/board-mutation.js.map +1 -0
- package/dist-server/service/board/board-query.js +121 -0
- package/dist-server/service/board/board-query.js.map +1 -0
- package/dist-server/service/board/board-type.js +81 -0
- package/dist-server/service/board/board-type.js.map +1 -0
- package/dist-server/service/board/board.js +128 -0
- package/dist-server/service/board/board.js.map +1 -0
- package/dist-server/service/board/index.js +9 -0
- package/dist-server/service/board/index.js.map +1 -0
- package/dist-server/service/group/group-mutation.js +96 -0
- package/dist-server/service/group/group-mutation.js.map +1 -0
- package/dist-server/service/group/group-query.js +100 -0
- package/dist-server/service/group/group-query.js.map +1 -0
- package/dist-server/service/group/group-type.js +57 -0
- package/dist-server/service/group/group-type.js.map +1 -0
- package/dist-server/service/group/group.js +90 -0
- package/dist-server/service/group/group.js.map +1 -0
- package/dist-server/service/group/index.js +9 -0
- package/dist-server/service/group/index.js.map +1 -0
- package/dist-server/service/index.js +40 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/play-group/index.js +9 -0
- package/dist-server/service/play-group/index.js.map +1 -0
- package/dist-server/service/play-group/play-group-mutation.js +119 -0
- package/dist-server/service/play-group/play-group-mutation.js.map +1 -0
- package/dist-server/service/play-group/play-group-query.js +99 -0
- package/dist-server/service/play-group/play-group-query.js.map +1 -0
- package/dist-server/service/play-group/play-group-type.js +57 -0
- package/dist-server/service/play-group/play-group-type.js.map +1 -0
- package/dist-server/service/play-group/play-group.js +91 -0
- package/dist-server/service/play-group/play-group.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.thumbnail = void 0;
|
|
4
|
+
const screenshot_1 = require("./screenshot");
|
|
5
|
+
const thumbnail = async ({ id = '', model = null, data = null, options = { encoding: 'base64', type: 'png' }, context = {} } = {}) => {
|
|
6
|
+
return await (0, screenshot_1.screenshot)({
|
|
7
|
+
id,
|
|
8
|
+
model,
|
|
9
|
+
data,
|
|
10
|
+
options,
|
|
11
|
+
isThumbnail: true,
|
|
12
|
+
context
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
exports.thumbnail = thumbnail;
|
|
16
|
+
//# sourceMappingURL=thumbnail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thumbnail.js","sourceRoot":"","sources":["../../server/controllers/thumbnail.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAElC,MAAM,SAAS,GAAG,KAAK,EAAE,EAC9B,EAAE,GAAG,EAAE,EACP,KAAK,GAAG,IAAI,EACZ,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAS,EACpD,OAAO,GAAG,EAAE,KACV,EAAE,EAAE,EAAE;IACR,OAAO,MAAM,IAAA,uBAAU,EAAC;QACtB,EAAE;QACF,KAAK;QACL,IAAI;QACJ,OAAO;QACP,WAAW,EAAE,IAAI;QACjB,OAAO;KACR,CAAC,CAAA;AACJ,CAAC,CAAA;AAfY,QAAA,SAAS,aAerB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./service"), exports);
|
|
18
|
+
__exportStar(require("./migrations"), exports);
|
|
19
|
+
__exportStar(require("./controllers"), exports);
|
|
20
|
+
require("./routes");
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,+CAA4B;AAC5B,gDAA6B;AAE7B,oBAAiB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SeedGroup1556862253000 = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const shell_1 = require("@things-factory/shell");
|
|
6
|
+
const group_1 = require("../service/group/group");
|
|
7
|
+
const SEED_GROUP = [
|
|
8
|
+
{
|
|
9
|
+
name: 'DASHBOARD',
|
|
10
|
+
description: 'Dashboard'
|
|
11
|
+
}
|
|
12
|
+
];
|
|
13
|
+
class SeedGroup1556862253000 {
|
|
14
|
+
async up(queryRunner) {
|
|
15
|
+
const repository = (0, typeorm_1.getRepository)(group_1.Group);
|
|
16
|
+
const domainRepository = (0, typeorm_1.getRepository)(shell_1.Domain);
|
|
17
|
+
const domain = await domainRepository.findOne({ name: 'SYSTEM' });
|
|
18
|
+
try {
|
|
19
|
+
return await Promise.all(SEED_GROUP.map(async (group) => {
|
|
20
|
+
await repository.save(Object.assign(Object.assign({}, group), { domain }));
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
console.error(e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async down(queryRunner) {
|
|
28
|
+
const repository = (0, typeorm_1.getRepository)(group_1.Group);
|
|
29
|
+
const domainRepository = (0, typeorm_1.getRepository)(shell_1.Domain);
|
|
30
|
+
const domain = await domainRepository.findOne({ name: 'SYSTEM' });
|
|
31
|
+
SEED_GROUP.reverse().forEach(async (group) => {
|
|
32
|
+
let record = await repository.findOne({
|
|
33
|
+
where: {
|
|
34
|
+
domain,
|
|
35
|
+
name: group.name
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
await repository.remove(record);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.SeedGroup1556862253000 = SeedGroup1556862253000;
|
|
43
|
+
//# sourceMappingURL=1556862253000-SeedGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1556862253000-SeedGroup.js","sourceRoot":"","sources":["../../server/migrations/1556862253000-SeedGroup.ts"],"names":[],"mappings":";;;AACA,qCAAuC;AACvC,iDAA8C;AAC9C,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,uBAAa,EAAC,aAAK,CAAC,CAAA;QACvC,MAAM,gBAAgB,GAAG,IAAA,uBAAa,EAAC,cAAM,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEjE,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,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SACjB;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,aAAK,CAAC,CAAA;QACvC,MAAM,gBAAgB,GAAG,IAAA,uBAAa,EAAC,cAAM,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEjE,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;oBACN,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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.migrations = void 0;
|
|
4
|
+
const glob = require('glob');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
exports.migrations = [];
|
|
7
|
+
glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function (file) {
|
|
8
|
+
if (file.indexOf('index.js') !== -1)
|
|
9
|
+
return;
|
|
10
|
+
exports.migrations = exports.migrations.concat(Object.values(require(path.resolve(file))) || []);
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/migrations/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB,QAAA,UAAU,GAAG,EAAE,CAAA;AAE1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;IACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAE,OAAM;IAC3C,kBAAU,GAAG,kBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.boardPrintRouter = void 0;
|
|
7
|
+
const koa_router_1 = __importDefault(require("koa-router"));
|
|
8
|
+
const label_command_1 = require("../controllers/label-command");
|
|
9
|
+
const print_1 = require("../controllers/print");
|
|
10
|
+
exports.boardPrintRouter = new koa_router_1.default();
|
|
11
|
+
/**
|
|
12
|
+
* ?printerId=printer_id&data=grf_string
|
|
13
|
+
*/
|
|
14
|
+
exports.boardPrintRouter.get('/print', async (context, next) => {
|
|
15
|
+
const { domain } = context.state;
|
|
16
|
+
let data = Object.keys(context.query).length ? context.query : null;
|
|
17
|
+
context.body = await (0, print_1.printDirect)(data.printerId, data.data);
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* { printerId: 'printer driver ID', data: 'grf string' }
|
|
21
|
+
*/
|
|
22
|
+
exports.boardPrintRouter.post('/print', async (context, next) => {
|
|
23
|
+
const { domain } = context.state;
|
|
24
|
+
let params = context.request.body;
|
|
25
|
+
context.type = 'text/plain';
|
|
26
|
+
context.body = await (0, print_1.printDirect)(params.printerId, params.data);
|
|
27
|
+
});
|
|
28
|
+
exports.boardPrintRouter.get('/print-label/:id', async (context, next) => {
|
|
29
|
+
const { domain } = context.state;
|
|
30
|
+
const { id } = context.params;
|
|
31
|
+
let data = Object.keys(context.query).length ? context.query : null;
|
|
32
|
+
let orientation = data && data.orientation;
|
|
33
|
+
let mirror = data && data.mirror;
|
|
34
|
+
let upsideDown = data && data.upsideDown;
|
|
35
|
+
let grf = await (0, label_command_1.labelcommand)({ id, data, orientation, mirror, upsideDown, context });
|
|
36
|
+
context.type = 'text/plain';
|
|
37
|
+
// TODO: 동기화
|
|
38
|
+
context.body = (0, print_1.printDirect)(data.printerId, grf);
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=board-print-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-print-router.js","sourceRoot":"","sources":["../../server/routers/board-print-router.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAE/B,gEAA2D;AAC3D,gDAAkD;AAErC,QAAA,gBAAgB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAE5C;;GAEG;AACH,wBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACrD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAChC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IAEnE,OAAO,CAAC,IAAI,GAAG,MAAM,IAAA,mBAAW,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC,CAAC,CAAA;AAEF;;GAEG;AACH,wBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAChC,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAEjC,OAAO,CAAC,IAAI,GAAG,YAAY,CAAA;IAC3B,OAAO,CAAC,IAAI,GAAG,MAAM,IAAA,mBAAW,EAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;AACjE,CAAC,CAAC,CAAA;AAEF,wBAAgB,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAChC,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IAEnE,IAAI,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAA;IAC1C,IAAI,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,CAAA;IAChC,IAAI,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,CAAA;IACxC,IAAI,GAAG,GAAG,MAAM,IAAA,4BAAY,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAS,CAAC,CAAA;IAE3F,OAAO,CAAC,IAAI,GAAG,YAAY,CAAA;IAC3B,YAAY;IACZ,OAAO,CAAC,IAAI,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.internalBoardViewRouter = void 0;
|
|
7
|
+
const koa_router_1 = __importDefault(require("koa-router"));
|
|
8
|
+
exports.internalBoardViewRouter = new koa_router_1.default();
|
|
9
|
+
// should be used only for building label command by headless chrome internally
|
|
10
|
+
exports.internalBoardViewRouter.post('/internal-label-command-view', async (context, next) => {
|
|
11
|
+
let model = context.request.body;
|
|
12
|
+
await context.render('internal-label-command-view', { model });
|
|
13
|
+
});
|
|
14
|
+
// should be used only for building board service by headless chrome internally
|
|
15
|
+
exports.internalBoardViewRouter.post('/internal-board-service-view', async (context, next) => {
|
|
16
|
+
let { model, base } = context.request.body;
|
|
17
|
+
await context.render('internal-board-service-view', { model, base });
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=internal-board-view-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-board-view-router.js","sourceRoot":"","sources":["../../server/routers/internal-board-view-router.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAElB,QAAA,uBAAuB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAEnD,+EAA+E;AAC/E,+BAAuB,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACnF,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAChC,MAAM,OAAO,CAAC,MAAM,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;AAChE,CAAC,CAAC,CAAA;AAEF,+EAA+E;AAC/E,+BAAuB,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACnF,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAC1C,MAAM,OAAO,CAAC,MAAM,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AACtE,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.standaloneBoardServiceRouter = void 0;
|
|
7
|
+
const content_disposition_1 = __importDefault(require("content-disposition"));
|
|
8
|
+
const koa_router_1 = __importDefault(require("koa-router"));
|
|
9
|
+
const typeorm_1 = require("typeorm");
|
|
10
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
|
11
|
+
const fonts_1 = require("../controllers/fonts");
|
|
12
|
+
const headless_model_1 = require("../controllers/headless-model");
|
|
13
|
+
const label_command_1 = require("../controllers/label-command");
|
|
14
|
+
const pdf_1 = require("../controllers/pdf");
|
|
15
|
+
const screenshot_1 = require("../controllers/screenshot");
|
|
16
|
+
const board_1 = require("../service/board/board");
|
|
17
|
+
exports.standaloneBoardServiceRouter = new koa_router_1.default();
|
|
18
|
+
// for board headless
|
|
19
|
+
exports.standaloneBoardServiceRouter.get('/headless-full/:id', async (context, next) => {
|
|
20
|
+
const { domain, user } = context.state;
|
|
21
|
+
const { id } = context.params;
|
|
22
|
+
const { model, base } = await (0, headless_model_1.headlessModel)({ domain, id });
|
|
23
|
+
model.fonts = await (0, fonts_1.fonts)();
|
|
24
|
+
(0, auth_base_1.setAccessTokenCookie)(context, await user.sign({ domain }));
|
|
25
|
+
await context.render('internal-board-full-feature-view', { model, base });
|
|
26
|
+
});
|
|
27
|
+
// for board headless
|
|
28
|
+
exports.standaloneBoardServiceRouter.get('/headless/:id', async (context, next) => {
|
|
29
|
+
const { domain, user } = context.state;
|
|
30
|
+
const { id } = context.params;
|
|
31
|
+
const { model, base } = await (0, headless_model_1.headlessModel)({ domain, id });
|
|
32
|
+
model.fonts = await (0, fonts_1.fonts)();
|
|
33
|
+
(0, auth_base_1.setAccessTokenCookie)(context, await user.sign({ domain }));
|
|
34
|
+
await context.render('internal-board-service-view', { model, base });
|
|
35
|
+
});
|
|
36
|
+
// for board thumbnail
|
|
37
|
+
exports.standaloneBoardServiceRouter.get('/thumbnail/:id', async (context, next) => {
|
|
38
|
+
const { domain } = context.state;
|
|
39
|
+
const { id } = context.params;
|
|
40
|
+
const { name, thumbnail } = await (0, typeorm_1.getRepository)(board_1.Board).findOne({ domain, id });
|
|
41
|
+
if (thumbnail) {
|
|
42
|
+
const index = thumbnail.indexOf(';base64,');
|
|
43
|
+
const base64 = thumbnail.substring(index + 8);
|
|
44
|
+
const buffer = Buffer.from(base64, 'base64');
|
|
45
|
+
context.type = 'image/png';
|
|
46
|
+
context.set('Content-Disposition', (0, content_disposition_1.default)(`thumbnail-${name}.png`));
|
|
47
|
+
context.body = buffer;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
context.throw(404, 'thumbnail not found');
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
// for webpage scrap
|
|
54
|
+
exports.standaloneBoardServiceRouter.get('/screenshot/:id', async (context, next) => {
|
|
55
|
+
const { domain } = context.state;
|
|
56
|
+
const { id } = context.params;
|
|
57
|
+
const { model, board } = await (0, headless_model_1.headlessModel)({ domain, id });
|
|
58
|
+
const data = Object.keys(context.query).length ? context.query : null;
|
|
59
|
+
context.type = 'image/png';
|
|
60
|
+
context.set('Content-Disposition', (0, content_disposition_1.default)(`${board.name}.png`));
|
|
61
|
+
context.body = await (0, screenshot_1.screenshot)({ id, model, data, options: { encoding: 'binary', type: 'png' }, context });
|
|
62
|
+
});
|
|
63
|
+
// for webpage scrap
|
|
64
|
+
exports.standaloneBoardServiceRouter.get('/board/pdf/:id', async (context, next) => {
|
|
65
|
+
const { domain } = context.state;
|
|
66
|
+
const { id } = context.params;
|
|
67
|
+
const { model, board } = await (0, headless_model_1.headlessModel)({ domain, id });
|
|
68
|
+
const data = Object.keys(context.query).length ? context.query : null;
|
|
69
|
+
const result = await (0, pdf_1.pdf)({
|
|
70
|
+
id,
|
|
71
|
+
model,
|
|
72
|
+
data,
|
|
73
|
+
options: {
|
|
74
|
+
format: 'A4'
|
|
75
|
+
},
|
|
76
|
+
context
|
|
77
|
+
});
|
|
78
|
+
context.type = 'application/pdf';
|
|
79
|
+
context.set('Content-Disposition', (0, content_disposition_1.default)(`${board.name}.pdf`));
|
|
80
|
+
context.body = result;
|
|
81
|
+
});
|
|
82
|
+
// for webpage scrap => zpl image print(grf format) command
|
|
83
|
+
exports.standaloneBoardServiceRouter.get('/label-command/:id', async (context, next) => {
|
|
84
|
+
const { id } = context.params;
|
|
85
|
+
const data = Object.keys(context.query).length ? context.query : null;
|
|
86
|
+
const orientation = data && data.orientation;
|
|
87
|
+
const mirror = data && data.mirror;
|
|
88
|
+
const upsideDown = data && data.upsideDown;
|
|
89
|
+
context.type = 'text/plain';
|
|
90
|
+
context.body = await (0, label_command_1.labelcommand)({ id, data, orientation, mirror, upsideDown, context });
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=standalone-board-service-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standalone-board-service-router.js","sourceRoot":"","sources":["../../server/routers/standalone-board-service-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const board_print_router_1 = require("./routers/board-print-router");
|
|
4
|
+
const env_1 = require("@things-factory/env");
|
|
5
|
+
const headless_pool_for_board_1 = require("./controllers/headless-pool-for-board");
|
|
6
|
+
const headless_pool_for_label_1 = require("./controllers/headless-pool-for-label");
|
|
7
|
+
const internal_board_view_router_1 = require("./routers/internal-board-view-router");
|
|
8
|
+
const standalone_board_service_router_1 = require("./routers/standalone-board-service-router");
|
|
9
|
+
const isPathBaseDomain = !env_1.config.get('subdomain') && !env_1.config.get('useVirtualHostBasedDomain');
|
|
10
|
+
process.on('bootstrap-module-global-public-route', (app, domainGlobalPublicRouter) => {
|
|
11
|
+
(0, headless_pool_for_label_1.getHeadlessPool)();
|
|
12
|
+
(0, headless_pool_for_board_1.getHeadlessPool)();
|
|
13
|
+
domainGlobalPublicRouter.use('', internal_board_view_router_1.internalBoardViewRouter.routes(), internal_board_view_router_1.internalBoardViewRouter.allowedMethods());
|
|
14
|
+
});
|
|
15
|
+
process.on('bootstrap-module-domain-private-route', (app, domainPrivateRouter) => {
|
|
16
|
+
if (isPathBaseDomain) {
|
|
17
|
+
domainPrivateRouter.use('/domain/:domain', board_print_router_1.boardPrintRouter.routes(), board_print_router_1.boardPrintRouter.allowedMethods());
|
|
18
|
+
domainPrivateRouter.use('/domain/:domain', standalone_board_service_router_1.standaloneBoardServiceRouter.routes(), standalone_board_service_router_1.standaloneBoardServiceRouter.allowedMethods());
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
domainPrivateRouter.use('', board_print_router_1.boardPrintRouter.routes(), board_print_router_1.boardPrintRouter.allowedMethods());
|
|
22
|
+
domainPrivateRouter.use('', standalone_board_service_router_1.standaloneBoardServiceRouter.routes(), standalone_board_service_router_1.standaloneBoardServiceRouter.allowedMethods());
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;AAAA,qEAA+D;AAC/D,6CAA4C;AAC5C,mFAAkG;AAClG,mFAAkG;AAClG,qFAA8E;AAC9E,+FAAwF;AAExF,MAAM,gBAAgB,GAAG,CAAC,YAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,YAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;AAE7F,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,wBAAwB,EAAE,EAAE;IAC1F,IAAA,yCAAuB,GAAE,CAAA;IACzB,IAAA,yCAAuB,GAAE,CAAA;IACzB,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,oDAAuB,CAAC,MAAM,EAAE,EAAE,oDAAuB,CAAC,cAAc,EAAE,CAAC,CAAA;AAC9G,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF,IAAI,gBAAgB,EAAE;QACpB,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,EAAE,qCAAgB,CAAC,MAAM,EAAE,EAAE,qCAAgB,CAAC,cAAc,EAAE,CAAC,CAAA;QACxG,mBAAmB,CAAC,GAAG,CACrB,iBAAiB,EACjB,8DAA4B,CAAC,MAAM,EAAE,EACrC,8DAA4B,CAAC,cAAc,EAAE,CAC9C,CAAA;KACF;SAAM;QACL,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,qCAAgB,CAAC,MAAM,EAAE,EAAE,qCAAgB,CAAC,cAAc,EAAE,CAAC,CAAA;QACzF,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,8DAA4B,CAAC,MAAM,EAAE,EAAE,8DAA4B,CAAC,cAAc,EAAE,CAAC,CAAA;KAClH;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.BoardMutation = void 0;
|
|
16
|
+
const type_graphql_1 = require("type-graphql");
|
|
17
|
+
const typeorm_1 = require("typeorm");
|
|
18
|
+
const shell_1 = require("@things-factory/shell");
|
|
19
|
+
const thumbnail_1 = require("../../controllers/thumbnail");
|
|
20
|
+
const group_1 = require("../group/group");
|
|
21
|
+
const board_1 = require("./board");
|
|
22
|
+
const board_type_1 = require("./board-type");
|
|
23
|
+
let BoardMutation = class BoardMutation {
|
|
24
|
+
async createBoard(board, context) {
|
|
25
|
+
const { domain, user, notify } = context.state;
|
|
26
|
+
const repository = (0, typeorm_1.getRepository)(board_1.Board);
|
|
27
|
+
const groupRepository = (0, typeorm_1.getRepository)(group_1.Group);
|
|
28
|
+
const newBoard = Object.assign({}, board);
|
|
29
|
+
if (board.groupId) {
|
|
30
|
+
newBoard.group = await groupRepository.findOne({
|
|
31
|
+
id: board.groupId
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const base64 = await (0, thumbnail_1.thumbnail)({
|
|
35
|
+
model: board.model,
|
|
36
|
+
context
|
|
37
|
+
});
|
|
38
|
+
if (base64) {
|
|
39
|
+
newBoard.thumbnail = 'data:image/png;base64,' + base64.toString('base64');
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
newBoard.thumbnail = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
|
43
|
+
}
|
|
44
|
+
const created = await repository.save(Object.assign(Object.assign({ domain }, newBoard), { creator: user, updater: user }));
|
|
45
|
+
notify &&
|
|
46
|
+
notify({
|
|
47
|
+
mode: 'in-app',
|
|
48
|
+
title: `Board '${created.name}' created`,
|
|
49
|
+
body: `Board '${created.name}' created by ${user.name}\n${created.description}`,
|
|
50
|
+
url: (0, shell_1.getRedirectSubdomainPath)(context, domain.subdomain, `/board-viewer/${created.id}`)
|
|
51
|
+
});
|
|
52
|
+
return created;
|
|
53
|
+
}
|
|
54
|
+
async updateBoard(id, patch, context) {
|
|
55
|
+
const { domain, user, notify } = context.state;
|
|
56
|
+
const repository = (0, typeorm_1.getRepository)(board_1.Board);
|
|
57
|
+
const board = await repository.findOne({ domain, id });
|
|
58
|
+
if (patch.model) {
|
|
59
|
+
const base64 = await (0, thumbnail_1.thumbnail)({
|
|
60
|
+
model: patch.model,
|
|
61
|
+
context
|
|
62
|
+
});
|
|
63
|
+
if (base64) {
|
|
64
|
+
patch.thumbnail = 'data:image/png;base64,' + base64.toString('base64');
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
patch.thumbnail = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (patch.groupId !== undefined) {
|
|
71
|
+
const groupRepository = (0, typeorm_1.getRepository)(group_1.Group);
|
|
72
|
+
board.group =
|
|
73
|
+
(await groupRepository.findOne({
|
|
74
|
+
domain,
|
|
75
|
+
id: patch.groupId
|
|
76
|
+
})) || null;
|
|
77
|
+
delete patch.groupId;
|
|
78
|
+
}
|
|
79
|
+
const updated = await repository.save(Object.assign(Object.assign(Object.assign({}, board), patch), { updater: user }));
|
|
80
|
+
notify &&
|
|
81
|
+
notify({
|
|
82
|
+
mode: 'in-app',
|
|
83
|
+
title: `Board '${updated.name}' updated`,
|
|
84
|
+
body: `Board '${updated.name}' updated by ${user.name}\n${updated.description}`,
|
|
85
|
+
image: (0, shell_1.getRedirectSubdomainPath)(context, domain.subdomain, `/thumbnail/${updated.id}`),
|
|
86
|
+
url: (0, shell_1.getRedirectSubdomainPath)(context, domain.subdomain, `/board-viewer/${updated.id}`)
|
|
87
|
+
});
|
|
88
|
+
return updated;
|
|
89
|
+
}
|
|
90
|
+
async deleteBoard(id, context) {
|
|
91
|
+
const { domain, user, notify } = context.state;
|
|
92
|
+
const repository = (0, typeorm_1.getRepository)(board_1.Board);
|
|
93
|
+
const board = await repository.findOne({ domain, id });
|
|
94
|
+
const deleted = await repository.delete(id);
|
|
95
|
+
notify &&
|
|
96
|
+
notify({
|
|
97
|
+
mode: 'in-app',
|
|
98
|
+
title: `Board '${board.name}' deleted`,
|
|
99
|
+
body: `Board '${board.name}' deleted by ${user.name}\n${board.description}`
|
|
100
|
+
});
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
__decorate([
|
|
105
|
+
(0, type_graphql_1.Mutation)(returns => board_1.Board, { description: 'To create new Board' }),
|
|
106
|
+
__param(0, (0, type_graphql_1.Arg)('board')),
|
|
107
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
108
|
+
__metadata("design:type", Function),
|
|
109
|
+
__metadata("design:paramtypes", [board_type_1.NewBoard, Object]),
|
|
110
|
+
__metadata("design:returntype", Promise)
|
|
111
|
+
], BoardMutation.prototype, "createBoard", null);
|
|
112
|
+
__decorate([
|
|
113
|
+
(0, type_graphql_1.Mutation)(returns => board_1.Board, { description: 'To modify Board information' }),
|
|
114
|
+
__param(0, (0, type_graphql_1.Arg)('id')),
|
|
115
|
+
__param(1, (0, type_graphql_1.Arg)('patch')),
|
|
116
|
+
__param(2, (0, type_graphql_1.Ctx)()),
|
|
117
|
+
__metadata("design:type", Function),
|
|
118
|
+
__metadata("design:paramtypes", [String, board_type_1.BoardPatch, Object]),
|
|
119
|
+
__metadata("design:returntype", Promise)
|
|
120
|
+
], BoardMutation.prototype, "updateBoard", null);
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete Board' }),
|
|
123
|
+
__param(0, (0, type_graphql_1.Arg)('id')),
|
|
124
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
125
|
+
__metadata("design:type", Function),
|
|
126
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
127
|
+
__metadata("design:returntype", Promise)
|
|
128
|
+
], BoardMutation.prototype, "deleteBoard", null);
|
|
129
|
+
BoardMutation = __decorate([
|
|
130
|
+
(0, type_graphql_1.Resolver)(board_1.Board)
|
|
131
|
+
], BoardMutation);
|
|
132
|
+
exports.BoardMutation = BoardMutation;
|
|
133
|
+
//# sourceMappingURL=board-mutation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-mutation.js","sourceRoot":"","sources":["../../../server/service/board/board-mutation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var _a;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.BoardQuery = void 0;
|
|
17
|
+
const type_graphql_1 = require("type-graphql");
|
|
18
|
+
const typeorm_1 = require("typeorm");
|
|
19
|
+
const shell_1 = require("@things-factory/shell");
|
|
20
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
|
21
|
+
const board_1 = require("./board");
|
|
22
|
+
const board_type_1 = require("./board-type");
|
|
23
|
+
const group_1 = require("../group/group");
|
|
24
|
+
const play_group_1 = require("../play-group/play-group");
|
|
25
|
+
let BoardQuery = class BoardQuery {
|
|
26
|
+
async board(id, context) {
|
|
27
|
+
const { domain } = context.state;
|
|
28
|
+
return await (0, typeorm_1.getRepository)(board_1.Board).findOne({
|
|
29
|
+
where: { domain, id }
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async boards(params, context) {
|
|
33
|
+
const queryBuilder = (0, typeorm_1.getRepository)(board_1.Board).createQueryBuilder();
|
|
34
|
+
(0, shell_1.buildQuery)(queryBuilder, params, context);
|
|
35
|
+
const [items, total] = await queryBuilder.getManyAndCount();
|
|
36
|
+
return { items, total };
|
|
37
|
+
}
|
|
38
|
+
async group(board) {
|
|
39
|
+
return await (0, typeorm_1.getRepository)(group_1.Group).findOne({
|
|
40
|
+
domain: board.domainId,
|
|
41
|
+
id: board.groupId
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
async playGroups(board) {
|
|
45
|
+
var _a;
|
|
46
|
+
return (_a = (await (0, typeorm_1.getRepository)(board_1.Board).findOne(board.id, {
|
|
47
|
+
relations: ['playGroups']
|
|
48
|
+
}))) === null || _a === void 0 ? void 0 : _a.playGroups;
|
|
49
|
+
}
|
|
50
|
+
async domain(board) {
|
|
51
|
+
return await (0, typeorm_1.getRepository)(shell_1.Domain).findOne({
|
|
52
|
+
id: board.domainId
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
async updater(board) {
|
|
56
|
+
return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne({
|
|
57
|
+
id: board.updaterId
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async creator(board) {
|
|
61
|
+
return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne({
|
|
62
|
+
id: board.creatorId
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
__decorate([
|
|
67
|
+
(0, type_graphql_1.Query)(returns => board_1.Board, { description: 'To fetch a Board' }),
|
|
68
|
+
__param(0, (0, type_graphql_1.Arg)('id')),
|
|
69
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
70
|
+
__metadata("design:type", Function),
|
|
71
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
72
|
+
__metadata("design:returntype", Promise)
|
|
73
|
+
], BoardQuery.prototype, "board", null);
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, type_graphql_1.Query)(returns => board_type_1.BoardList, { description: 'To fetch multiple Boards' }),
|
|
76
|
+
__param(0, (0, type_graphql_1.Args)()),
|
|
77
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
78
|
+
__metadata("design:type", Function),
|
|
79
|
+
__metadata("design:paramtypes", [typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object, Object]),
|
|
80
|
+
__metadata("design:returntype", Promise)
|
|
81
|
+
], BoardQuery.prototype, "boards", null);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, type_graphql_1.FieldResolver)(type => group_1.Group),
|
|
84
|
+
__param(0, (0, type_graphql_1.Root)()),
|
|
85
|
+
__metadata("design:type", Function),
|
|
86
|
+
__metadata("design:paramtypes", [board_1.Board]),
|
|
87
|
+
__metadata("design:returntype", Promise)
|
|
88
|
+
], BoardQuery.prototype, "group", null);
|
|
89
|
+
__decorate([
|
|
90
|
+
(0, type_graphql_1.FieldResolver)(type => [play_group_1.PlayGroup]),
|
|
91
|
+
__param(0, (0, type_graphql_1.Root)()),
|
|
92
|
+
__metadata("design:type", Function),
|
|
93
|
+
__metadata("design:paramtypes", [board_1.Board]),
|
|
94
|
+
__metadata("design:returntype", Promise)
|
|
95
|
+
], BoardQuery.prototype, "playGroups", null);
|
|
96
|
+
__decorate([
|
|
97
|
+
(0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
|
|
98
|
+
__param(0, (0, type_graphql_1.Root)()),
|
|
99
|
+
__metadata("design:type", Function),
|
|
100
|
+
__metadata("design:paramtypes", [board_1.Board]),
|
|
101
|
+
__metadata("design:returntype", Promise)
|
|
102
|
+
], BoardQuery.prototype, "domain", null);
|
|
103
|
+
__decorate([
|
|
104
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
|
105
|
+
__param(0, (0, type_graphql_1.Root)()),
|
|
106
|
+
__metadata("design:type", Function),
|
|
107
|
+
__metadata("design:paramtypes", [board_1.Board]),
|
|
108
|
+
__metadata("design:returntype", Promise)
|
|
109
|
+
], BoardQuery.prototype, "updater", null);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
|
112
|
+
__param(0, (0, type_graphql_1.Root)()),
|
|
113
|
+
__metadata("design:type", Function),
|
|
114
|
+
__metadata("design:paramtypes", [board_1.Board]),
|
|
115
|
+
__metadata("design:returntype", Promise)
|
|
116
|
+
], BoardQuery.prototype, "creator", null);
|
|
117
|
+
BoardQuery = __decorate([
|
|
118
|
+
(0, type_graphql_1.Resolver)(board_1.Board)
|
|
119
|
+
], BoardQuery);
|
|
120
|
+
exports.BoardQuery = BoardQuery;
|
|
121
|
+
//# sourceMappingURL=board-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-query.js","sourceRoot":"","sources":["../../../server/service/board/board-query.ts"],"names":[],"mappings":"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"}
|