@things-factory/lite-menu 8.0.0-beta.5 → 8.0.0-beta.7

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.
@@ -39,19 +39,22 @@ let LiteMenuQuery = class LiteMenuQuery {
39
39
  const roles = me.roles
40
40
  .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))
41
41
  .map(role => role.id);
42
- const [items, total] = await (0, shell_1.getQueryBuilderFromListParams)({
42
+ const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
43
43
  repository: (0, shell_1.getRepository)(lite_menu_1.LiteMenu),
44
44
  params,
45
45
  domain,
46
46
  alias: 'menu',
47
47
  searchables: ['name', 'description']
48
- })
49
- .andWhere('menu.active = :active', { active: true })
50
- .andWhere(new typeorm_1.Brackets(qb => {
51
- qb.where('menu.role IN (:...roles)').orWhere('menu.role is null');
52
- }))
53
- .setParameter('roles', roles)
54
- .getManyAndCount();
48
+ }).andWhere('menu.active = :active', { active: true });
49
+ if (roles.length > 0) {
50
+ queryBuilder.andWhere(new typeorm_1.Brackets(qb => {
51
+ qb.where('menu.role IN (:...roles)', { roles }).orWhere('menu.role is null');
52
+ }));
53
+ }
54
+ else {
55
+ queryBuilder.andWhere('menu.role is null');
56
+ }
57
+ const [items, total] = await queryBuilder.getManyAndCount();
55
58
  return { items, total };
56
59
  }
57
60
  async label(liteMenu, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"lite-menu-query.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu-query.ts"],"names":[],"mappings":";;;;AAAA,qCAAsC;AACtC,+CAAmF;AAEnF,iDAAuG;AACvG,yDAAsD;AACtD,iEAAqD;AAErD,2CAAsC;AACtC,qDAA+C;AAGxC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAElB,AAAN,KAAK,CAAC,QAAQ,CAAY,EAAU,EAAS,OAAwB;QACnE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,oBAAQ,CAAC,CAAA;QAE1C,IAAI,QAAQ,GAAQ,UAAU,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YAC/E,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACjB,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAA0B,MAAiB,EAAS,OAAwB;QACzF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,UAAU,EAAE,IAAA,qBAAa,EAAC,oBAAQ,CAAC;YACnC,MAAM;YACN,MAAM;YACN,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAEzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CACU,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,MAAM,EAAE,GAAG,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;YAC3C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACtB,SAAS,EAAE,CAAC,OAAO,CAAC;SACrB,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK;aACnB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;aACrG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEvB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qCAA6B,EAAC;YACzD,UAAU,EAAE,IAAA,qBAAa,EAAC,oBAAQ,CAAC;YACnC,MAAM;YACN,MAAM;YACN,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC;aACC,QAAQ,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aACnD,QAAQ,CACP,IAAI,kBAAQ,CAAC,EAAE,CAAC,EAAE;YAChB,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QACnE,CAAC,CAAC,CACH;aACA,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;aAC5B,eAAe,EAAE,CAAA;QAEpB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK,CAAS,QAAkB,EAAS,OAAwB;QACrE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAA;QAEjC,OAAO,CAAC,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;IAC/C,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK,CAAS,QAAkB;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC3F,OAAO,MAAM,IAAA,qBAAa,EAAC,qBAAK,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAS,QAAkB;QACnC,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC1F,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,QAAkB;QACrC,OAAO,QAAQ,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAChG,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,QAAkB;QACtC,OAAO,QAAQ,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAChG,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,QAAkB;QACtC,OAAO,QAAQ,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAChG,CAAC;CACF,CAAA;AAlGY,sCAAa;AAElB;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,oBAAQ,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACnD,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;6CAU3C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,6BAAY,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IAC9D,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;8CAYzD;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,6BAAY,EAAE,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAE1E,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;gDA+B3C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;IACjB,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAsB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAhB,oBAAQ;;0CAKrC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,qBAAK,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAW,oBAAQ;;0CAIrC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAW,oBAAQ;;yCAEpC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAW,oBAAQ;;2CAEtC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAW,oBAAQ;;4CAEvC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAW,oBAAQ;;4CAEvC;wBAjGU,aAAa;IADzB,IAAA,uBAAQ,EAAC,oBAAQ,CAAC;GACN,aAAa,CAkGzB","sourcesContent":["import { In, Brackets } from 'typeorm'\nimport { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User, Role } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\n\nimport { LiteMenu } from './lite-menu'\nimport { LiteMenuList } from './lite-menu-type'\n\n@Resolver(LiteMenu)\nexport class LiteMenuQuery {\n @Query(returns => LiteMenu, { description: 'To fetch a LiteMenu' })\n async liteMenu(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<LiteMenu> {\n const { domain } = context.state\n const repository = getRepository(LiteMenu)\n\n var liteMenu: any = repository.findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id },\n relations: ['domain', 'creator', 'updater']\n })\n\n return liteMenu\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch multiple LiteMenus' })\n async liteMenus(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<LiteMenuList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n searchables: ['name', 'description']\n })\n var [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch my own LiteMenus' })\n async myLiteMenus(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<LiteMenuList> {\n const { domain, user } = context.state\n\n const me = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = me.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n alias: 'menu',\n searchables: ['name', 'description']\n })\n .andWhere('menu.active = :active', { active: true })\n .andWhere(\n new Brackets(qb => {\n qb.where('menu.role IN (:...roles)').orWhere('menu.role is null')\n })\n )\n .setParameter('roles', roles)\n .getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => String)\n async label(@Root() liteMenu: LiteMenu, @Ctx() context: ResolverContext): Promise<String> {\n const { lng } = context.state\n const { labels, name } = liteMenu\n\n return (lng && labels && labels[lng]) || name\n }\n\n @FieldResolver(type => Board)\n async board(@Root() liteMenu: LiteMenu) {\n if ((liteMenu.type === 'board' || liteMenu.type === 'interactive-board') && liteMenu.value) {\n return await getRepository(Board).findOneBy({ id: liteMenu.value })\n }\n }\n\n @FieldResolver(type => Role)\n async role(@Root() liteMenu: LiteMenu) {\n return liteMenu.roleId && (await getRepository(Role).findOneBy({ id: liteMenu.roleId }))\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() liteMenu: LiteMenu) {\n return liteMenu.domainId && (await getRepository(Domain).findOneBy({ id: liteMenu.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() liteMenu: LiteMenu): Promise<User> {\n return liteMenu.updaterId && (await getRepository(User).findOneBy({ id: liteMenu.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() liteMenu: LiteMenu): Promise<User> {\n return liteMenu.creatorId && (await getRepository(User).findOneBy({ id: liteMenu.creatorId }))\n }\n}\n"]}
