@things-factory/board-service 6.0.104 → 6.0.113

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.
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BoardQuery = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const typeorm_1 = require("typeorm");
5
6
  const type_graphql_1 = require("type-graphql");
6
7
  const auth_base_1 = require("@things-factory/auth-base");
7
8
  const shell_1 = require("@things-factory/shell");
@@ -13,7 +14,13 @@ let BoardQuery = class BoardQuery {
13
14
  async board(id, context) {
14
15
  const { domain } = context.state;
15
16
  return await (0, shell_1.getRepository)(board_1.Board).findOne({
16
- where: { domain: { id: domain.id }, id }
17
+ where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, id }
18
+ });
19
+ }
20
+ async boardByName(name, context) {
21
+ const { domain } = context.state;
22
+ return await (0, shell_1.getRepository)(board_1.Board).findOne({
23
+ where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, name }
17
24
  });
18
25
  }
19
26
  async boardsCreatedByMe(params, context) {
@@ -28,14 +35,6 @@ let BoardQuery = class BoardQuery {
28
35
  const [items, total] = await queryBuilder.getManyAndCount();
29
36
  return { items, total };
30
37
  }
31
- async globalBoardByName(name, context) {
32
- const system = await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({
33
- subdomain: 'system'
34
- });
35
- return await (0, shell_1.getRepository)(board_1.Board).findOne({
36
- where: { domain: { id: system.id }, name }
37
- });
38
- }
39
38
  async boards(params, context) {
40
39
  const { domain } = context.state;
41
40
  const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
@@ -89,21 +88,21 @@ tslib_1.__decorate([
89
88
  tslib_1.__metadata("design:returntype", Promise)
90
89
  ], BoardQuery.prototype, "board", null);
91
90
  tslib_1.__decorate([
92
- (0, type_graphql_1.Query)(returns => board_type_1.BoardList, { description: 'To fetch Boards created by me' }),
93
- tslib_1.__param(0, (0, type_graphql_1.Args)()),
91
+ (0, type_graphql_1.Query)(returns => board_1.Board, { nullable: true, description: 'To fetch a Board Model by name' }),
92
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
94
93
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
95
94
  tslib_1.__metadata("design:type", Function),
96
- tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
95
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
97
96
  tslib_1.__metadata("design:returntype", Promise)
98
- ], BoardQuery.prototype, "boardsCreatedByMe", null);
97
+ ], BoardQuery.prototype, "boardByName", null);
99
98
  tslib_1.__decorate([
100
- (0, type_graphql_1.Query)(returns => board_1.Board, { nullable: true, description: 'To fetch a Global Board Model' }),
101
- tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
99
+ (0, type_graphql_1.Query)(returns => board_type_1.BoardList, { description: 'To fetch Boards created by me' }),
100
+ tslib_1.__param(0, (0, type_graphql_1.Args)()),
102
101
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
103
102
  tslib_1.__metadata("design:type", Function),
104
- tslib_1.__metadata("design:paramtypes", [String, Object]),
103
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
105
104
  tslib_1.__metadata("design:returntype", Promise)
106
- ], BoardQuery.prototype, "globalBoardByName", null);
105
+ ], BoardQuery.prototype, "boardsCreatedByMe", null);
107
106
  tslib_1.__decorate([
108
107
  (0, type_graphql_1.Query)(returns => board_type_1.BoardList, { description: 'To fetch multiple Boards' }),
109
108
  (0, type_graphql_1.Directive)('@privilege(category: "board", privilege: "query", domainOwnerGranted: true)'),
@@ -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 { 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'\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 @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\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 Boards created by me' })\n async boardsCreatedByMe(@Args() params: ListParam, @Ctx() context: ResolverContext): 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 => Board!, { nullable: true, description: 'To fetch a Global Board Model' })\n async globalBoardByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Board> {\n const system = await getRepository(Domain).findOneBy({\n subdomain: 'system'\n })\n\n return await getRepository(Board).findOne({\n where: { domain: { id: system.id }, name }\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() 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'\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 @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\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: In([domain.id, domain.parentId].filter(Boolean)) }, id }\n })\n }\n\n @Query(returns => Board, { nullable: true, description: 'To fetch a Board Model by name' })\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(@Args() params: ListParam, @Ctx() context: ResolverContext): 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 => BoardList, { description: 'To fetch multiple Boards' })\n @Directive('@privilege(category: \"board\", privilege: \"query\", domainOwnerGranted: true)')\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 (\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"]}