@things-factory/biz-base 10.1.181 → 10.1.183

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.
@@ -44,6 +44,7 @@ let BizOptionMutation = class BizOptionMutation {
44
44
  };
45
45
  exports.BizOptionMutation = BizOptionMutation;
46
46
  tslib_1.__decorate([
47
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "mutation", domainOwnerGranted: true)'),
47
48
  (0, type_graphql_1.Mutation)(returns => biz_option_1.BizOption),
48
49
  tslib_1.__param(0, (0, type_graphql_1.Arg)('bizOption')),
49
50
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -52,6 +53,7 @@ tslib_1.__decorate([
52
53
  tslib_1.__metadata("design:returntype", Promise)
53
54
  ], BizOptionMutation.prototype, "createBizOption", null);
54
55
  tslib_1.__decorate([
56
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "mutation", domainOwnerGranted: true)'),
55
57
  (0, type_graphql_1.Mutation)(returns => biz_option_1.BizOption),
56
58
  tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
57
59
  tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
@@ -61,6 +63,7 @@ tslib_1.__decorate([
61
63
  tslib_1.__metadata("design:returntype", Promise)
62
64
  ], BizOptionMutation.prototype, "updateBizOption", null);
63
65
  tslib_1.__decorate([
66
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "mutation", domainOwnerGranted: true)'),
64
67
  (0, type_graphql_1.Mutation)(returns => Boolean),
65
68
  tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
66
69
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -69,6 +72,7 @@ tslib_1.__decorate([
69
72
  tslib_1.__metadata("design:returntype", Promise)
70
73
  ], BizOptionMutation.prototype, "deleteBizOption", null);
71
74
  tslib_1.__decorate([
75
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "mutation", domainOwnerGranted: true)'),
72
76
  (0, type_graphql_1.Mutation)(returns => Boolean),
73
77
  tslib_1.__param(0, (0, type_graphql_1.Arg)('names', type => [String])),
74
78
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -1 +1 @@
1
- {"version":3,"file":"biz-option-mutation.js","sourceRoot":"","sources":["../../../server/service/biz-option/biz-option-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { BizOption } from './biz-option'\nimport { BizOptionPatch, NewBizOption } from './biz-option-types'\n\n@Resolver(BizOption)\nexport class BizOptionMutation {\n @Mutation(returns => BizOption)\n async createBizOption(\n @Arg('bizOption') bizOption: NewBizOption,\n @Ctx() context: ResolverContext\n ): Promise<BizOption> {\n const { domain, user } = context.state\n\n return await getRepository(BizOption).save({\n ...bizOption,\n domain: domain,\n creator: user,\n updater: user\n })\n }\n\n @Mutation(returns => BizOption)\n async updateBizOption(\n @Arg('name') name: string,\n @Arg('patch') patch: BizOptionPatch,\n @Ctx() context: ResolverContext\n ): Promise<BizOption> {\n const { domain, user } = context.state\n\n const repository = getRepository(BizOption)\n const bizOption = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...bizOption,\n ...patch,\n updater: user\n })\n }\n\n @Mutation(returns => Boolean)\n async deleteBizOption(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n const { domain } = context.state\n\n await getRepository(BizOption).delete({ domain: { id: domain.id }, name })\n return true\n }\n\n @Mutation(returns => Boolean)\n async deleteBizOptions(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n await getRepository(BizOption).delete({\n domain: { id: context.state.domain.id },\n name: In(names)\n })\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"biz-option-mutation.js","sourceRoot":"","sources":["../../../server/service/biz-option/biz-option-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { BizOption } from './biz-option'\nimport { BizOptionPatch, NewBizOption } from './biz-option-types'\n\n@Resolver(BizOption)\nexport class BizOptionMutation {\n @Directive('@privilege(category: \"biz-option\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => BizOption)\n async createBizOption(\n @Arg('bizOption') bizOption: NewBizOption,\n @Ctx() context: ResolverContext\n ): Promise<BizOption> {\n const { domain, user } = context.state\n\n return await getRepository(BizOption).save({\n ...bizOption,\n domain: domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@privilege(category: \"biz-option\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => BizOption)\n async updateBizOption(\n @Arg('name') name: string,\n @Arg('patch') patch: BizOptionPatch,\n @Ctx() context: ResolverContext\n ): Promise<BizOption> {\n const { domain, user } = context.state\n\n const repository = getRepository(BizOption)\n const bizOption = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...bizOption,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@privilege(category: \"biz-option\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean)\n async deleteBizOption(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n const { domain } = context.state\n\n await getRepository(BizOption).delete({ domain: { id: domain.id }, name })\n return true\n }\n\n @Directive('@privilege(category: \"biz-option\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean)\n async deleteBizOptions(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n await getRepository(BizOption).delete({\n domain: { id: context.state.domain.id },\n name: In(names)\n })\n return true\n }\n}\n"]}
@@ -14,7 +14,8 @@ let BizOptionQuery = class BizOptionQuery {
14
14
  });
15
15
  }
16
16
  async bizOptions(params, context) {
17
- const convertedParams = (0, shell_1.convertListParams)(params);
17
+ /* The caller's domain only - this list read every tenant's codes (ADR-0139). */
18
+ const convertedParams = (0, shell_1.convertListParams)(params, { domain: context.state.domain });
18
19
  const [items, total] = await (0, shell_1.getRepository)(biz_option_1.BizOption).findAndCount({
19
20
  ...convertedParams,
20
21
  relations: ['domain', 'bizplace', 'bizOptionDetails', 'creator', 'updater']
@@ -24,6 +25,7 @@ let BizOptionQuery = class BizOptionQuery {
24
25
  };
25
26
  exports.BizOptionQuery = BizOptionQuery;
26
27
  tslib_1.__decorate([
28
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "query", domainOwnerGranted: true)'),
27
29
  (0, type_graphql_1.Query)(returns => biz_option_1.BizOption),
28
30
  tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
29
31
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -32,6 +34,7 @@ tslib_1.__decorate([
32
34
  tslib_1.__metadata("design:returntype", Promise)
33
35
  ], BizOptionQuery.prototype, "bizOption", null);
34
36
  tslib_1.__decorate([
37
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "query", domainOwnerGranted: true)'),
35
38
  (0, type_graphql_1.Query)(returns => biz_option_types_1.BizOptionList),
36
39
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
37
40
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -1 +1 @@
1
- {"version":3,"file":"biz-option-query.js","sourceRoot":"","sources":["../../../server/service/biz-option/biz-option-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA8D;AAE9D,iDAAmF;AAEnF,6CAAwC;AACxC,yDAAkD;AAG3C,IAAM,cAAc,GAApB,MAAM,cAAc;IAEnB,AAAN,KAAK,CAAC,SAAS,CAAc,IAAY,EAAS,OAAwB;QACxE,OAAO,MAAM,IAAA,qBAAa,EAAC,sBAAS,CAAC,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YACxD,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5E,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,UAAU,CACW,MAAiB,EACnC,OAAwB;QAE/B,MAAM,eAAe,GAAG,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qBAAa,EAAC,sBAAS,CAAC,CAAC,YAAY,CAAC;YACjE,GAAG,eAAe;YAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5E,CAAC,CAAA;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AArBY,wCAAc;AAEnB;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,sBAAS,CAAC;IACX,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;+CAKhD;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,gCAAa,CAAC;IAE7B,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;gDAS3C;yBApBU,cAAc;IAD1B,IAAA,uBAAQ,EAAC,sBAAS,CAAC;GACP,cAAc,CAqB1B","sourcesContent":["import { Arg, Args, Ctx, Query, Resolver } from 'type-graphql'\n\nimport { convertListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { BizOption } from './biz-option'\nimport { BizOptionList } from './biz-option-types'\n\n@Resolver(BizOption)\nexport class BizOptionQuery {\n @Query(returns => BizOption)\n async bizOption(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<BizOption> {\n return await getRepository(BizOption).findOne({\n where: { domain: { id: context.state.domain.id }, name },\n relations: ['domain', 'bizplace', 'bizOptionDetails', 'creator', 'updater']\n })\n }\n\n @Query(returns => BizOptionList)\n async bizOptions(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BizOptionList> {\n const convertedParams = convertListParams(params)\n const [items, total] = await getRepository(BizOption).findAndCount({\n ...convertedParams,\n relations: ['domain', 'bizplace', 'bizOptionDetails', 'creator', 'updater']\n })\n return { items, total }\n }\n}\n"]}
1
+ {"version":3,"file":"biz-option-query.js","sourceRoot":"","sources":["../../../server/service/biz-option/biz-option-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAyE;AAEzE,iDAAmF;AAEnF,6CAAwC;AACxC,yDAAkD;AAG3C,IAAM,cAAc,GAApB,MAAM,cAAc;IAGnB,AAAN,KAAK,CAAC,SAAS,CAAc,IAAY,EAAS,OAAwB;QACxE,OAAO,MAAM,IAAA,qBAAa,EAAC,sBAAS,CAAC,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YACxD,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5E,CAAC,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CACW,MAAiB,EACnC,OAAwB;QAE/B,gFAAgF;QAChF,MAAM,eAAe,GAAG,IAAA,yBAAiB,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;QACnF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qBAAa,EAAC,sBAAS,CAAC,CAAC,YAAY,CAAC;YACjE,GAAG,eAAe;YAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5E,CAAC,CAAA;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AAxBY,wCAAc;AAGnB;IAFL,IAAA,wBAAS,EAAC,kFAAkF,CAAC;IAC7F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,sBAAS,CAAC;IACX,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;+CAKhD;AAIK;IAFL,IAAA,wBAAS,EAAC,kFAAkF,CAAC;IAC7F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,gCAAa,CAAC;IAE7B,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;gDAU3C;yBAvBU,cAAc;IAD1B,IAAA,uBAAQ,EAAC,sBAAS,CAAC;GACP,cAAc,CAwB1B","sourcesContent":["import { Arg, Args, Ctx, Query, Resolver, Directive } from 'type-graphql'\n\nimport { convertListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { BizOption } from './biz-option'\nimport { BizOptionList } from './biz-option-types'\n\n@Resolver(BizOption)\nexport class BizOptionQuery {\n @Directive('@privilege(category: \"biz-option\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => BizOption)\n async bizOption(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<BizOption> {\n return await getRepository(BizOption).findOne({\n where: { domain: { id: context.state.domain.id }, name },\n relations: ['domain', 'bizplace', 'bizOptionDetails', 'creator', 'updater']\n })\n }\n\n @Directive('@privilege(category: \"biz-option\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => BizOptionList)\n async bizOptions(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BizOptionList> {\n /* The caller's domain only - this list read every tenant's codes (ADR-0139). */\n const convertedParams = convertListParams(params, { domain: context.state.domain })\n const [items, total] = await getRepository(BizOption).findAndCount({\n ...convertedParams,\n relations: ['domain', 'bizplace', 'bizOptionDetails', 'creator', 'updater']\n })\n return { items, total }\n }\n}\n"]}
@@ -41,6 +41,7 @@ let BizOptionDetailMutation = class BizOptionDetailMutation {
41
41
  };
42
42
  exports.BizOptionDetailMutation = BizOptionDetailMutation;
43
43
  tslib_1.__decorate([
44
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "mutation", domainOwnerGranted: true)'),
44
45
  (0, type_graphql_1.Mutation)(returns => biz_option_detail_1.BizOptionDetail),
45
46
  tslib_1.__param(0, (0, type_graphql_1.Arg)('bizOptionDetail')),
46
47
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -49,6 +50,7 @@ tslib_1.__decorate([
49
50
  tslib_1.__metadata("design:returntype", Promise)
50
51
  ], BizOptionDetailMutation.prototype, "createBizOptionDetail", null);
51
52
  tslib_1.__decorate([
53
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "mutation", domainOwnerGranted: true)'),
52
54
  (0, type_graphql_1.Mutation)(returns => biz_option_detail_1.BizOptionDetail),
53
55
  tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
54
56
  tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
@@ -58,6 +60,7 @@ tslib_1.__decorate([
58
60
  tslib_1.__metadata("design:returntype", Promise)
59
61
  ], BizOptionDetailMutation.prototype, "updateBizOptionDetail", null);
60
62
  tslib_1.__decorate([
63
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "mutation", domainOwnerGranted: true)'),
61
64
  (0, type_graphql_1.Mutation)(returns => Boolean),
62
65
  tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
63
66
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -66,6 +69,7 @@ tslib_1.__decorate([
66
69
  tslib_1.__metadata("design:returntype", Promise)
67
70
  ], BizOptionDetailMutation.prototype, "deleteBizOptionDetail", null);
68
71
  tslib_1.__decorate([
72
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "mutation", domainOwnerGranted: true)'),
69
73
  (0, type_graphql_1.Mutation)(returns => Boolean),
70
74
  tslib_1.__param(0, (0, type_graphql_1.Arg)('names', type => [String])),
71
75
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -1 +1 @@
1
- {"version":3,"file":"biz-option-detail-mutation.js","sourceRoot":"","sources":["../../../server/service/biz-option-detail/biz-option-detail-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { BizOptionDetail } from './biz-option-detail'\nimport { BizOptionDetailPatch, NewBizOptionDetail } from './biz-option-detail-types'\n\n@Resolver(BizOptionDetail)\nexport class BizOptionDetailMutation {\n @Mutation(returns => BizOptionDetail)\n async createBizOptionDetail(\n @Arg('bizOptionDetail') bizOptionDetail: NewBizOptionDetail,\n @Ctx() context: ResolverContext\n ): Promise<BizOptionDetail> {\n return await getRepository(BizOptionDetail).save({\n ...bizOptionDetail,\n domain: context.state.domain,\n creator: context.state.user,\n updater: context.state.user\n })\n }\n\n @Mutation(returns => BizOptionDetail)\n async updateBizOptionDetail(\n @Arg('name') name: string,\n @Arg('patch') patch: BizOptionDetailPatch,\n @Ctx() context: ResolverContext\n ): Promise<BizOptionDetail> {\n const repository = getRepository(BizOptionDetail)\n const bizOptionDetail = await repository.findOne({\n where: { domain: { id: context.state.domain.id }, name }\n })\n\n return await repository.save({\n ...bizOptionDetail,\n ...patch,\n updater: context.state.user\n })\n }\n\n @Mutation(returns => Boolean)\n async deleteBizOptionDetail(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n await getRepository(BizOptionDetail).delete({ domain: { id: context.state.domain.id }, name })\n return true\n }\n\n @Mutation(returns => Boolean)\n async deleteBizOptionDetails(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n await getRepository(BizOptionDetail).delete({\n domain: { id: context.state.domain.id },\n name: In(names)\n })\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"biz-option-detail-mutation.js","sourceRoot":"","sources":["../../../server/service/biz-option-detail/biz-option-detail-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { BizOptionDetail } from './biz-option-detail'\nimport { BizOptionDetailPatch, NewBizOptionDetail } from './biz-option-detail-types'\n\n@Resolver(BizOptionDetail)\nexport class BizOptionDetailMutation {\n @Directive('@privilege(category: \"biz-option\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => BizOptionDetail)\n async createBizOptionDetail(\n @Arg('bizOptionDetail') bizOptionDetail: NewBizOptionDetail,\n @Ctx() context: ResolverContext\n ): Promise<BizOptionDetail> {\n return await getRepository(BizOptionDetail).save({\n ...bizOptionDetail,\n domain: context.state.domain,\n creator: context.state.user,\n updater: context.state.user\n })\n }\n\n @Directive('@privilege(category: \"biz-option\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => BizOptionDetail)\n async updateBizOptionDetail(\n @Arg('name') name: string,\n @Arg('patch') patch: BizOptionDetailPatch,\n @Ctx() context: ResolverContext\n ): Promise<BizOptionDetail> {\n const repository = getRepository(BizOptionDetail)\n const bizOptionDetail = await repository.findOne({\n where: { domain: { id: context.state.domain.id }, name }\n })\n\n return await repository.save({\n ...bizOptionDetail,\n ...patch,\n updater: context.state.user\n })\n }\n\n @Directive('@privilege(category: \"biz-option\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean)\n async deleteBizOptionDetail(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n await getRepository(BizOptionDetail).delete({ domain: { id: context.state.domain.id }, name })\n return true\n }\n\n @Directive('@privilege(category: \"biz-option\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean)\n async deleteBizOptionDetails(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n await getRepository(BizOptionDetail).delete({\n domain: { id: context.state.domain.id },\n name: In(names)\n })\n return true\n }\n}\n"]}
@@ -3,5 +3,5 @@ import { BizOptionDetail } from './biz-option-detail';
3
3
  import { BizOptionDetailList } from './biz-option-detail-types';
4
4
  export declare class BizOptionDetailQuery {
5
5
  bizOptionDetail(name: string, context: ResolverContext): Promise<BizOptionDetail>;
6
- bizOptionDetails(params: ListParam): Promise<BizOptionDetailList>;
6
+ bizOptionDetails(params: ListParam, context: ResolverContext): Promise<BizOptionDetailList>;
7
7
  }
@@ -13,8 +13,9 @@ let BizOptionDetailQuery = class BizOptionDetailQuery {
13
13
  relations: ['domain', 'bizOption', 'creator', 'updater']
14
14
  });
15
15
  }
16
- async bizOptionDetails(params) {
17
- const convertedParams = (0, shell_1.convertListParams)(params);
16
+ async bizOptionDetails(params, context) {
17
+ /* The caller's domain only - this list read every tenant's codes (ADR-0139). */
18
+ const convertedParams = (0, shell_1.convertListParams)(params, { domain: context.state.domain });
18
19
  const [items, total] = await (0, shell_1.getRepository)(biz_option_detail_1.BizOptionDetail).findAndCount({
19
20
  ...convertedParams,
20
21
  relations: ['domain', 'bizOption', 'creator', 'updater']
@@ -24,6 +25,7 @@ let BizOptionDetailQuery = class BizOptionDetailQuery {
24
25
  };
25
26
  exports.BizOptionDetailQuery = BizOptionDetailQuery;
26
27
  tslib_1.__decorate([
28
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "query", domainOwnerGranted: true)'),
27
29
  (0, type_graphql_1.Query)(returns => biz_option_detail_1.BizOptionDetail),
28
30
  tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
29
31
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -32,10 +34,12 @@ tslib_1.__decorate([
32
34
  tslib_1.__metadata("design:returntype", Promise)
33
35
  ], BizOptionDetailQuery.prototype, "bizOptionDetail", null);
34
36
  tslib_1.__decorate([
37
+ (0, type_graphql_1.Directive)('@privilege(category: "biz-option", privilege: "query", domainOwnerGranted: true)'),
35
38
  (0, type_graphql_1.Query)(returns => biz_option_detail_types_1.BizOptionDetailList),
36
39
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
40
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
37
41
  tslib_1.__metadata("design:type", Function),
38
- tslib_1.__metadata("design:paramtypes", [shell_1.ListParam]),
42
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
39
43
  tslib_1.__metadata("design:returntype", Promise)
40
44
  ], BizOptionDetailQuery.prototype, "bizOptionDetails", null);
41
45
  exports.BizOptionDetailQuery = BizOptionDetailQuery = tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"biz-option-detail-query.js","sourceRoot":"","sources":["../../../server/service/biz-option-detail/biz-option-detail-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA8D;AAE9D,iDAAmF;AAEnF,2DAAqD;AACrD,uEAA+D;AAGxD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAEzB,AAAN,KAAK,CAAC,eAAe,CAAc,IAAY,EAAS,OAAwB;QAC9E,OAAO,MAAM,IAAA,qBAAa,EAAC,mCAAe,CAAC,CAAC,OAAO,CAAC;YAClD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YACxD,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;SACzD,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB,CAA0B,MAAiB;QAC/D,MAAM,eAAe,GAAG,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qBAAa,EAAC,mCAAe,CAAC,CAAC,YAAY,CAAC;YACvE,GAAG,eAAe;YAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;SACzD,CAAC,CAAA;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AAlBY,oDAAoB;AAEzB;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,mCAAe,CAAC;IACX,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;2DAKtD;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,6CAAmB,CAAC;IACd,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;;6CAAS,iBAAS;;4DAOhE;+BAjBU,oBAAoB;IADhC,IAAA,uBAAQ,EAAC,mCAAe,CAAC;GACb,oBAAoB,CAkBhC","sourcesContent":["import { Arg, Args, Ctx, Query, Resolver } from 'type-graphql'\n\nimport { convertListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { BizOptionDetail } from './biz-option-detail'\nimport { BizOptionDetailList } from './biz-option-detail-types'\n\n@Resolver(BizOptionDetail)\nexport class BizOptionDetailQuery {\n @Query(returns => BizOptionDetail)\n async bizOptionDetail(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<BizOptionDetail> {\n return await getRepository(BizOptionDetail).findOne({\n where: { domain: { id: context.state.domain.id }, name },\n relations: ['domain', 'bizOption', 'creator', 'updater']\n })\n }\n\n @Query(returns => BizOptionDetailList)\n async bizOptionDetails(@Args(type => ListParam) params: ListParam): Promise<BizOptionDetailList> {\n const convertedParams = convertListParams(params)\n const [items, total] = await getRepository(BizOptionDetail).findAndCount({\n ...convertedParams,\n relations: ['domain', 'bizOption', 'creator', 'updater']\n })\n return { items, total }\n }\n}\n"]}
1
+ {"version":3,"file":"biz-option-detail-query.js","sourceRoot":"","sources":["../../../server/service/biz-option-detail/biz-option-detail-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAyE;AAEzE,iDAAmF;AAEnF,2DAAqD;AACrD,uEAA+D;AAGxD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAGzB,AAAN,KAAK,CAAC,eAAe,CAAc,IAAY,EAAS,OAAwB;QAC9E,OAAO,MAAM,IAAA,qBAAa,EAAC,mCAAe,CAAC,CAAC,OAAO,CAAC;YAClD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YACxD,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;SACzD,CAAC,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,gBAAgB,CAA0B,MAAiB,EAAS,OAAwB;QAChG,gFAAgF;QAChF,MAAM,eAAe,GAAG,IAAA,yBAAiB,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;QACnF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qBAAa,EAAC,mCAAe,CAAC,CAAC,YAAY,CAAC;YACvE,GAAG,eAAe;YAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;SACzD,CAAC,CAAA;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AArBY,oDAAoB;AAGzB;IAFL,IAAA,wBAAS,EAAC,kFAAkF,CAAC;IAC7F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,mCAAe,CAAC;IACX,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;2DAKtD;AAIK;IAFL,IAAA,wBAAS,EAAC,kFAAkF,CAAC;IAC7F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,6CAAmB,CAAC;IACd,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;4DAQhE;+BApBU,oBAAoB;IADhC,IAAA,uBAAQ,EAAC,mCAAe,CAAC;GACb,oBAAoB,CAqBhC","sourcesContent":["import { Arg, Args, Ctx, Query, Resolver, Directive } from 'type-graphql'\n\nimport { convertListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { BizOptionDetail } from './biz-option-detail'\nimport { BizOptionDetailList } from './biz-option-detail-types'\n\n@Resolver(BizOptionDetail)\nexport class BizOptionDetailQuery {\n @Directive('@privilege(category: \"biz-option\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => BizOptionDetail)\n async bizOptionDetail(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<BizOptionDetail> {\n return await getRepository(BizOptionDetail).findOne({\n where: { domain: { id: context.state.domain.id }, name },\n relations: ['domain', 'bizOption', 'creator', 'updater']\n })\n }\n\n @Directive('@privilege(category: \"biz-option\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => BizOptionDetailList)\n async bizOptionDetails(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<BizOptionDetailList> {\n /* The caller's domain only - this list read every tenant's codes (ADR-0139). */\n const convertedParams = convertListParams(params, { domain: context.state.domain })\n const [items, total] = await getRepository(BizOptionDetail).findAndCount({\n ...convertedParams,\n relations: ['domain', 'bizOption', 'creator', 'updater']\n })\n return { items, total }\n }\n}\n"]}
@@ -91,6 +91,7 @@ let BizplaceQuery = class BizplaceQuery {
91
91
  relations: ['company', 'domain', 'users', 'users.roles', 'creator', 'updater']
92
92
  });
93
93
  }
94
+ /* The users of a bizplace with their roles and privileges - who may hold what is the user admin's (ADR-0139). */
94
95
  async bizplaceUsers(params, context) {
95
96
  const { domain, user } = context.state;
96
97
  const myBizplace = await (0, utils_1.getMyBizplace)(domain, user);
@@ -198,6 +199,7 @@ tslib_1.__decorate([
198
199
  tslib_1.__metadata("design:returntype", Promise)
199
200
  ], BizplaceQuery.prototype, "bizplace", null);
200
201
  tslib_1.__decorate([
202
+ (0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "query", domainOwnerGranted: true)'),
201
203
  (0, type_graphql_1.Query)(returns => auth_base_1.UserList),
202
204
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
203
205
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -206,6 +208,7 @@ tslib_1.__decorate([
206
208
  tslib_1.__metadata("design:returntype", Promise)
207
209
  ], BizplaceQuery.prototype, "bizplaceUsers", null);
208
210
  tslib_1.__decorate([
211
+ (0, type_graphql_1.Directive)('@privilege(category: "bizplace", privilege: "query", domainOwnerGranted: true)'),
209
212
  (0, type_graphql_1.Query)(returns => bizplace_types_1.BizplaceList),
210
213
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
211
214
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -214,6 +217,7 @@ tslib_1.__decorate([
214
217
  tslib_1.__metadata("design:returntype", Promise)
215
218
  ], BizplaceQuery.prototype, "partnersBizplaces", null);
216
219
  tslib_1.__decorate([
220
+ (0, type_graphql_1.Directive)('@privilege(category: "bizplace", privilege: "query", domainOwnerGranted: true)'),
217
221
  (0, type_graphql_1.Query)(returns => bizplace_types_1.BizplaceList),
218
222
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
219
223
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -1 +1 @@
1
- {"version":3,"file":"bizplace-query.js","sourceRoot":"","sources":["../../../server/service/bizplace/bizplace-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, Query, Resolver } from 'type-graphql'\nimport { EntityManager, FindManyOptions, In, Not, Repository } from 'typeorm'\n\nimport { User, UserList } from '@things-factory/auth-base'\nimport { convertListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport {\n getMyBizplace,\n getPartnerBizplaceIds,\n getPartnersBizplaces,\n getPartnersCompanyBizplaces,\n getPermittedBizplaceIds,\n getUserBizplaces\n} from '../../utils'\nimport { Bizplace } from './bizplace'\nimport { BizplaceList } from './bizplace-types'\nimport { accessDenied, readableBizplaceIds } from './bizplace-access'\n\n@Resolver(Bizplace)\nexport class BizplaceQuery {\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\")')\n @Query(returns => [Bizplace])\n async customerBizplaces(@Ctx() context: ResolverContext): Promise<Bizplace[]> {\n const { domain, user } = context.state\n return await getRepository(Bizplace).find({\n where: {\n domain: { id: domain.id },\n id: Not(In([await getMyBizplace(domain, user)]))\n },\n relations: ['domain', 'creator', 'updater']\n })\n }\n\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Bizplace)\n async businessBizplace(@Ctx() context: ResolverContext): Promise<Bizplace> {\n const { domain, user } = context.state\n const myBizplace = await getMyBizplace(domain, user)\n return await getRepository(Bizplace).findOne({\n where: { id: myBizplace.id },\n relations: ['company', 'domain', 'users', 'creator', 'updater']\n })\n }\n\n /* TODO make it work */\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => [Bizplace])\n async userBizplaces(@Arg('email') email: string, @Ctx() context: ResolverContext): Promise<Bizplace[]> {\n const { domain } = context.state\n\n const user: User = await getRepository(User).findOneBy({\n email: email != '' ? email : context.state.user.email\n })\n\n const allowed = new Set(await readableBizplaceIds(context))\n return (await getUserBizplaces(user)).filter(b => b && allowed.has(b.id))\n\n // const bizplaces = await getRepository(Bizplace).find({ domain })\n // // const userBizplaces = user.bizplaces\n // return bizplaces.map((bizplace: Bizplace) => {\n // return {\n // id: bizplace.id,\n // name: bizplace.name,\n // description: bizplace.description,\n // userBizplaceId: userBizplaces\n // .map(userBiz => userBiz.bizplace.id)\n // .slice(0, 1)\n // .shift(),\n // assigned: userBizplaces.filter((userBizplace: Bizplace) => userBizplace.id === bizplace.id).length > 0\n // }\n // })\n }\n\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => BizplaceList)\n async bizplaces(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<BizplaceList> {\n let bizplace_ids = []\n let bizplaceIndex: any = params.filters.findIndex(x => x.name === 'bizplace')\n if (bizplaceIndex > -1) {\n bizplace_ids = params.filters\n .filter(x => x.name === 'bizplace')\n .map(item => {\n return item.value\n })\n params.filters.splice(bizplaceIndex, 1)\n }\n\n const convertedParams = convertListParams(params)\n\n let domainIndex: any = params.filters.findIndex(x => x.name === 'domain')\n if (domainIndex > -1) {\n convertedParams.where.id = In(await getPartnerBizplaceIds(context.state.domain, context.state.user))\n } else {\n if (!(bizplace_ids.length > 0))\n convertedParams.where.id = In(await getPermittedBizplaceIds(context.state.domain, context.state.user))\n else {\n const permitted = new Set(await getPermittedBizplaceIds(context.state.domain, context.state.user))\n convertedParams.where.id = In(bizplace_ids.filter(id => permitted.has(id)))\n }\n }\n\n const [items, total] = await getRepository(Bizplace).findAndCount({\n ...convertedParams,\n relations: ['domain', 'company', 'users', 'creator', 'updater']\n })\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Bizplace)\n async bizplace(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Bizplace> {\n if (!(await readableBizplaceIds(context)).includes(id)) accessDenied()\n return await getRepository(Bizplace).findOne({\n where: { id },\n relations: ['company', 'domain', 'users', 'users.roles', 'creator', 'updater']\n })\n }\n\n @Query(returns => UserList)\n async bizplaceUsers(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<UserList> {\n const { domain, user } = context.state\n const myBizplace: Bizplace = await getMyBizplace(domain, user)\n return await bizplaceUsers(myBizplace, {\n ...(await convertListParams(params)),\n relations: ['domain', 'domains', 'roles', 'roles.privileges', 'roles.users']\n })\n }\n\n @Query(returns => BizplaceList)\n async partnersBizplaces(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BizplaceList> {\n let partnersBizplaceIds = []\n let bizplaceIndex: any = params.filters.findIndex(x => x.name === 'bizplace')\n if (bizplaceIndex > -1) {\n partnersBizplaceIds = params.filters\n .filter(x => x.name === 'bizplace')\n .map(item => {\n return item.value\n })\n params.filters.splice(bizplaceIndex, 1)\n }\n\n const allowed = new Set(\n (await getPartnersBizplaces(context.state.domain, context.state.user)).filter(Boolean).map(b => b.id)\n )\n if (partnersBizplaceIds.length) partnersBizplaceIds = partnersBizplaceIds.filter(id => allowed.has(id))\n else partnersBizplaceIds = [...allowed]\n const convertedParams = convertListParams(params, { searchables: ['name', 'description'] })\n convertedParams.where.id = In(partnersBizplaceIds)\n\n const [items, total] = await getRepository(Bizplace).findAndCount({\n ...convertedParams,\n relations: ['domain', 'company', 'users', 'creator', 'updater']\n })\n\n return { items, total }\n }\n\n @Query(returns => BizplaceList)\n async permittedPartnersCompanyBizplaces(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BizplaceList> {\n let partnersBizplaceIds = []\n let bizplaceIndex: any = params.filters.findIndex(x => x.name === 'bizplace')\n if (bizplaceIndex > -1) {\n partnersBizplaceIds = params.filters\n .filter(x => x.name === 'bizplace')\n .map(item => {\n return item.value\n })\n params.filters.splice(bizplaceIndex, 1)\n }\n\n const convertedParams = convertListParams(params)\n\n if (!(partnersBizplaceIds.length > 0)) {\n const partnersBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(\n context.state.domain,\n context.state.user,\n true\n )\n partnersBizplaceIds = partnersBizplaces.map((bizplace: Bizplace) => bizplace.id || null)\n convertedParams.where.id = In(partnersBizplaceIds)\n } else {\n const allowed = new Set(\n (await getPartnersCompanyBizplaces(context.state.domain, context.state.user, true))\n .filter(Boolean)\n .map(b => b.id)\n )\n convertedParams.where.id = In(partnersBizplaceIds.filter(id => allowed.has(id)))\n }\n\n const [items, total] = await getRepository(Bizplace).findAndCount({\n ...convertedParams,\n relations: ['domain', 'company', 'users', 'creator', 'updater']\n })\n\n return { items, total }\n }\n}\n\nexport async function bizplaceUsers(\n bizplace: Bizplace,\n params: FindManyOptions<User>,\n trxMgr?: EntityManager\n): Promise<{ items: User[]; total: number }> {\n const bizplaceRepo: Repository<Bizplace> = trxMgr?.getRepository(Bizplace) || getRepository(Bizplace)\n const userRepo: Repository<User> = trxMgr?.getRepository(User) || getRepository(User)\n\n if (!bizplace?.users?.length) {\n bizplace = await bizplaceRepo.findOne({\n where: { id: bizplace.id },\n relations: ['users']\n })\n }\n const users: User[] = bizplace.users\n const userIds: string[] = users.map((user: User) => user.id)\n\n const [items, total] = await userRepo.findAndCount({\n ...params,\n where: {\n ...(params.where as any),\n id: In(userIds)\n }\n })\n\n return {\n items,\n total\n }\n}\n"]}
1
+ {"version":3,"file":"bizplace-query.js","sourceRoot":"","sources":["../../../server/service/bizplace/bizplace-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, Query, Resolver } from 'type-graphql'\nimport { EntityManager, FindManyOptions, In, Not, Repository } from 'typeorm'\n\nimport { User, UserList } from '@things-factory/auth-base'\nimport { convertListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport {\n getMyBizplace,\n getPartnerBizplaceIds,\n getPartnersBizplaces,\n getPartnersCompanyBizplaces,\n getPermittedBizplaceIds,\n getUserBizplaces\n} from '../../utils'\nimport { Bizplace } from './bizplace'\nimport { BizplaceList } from './bizplace-types'\nimport { accessDenied, readableBizplaceIds } from './bizplace-access'\n\n@Resolver(Bizplace)\nexport class BizplaceQuery {\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\")')\n @Query(returns => [Bizplace])\n async customerBizplaces(@Ctx() context: ResolverContext): Promise<Bizplace[]> {\n const { domain, user } = context.state\n return await getRepository(Bizplace).find({\n where: {\n domain: { id: domain.id },\n id: Not(In([await getMyBizplace(domain, user)]))\n },\n relations: ['domain', 'creator', 'updater']\n })\n }\n\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Bizplace)\n async businessBizplace(@Ctx() context: ResolverContext): Promise<Bizplace> {\n const { domain, user } = context.state\n const myBizplace = await getMyBizplace(domain, user)\n return await getRepository(Bizplace).findOne({\n where: { id: myBizplace.id },\n relations: ['company', 'domain', 'users', 'creator', 'updater']\n })\n }\n\n /* TODO make it work */\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => [Bizplace])\n async userBizplaces(@Arg('email') email: string, @Ctx() context: ResolverContext): Promise<Bizplace[]> {\n const { domain } = context.state\n\n const user: User = await getRepository(User).findOneBy({\n email: email != '' ? email : context.state.user.email\n })\n\n const allowed = new Set(await readableBizplaceIds(context))\n return (await getUserBizplaces(user)).filter(b => b && allowed.has(b.id))\n\n // const bizplaces = await getRepository(Bizplace).find({ domain })\n // // const userBizplaces = user.bizplaces\n // return bizplaces.map((bizplace: Bizplace) => {\n // return {\n // id: bizplace.id,\n // name: bizplace.name,\n // description: bizplace.description,\n // userBizplaceId: userBizplaces\n // .map(userBiz => userBiz.bizplace.id)\n // .slice(0, 1)\n // .shift(),\n // assigned: userBizplaces.filter((userBizplace: Bizplace) => userBizplace.id === bizplace.id).length > 0\n // }\n // })\n }\n\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => BizplaceList)\n async bizplaces(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<BizplaceList> {\n let bizplace_ids = []\n let bizplaceIndex: any = params.filters.findIndex(x => x.name === 'bizplace')\n if (bizplaceIndex > -1) {\n bizplace_ids = params.filters\n .filter(x => x.name === 'bizplace')\n .map(item => {\n return item.value\n })\n params.filters.splice(bizplaceIndex, 1)\n }\n\n const convertedParams = convertListParams(params)\n\n let domainIndex: any = params.filters.findIndex(x => x.name === 'domain')\n if (domainIndex > -1) {\n convertedParams.where.id = In(await getPartnerBizplaceIds(context.state.domain, context.state.user))\n } else {\n if (!(bizplace_ids.length > 0))\n convertedParams.where.id = In(await getPermittedBizplaceIds(context.state.domain, context.state.user))\n else {\n const permitted = new Set(await getPermittedBizplaceIds(context.state.domain, context.state.user))\n convertedParams.where.id = In(bizplace_ids.filter(id => permitted.has(id)))\n }\n }\n\n const [items, total] = await getRepository(Bizplace).findAndCount({\n ...convertedParams,\n relations: ['domain', 'company', 'users', 'creator', 'updater']\n })\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Bizplace)\n async bizplace(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Bizplace> {\n if (!(await readableBizplaceIds(context)).includes(id)) accessDenied()\n return await getRepository(Bizplace).findOne({\n where: { id },\n relations: ['company', 'domain', 'users', 'users.roles', 'creator', 'updater']\n })\n }\n\n /* The users of a bizplace with their roles and privileges - who may hold what is the user admin's (ADR-0139). */\n @Directive('@privilege(category: \"user\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => UserList)\n async bizplaceUsers(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<UserList> {\n const { domain, user } = context.state\n const myBizplace: Bizplace = await getMyBizplace(domain, user)\n return await bizplaceUsers(myBizplace, {\n ...(await convertListParams(params)),\n relations: ['domain', 'domains', 'roles', 'roles.privileges', 'roles.users']\n })\n }\n\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => BizplaceList)\n async partnersBizplaces(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BizplaceList> {\n let partnersBizplaceIds = []\n let bizplaceIndex: any = params.filters.findIndex(x => x.name === 'bizplace')\n if (bizplaceIndex > -1) {\n partnersBizplaceIds = params.filters\n .filter(x => x.name === 'bizplace')\n .map(item => {\n return item.value\n })\n params.filters.splice(bizplaceIndex, 1)\n }\n\n const allowed = new Set(\n (await getPartnersBizplaces(context.state.domain, context.state.user)).filter(Boolean).map(b => b.id)\n )\n if (partnersBizplaceIds.length) partnersBizplaceIds = partnersBizplaceIds.filter(id => allowed.has(id))\n else partnersBizplaceIds = [...allowed]\n const convertedParams = convertListParams(params, { searchables: ['name', 'description'] })\n convertedParams.where.id = In(partnersBizplaceIds)\n\n const [items, total] = await getRepository(Bizplace).findAndCount({\n ...convertedParams,\n relations: ['domain', 'company', 'users', 'creator', 'updater']\n })\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"bizplace\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => BizplaceList)\n async permittedPartnersCompanyBizplaces(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BizplaceList> {\n let partnersBizplaceIds = []\n let bizplaceIndex: any = params.filters.findIndex(x => x.name === 'bizplace')\n if (bizplaceIndex > -1) {\n partnersBizplaceIds = params.filters\n .filter(x => x.name === 'bizplace')\n .map(item => {\n return item.value\n })\n params.filters.splice(bizplaceIndex, 1)\n }\n\n const convertedParams = convertListParams(params)\n\n if (!(partnersBizplaceIds.length > 0)) {\n const partnersBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(\n context.state.domain,\n context.state.user,\n true\n )\n partnersBizplaceIds = partnersBizplaces.map((bizplace: Bizplace) => bizplace.id || null)\n convertedParams.where.id = In(partnersBizplaceIds)\n } else {\n const allowed = new Set(\n (await getPartnersCompanyBizplaces(context.state.domain, context.state.user, true))\n .filter(Boolean)\n .map(b => b.id)\n )\n convertedParams.where.id = In(partnersBizplaceIds.filter(id => allowed.has(id)))\n }\n\n const [items, total] = await getRepository(Bizplace).findAndCount({\n ...convertedParams,\n relations: ['domain', 'company', 'users', 'creator', 'updater']\n })\n\n return { items, total }\n }\n}\n\nexport async function bizplaceUsers(\n bizplace: Bizplace,\n params: FindManyOptions<User>,\n trxMgr?: EntityManager\n): Promise<{ items: User[]; total: number }> {\n const bizplaceRepo: Repository<Bizplace> = trxMgr?.getRepository(Bizplace) || getRepository(Bizplace)\n const userRepo: Repository<User> = trxMgr?.getRepository(User) || getRepository(User)\n\n if (!bizplace?.users?.length) {\n bizplace = await bizplaceRepo.findOne({\n where: { id: bizplace.id },\n relations: ['users']\n })\n }\n const users: User[] = bizplace.users\n const userIds: string[] = users.map((user: User) => user.id)\n\n const [items, total] = await userRepo.findAndCount({\n ...params,\n where: {\n ...(params.where as any),\n id: In(userIds)\n }\n })\n\n return {\n items,\n total\n }\n}\n"]}
@@ -51,6 +51,7 @@ let CompanyMutation = class CompanyMutation {
51
51
  };
52
52
  exports.CompanyMutation = CompanyMutation;
53
53
  tslib_1.__decorate([
54
+ (0, type_graphql_1.Directive)('@privilege(category: "company", privilege: "mutation")'),
54
55
  (0, type_graphql_1.Directive)('@transaction'),
55
56
  (0, type_graphql_1.Mutation)(returns => company_1.Company),
56
57
  tslib_1.__param(0, (0, type_graphql_1.Arg)('company')),
@@ -81,6 +82,7 @@ tslib_1.__decorate([
81
82
  tslib_1.__metadata("design:returntype", Promise)
82
83
  ], CompanyMutation.prototype, "updateMultipleCompany", null);
83
84
  tslib_1.__decorate([
85
+ (0, type_graphql_1.Directive)('@privilege(category: "company", privilege: "mutation")'),
84
86
  (0, type_graphql_1.Directive)('@transaction'),
85
87
  (0, type_graphql_1.Mutation)(returns => Boolean),
86
88
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
@@ -1 +1 @@
1
- {"version":3,"file":"company-mutation.js","sourceRoot":"","sources":["../../../server/service/company/company-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { slugger } from '@things-factory/utils'\n\nimport { Company } from './company'\nimport { CompanyPatch, NewCompany } from './company-types'\n\n@Resolver(Company)\nexport class CompanyMutation {\n @Directive('@transaction')\n @Mutation(returns => Company)\n async createCompany(@Arg('company') company: NewCompany, @Ctx() context: ResolverContext): Promise<Company> {\n const { domain, user, tx } = context.state\n return await createCompany(company, domain, user, tx)\n }\n\n @Directive('@privilege(category: \"company\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Company)\n async updateCompany(\n @Arg('name') name: string,\n @Arg('patch') patch: CompanyPatch,\n @Ctx() context: ResolverContext\n ): Promise<Company> {\n const { domain, user, tx } = context.state\n return await updateCompany(name, patch, domain, user, tx)\n }\n\n @Directive('@privilege(category: \"company\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => [Company])\n async updateMultipleCompany(\n @Arg('patches', type => [CompanyPatch]) patches: CompanyPatch[],\n @Ctx() context: ResolverContext\n ) {\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const patch: CompanyPatch = _createRecords[i]\n const result = await this.createCompany(patch as NewCompany, context)\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const patch: CompanyPatch = _updateRecords[i]\n const result = await this.updateCompany(patch.name, patch, context)\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteCompany(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n await deleteCompany(id, context.state.tx)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"company\", privilege: \"mutation\")')\n @Mutation(returns => Boolean)\n async deleteCompanies(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n await deleteCompanies(ids, context.state.tx)\n\n return true\n }\n}\n\nexport async function createCompany(company: NewCompany, domain: Domain, user: User, tx?: EntityManager) {\n const companyRepository: Repository<Company> = tx ? tx.getRepository(Company) : getRepository(Company)\n const domainRepository: Repository<Domain> = tx ? tx.getRepository(Domain) : getRepository(Domain)\n\n const companyDomain: Domain = await domainRepository.save({\n subdomain: slugger(company.name),\n name: company.name\n })\n\n return await companyRepository.save({\n ...company,\n domain: companyDomain,\n creator: user,\n updater: user\n })\n}\n\nexport async function updateCompany(name: string, patch: CompanyPatch, domain: Domain, user: User, tx?: EntityManager) {\n const repository: Repository<Company> = tx ? tx.getRepository(Company) : getRepository(Company)\n const company = await repository.findOneBy({\n domain: { id: domain.id },\n name\n })\n\n return repository.save({\n ...company,\n ...patch,\n updater: user\n })\n}\n\nexport async function deleteCompanies(ids: string[], tx?: EntityManager) {\n const repository = tx ? tx.getRepository(Company) : getRepository(Company)\n return await repository.delete(ids)\n}\n\nexport async function deleteCompany(id: string, tx?: EntityManager) {\n const repository: Repository<Company> = tx ? tx.getRepository(Company) : getRepository(Company)\n return await repository.delete(id)\n}\n"]}
1
+ {"version":3,"file":"company-mutation.js","sourceRoot":"","sources":["../../../server/service/company/company-mutation.ts"],"names":[],"mappings":";;;AAoFA,sCAeC;AAED,sCAYC;AAED,0CAGC;AAED,sCAGC;;AA3HD,+CAAsE;AAItE,iDAA6D;AAC7D,iDAA+C;AAE/C,uCAAmC;AACnC,mDAA0D;AAGnD,IAAM,eAAe,GAArB,MAAM,eAAe;IAIpB,AAAN,KAAK,CAAC,aAAa,CAAiB,OAAmB,EAAS,OAAwB;QACtF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,OAAO,MAAM,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IACvD,CAAC;IAKK,AAAN,KAAK,CAAC,aAAa,CACJ,IAAY,EACX,KAAmB,EAC1B,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,OAAO,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IAC3D,CAAC;IAKK,AAAN,KAAK,CAAC,qBAAqB,CACe,OAAuB,EACxD,OAAwB;QAE/B,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QAEzF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAiB,cAAc,CAAC,CAAC,CAAC,CAAA;gBAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAmB,EAAE,OAAO,CAAC,CAAA;gBACrE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAiB,cAAc,CAAC,CAAC,CAAC,CAAA;gBAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;gBACnE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAKK,AAAN,KAAK,CAAC,aAAa,CAAY,EAAU,EAAS,OAAwB;QACxE,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAEzC,OAAO,IAAI,CAAA;IACb,CAAC;IAKK,AAAN,KAAK,CAAC,eAAe,CACW,GAAa,EACpC,OAAwB;QAE/B,MAAM,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAE5C,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAvEY,0CAAe;AAIpB;IAHL,IAAA,wBAAS,EAAC,wDAAwD,CAAC;IACnE,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,iBAAO,CAAC;IACR,mBAAA,IAAA,kBAAG,EAAC,SAAS,CAAC,CAAA;IAAuB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAlB,0BAAU;;oDAGtD;AAKK;IAHL,IAAA,wBAAS,EAAC,wDAAwD,CAAC;IACnE,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,iBAAO,CAAC;IAE1B,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IACZ,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADe,4BAAY;;oDAKlC;AAKK;IAHL,IAAA,wBAAS,EAAC,wDAAwD,CAAC;IACnE,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,iBAAO,CAAC,CAAC;IAE5B,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,4BAAY,CAAC,CAAC,CAAA;IACtC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;4DAuBP;AAKK;IAHL,IAAA,wBAAS,EAAC,wDAAwD,CAAC;IACnE,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IACR,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;oDAIhD;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,wDAAwD,CAAC;IACnE,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IAE1B,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;sDAKP;0BAtEU,eAAe;IAD3B,IAAA,uBAAQ,EAAC,iBAAO,CAAC;GACL,eAAe,CAuE3B;AAEM,KAAK,UAAU,aAAa,CAAC,OAAmB,EAAE,MAAc,EAAE,IAAU,EAAE,EAAkB;IACrG,MAAM,iBAAiB,GAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAO,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,iBAAO,CAAC,CAAA;IACtG,MAAM,gBAAgB,GAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAA;IAElG,MAAM,aAAa,GAAW,MAAM,gBAAgB,CAAC,IAAI,CAAC;QACxD,SAAS,EAAE,IAAA,eAAO,EAAC,OAAO,CAAC,IAAI,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAA;IAEF,OAAO,MAAM,iBAAiB,CAAC,IAAI,CAAC;QAClC,GAAG,OAAO;QACV,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;KACd,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,KAAmB,EAAE,MAAc,EAAE,IAAU,EAAE,EAAkB;IACnH,MAAM,UAAU,GAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAO,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,iBAAO,CAAC,CAAA;IAC/F,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC;QACzC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;QACzB,IAAI;KACL,CAAC,CAAA;IAEF,OAAO,UAAU,CAAC,IAAI,CAAC;QACrB,GAAG,OAAO;QACV,GAAG,KAAK;QACR,OAAO,EAAE,IAAI;KACd,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,GAAa,EAAE,EAAkB;IACrE,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAO,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,iBAAO,CAAC,CAAA;IAC1E,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACrC,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,EAAU,EAAE,EAAkB;IAChE,MAAM,UAAU,GAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAO,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,iBAAO,CAAC,CAAA;IAC/F,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACpC,CAAC","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { slugger } from '@things-factory/utils'\n\nimport { Company } from './company'\nimport { CompanyPatch, NewCompany } from './company-types'\n\n@Resolver(Company)\nexport class CompanyMutation {\n @Directive('@privilege(category: \"company\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Company)\n async createCompany(@Arg('company') company: NewCompany, @Ctx() context: ResolverContext): Promise<Company> {\n const { domain, user, tx } = context.state\n return await createCompany(company, domain, user, tx)\n }\n\n @Directive('@privilege(category: \"company\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Company)\n async updateCompany(\n @Arg('name') name: string,\n @Arg('patch') patch: CompanyPatch,\n @Ctx() context: ResolverContext\n ): Promise<Company> {\n const { domain, user, tx } = context.state\n return await updateCompany(name, patch, domain, user, tx)\n }\n\n @Directive('@privilege(category: \"company\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => [Company])\n async updateMultipleCompany(\n @Arg('patches', type => [CompanyPatch]) patches: CompanyPatch[],\n @Ctx() context: ResolverContext\n ) {\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const patch: CompanyPatch = _createRecords[i]\n const result = await this.createCompany(patch as NewCompany, context)\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const patch: CompanyPatch = _updateRecords[i]\n const result = await this.updateCompany(patch.name, patch, context)\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@privilege(category: \"company\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteCompany(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n await deleteCompany(id, context.state.tx)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"company\", privilege: \"mutation\")')\n @Mutation(returns => Boolean)\n async deleteCompanies(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n await deleteCompanies(ids, context.state.tx)\n\n return true\n }\n}\n\nexport async function createCompany(company: NewCompany, domain: Domain, user: User, tx?: EntityManager) {\n const companyRepository: Repository<Company> = tx ? tx.getRepository(Company) : getRepository(Company)\n const domainRepository: Repository<Domain> = tx ? tx.getRepository(Domain) : getRepository(Domain)\n\n const companyDomain: Domain = await domainRepository.save({\n subdomain: slugger(company.name),\n name: company.name\n })\n\n return await companyRepository.save({\n ...company,\n domain: companyDomain,\n creator: user,\n updater: user\n })\n}\n\nexport async function updateCompany(name: string, patch: CompanyPatch, domain: Domain, user: User, tx?: EntityManager) {\n const repository: Repository<Company> = tx ? tx.getRepository(Company) : getRepository(Company)\n const company = await repository.findOneBy({\n domain: { id: domain.id },\n name\n })\n\n return repository.save({\n ...company,\n ...patch,\n updater: user\n })\n}\n\nexport async function deleteCompanies(ids: string[], tx?: EntityManager) {\n const repository = tx ? tx.getRepository(Company) : getRepository(Company)\n return await repository.delete(ids)\n}\n\nexport async function deleteCompany(id: string, tx?: EntityManager) {\n const repository: Repository<Company> = tx ? tx.getRepository(Company) : getRepository(Company)\n return await repository.delete(id)\n}\n"]}