1
+ {"version":3,"file":"lite-menu-query.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In, Brackets } from 'typeorm'\nimport { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User, Role } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\n\nimport { LiteMenu } from './lite-menu'\nimport { LiteMenuList } from './lite-menu-type'\n\n@Resolver(LiteMenu)\nexport class LiteMenuQuery {\n @Query(returns => LiteMenu, { description: 'To fetch a LiteMenu' })\n async liteMenu(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<LiteMenu> {\n const { domain } = context.state\n const repository = getRepository(LiteMenu)\n\n var liteMenu: any = repository.findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id },\n relations: ['domain', 'creator', 'updater']\n })\n\n return liteMenu\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch multiple LiteMenus' })\n async liteMenus(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<LiteMenuList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n searchables: ['name', 'description']\n })\n var [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch my own LiteMenus' })\n async myLiteMenus(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<LiteMenuList> {\n const { domain, user } = context.state\n\n const me = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = me.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n alias: 'menu',\n searchables: ['name', 'description']\n }).andWhere('menu.active = :active', { active: true })\n\n if (roles.length > 0) {\n queryBuilder.andWhere(\n new Brackets(qb => {\n qb.where('menu.role IN (:...roles)', { roles }).orWhere('menu.role is null')\n })\n )\n } else {\n queryBuilder.andWhere('menu.role is null')\n }\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => String)\n async label(@Root() liteMenu: LiteMenu, @Ctx() context: ResolverContext): Promise<String> {\n const { lng } = context.state\n const { labels, name } = liteMenu\n\n return (lng && labels && labels[lng]) || name\n }\n\n @FieldResolver(type => Board)\n async board(@Root() liteMenu: LiteMenu) {\n if ((liteMenu.type === 'board' || liteMenu.type === 'interactive-board') && liteMenu.value) {\n return await getRepository(Board).findOneBy({ id: liteMenu.value })\n }\n }\n\n @FieldResolver(type => Role)\n async role(@Root() liteMenu: LiteMenu) {\n return liteMenu.roleId && (await getRepository(Role).findOneBy({ id: liteMenu.roleId }))\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() liteMenu: LiteMenu) {\n return liteMenu.domainId && (await getRepository(Domain).findOneBy({ id: liteMenu.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() liteMenu: LiteMenu): Promise<User> {\n return liteMenu.updaterId && (await getRepository(User).findOneBy({ id: liteMenu.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() liteMenu: LiteMenu): Promise<User> {\n return liteMenu.creatorId && (await getRepository(User).findOneBy({ id: liteMenu.creatorId }))\n }\n}\n"]}