@things-factory/personalization 7.0.1-beta.8 → 7.0.1-beta.9

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.
Files changed (30) hide show
  1. package/dist-server/service/index.js +6 -1
  2. package/dist-server/service/index.js.map +1 -1
  3. package/dist-server/service/preference/index.js +10 -0
  4. package/dist-server/service/preference/index.js.map +1 -0
  5. package/dist-server/service/preference/preference-mutation.js +120 -0
  6. package/dist-server/service/preference/preference-mutation.js.map +1 -0
  7. package/dist-server/service/preference/preference-query.js +94 -0
  8. package/dist-server/service/preference/preference-query.js.map +1 -0
  9. package/dist-server/service/preference/preference-type.js +66 -0
  10. package/dist-server/service/preference/preference-type.js.map +1 -0
  11. package/dist-server/service/preference/preference.js +86 -0
  12. package/dist-server/service/preference/preference.js.map +1 -0
  13. package/dist-server/service/user-preference/index.js +10 -0
  14. package/dist-server/service/user-preference/index.js.map +1 -0
  15. package/dist-server/service/user-preference/user-preference-mutation.js +120 -0
  16. package/dist-server/service/user-preference/user-preference-mutation.js.map +1 -0
  17. package/dist-server/service/user-preference/user-preference-query.js +94 -0
  18. package/dist-server/service/user-preference/user-preference-query.js.map +1 -0
  19. package/dist-server/service/user-preference/user-preference-type.js +66 -0
  20. package/dist-server/service/user-preference/user-preference-type.js.map +1 -0
  21. package/dist-server/service/user-preference/user-preference.js +86 -0
  22. package/dist-server/service/user-preference/user-preference.js.map +1 -0
  23. package/dist-server/tsconfig.tsbuildinfo +1 -1
  24. package/package.json +3 -3
  25. package/server/service/index.ts +9 -0
  26. package/server/service/user-preference/index.ts +7 -0
  27. package/server/service/user-preference/user-preference-mutation.ts +119 -0
  28. package/server/service/user-preference/user-preference-query.ts +61 -0
  29. package/server/service/user-preference/user-preference-type.ts +43 -0
  30. package/server/service/user-preference/user-preference.ts +75 -0
@@ -3,19 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.schema = exports.subscribers = exports.entities = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  /* EXPORT ENTITY TYPES */
6
+ tslib_1.__exportStar(require("./user-preference/user-preference"), exports);
6
7
  tslib_1.__exportStar(require("./page-preference/page-preference"), exports);
7
8
  /* IMPORT ENTITIES AND RESOLVERS */
9
+ const user_preference_1 = require("./user-preference");
8
10
  const page_preference_1 = require("./page-preference");
9
11
  exports.entities = [
10
12
  /* ENTITIES */
13
+ ...user_preference_1.entities,
11
14
  ...page_preference_1.entities
12
15
  ];
13
16
  exports.subscribers = [
14
- /* SUBSCRIBERS */
17
+ /* SUBSCRIBERS */
18
+ ...user_preference_1.subscribers
15
19
  ];
16
20
  exports.schema = {
17
21
  resolverClasses: [
18
22
  /* RESOLVER CLASSES */
23
+ ...user_preference_1.resolvers,
19
24
  ...page_preference_1.resolvers
20
25
  ]
21
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,4EAAiD;AAEjD,mCAAmC;AACnC,uDAA4G;AAE/F,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,0BAAsB;CAC1B,CAAA;AAEY,QAAA,WAAW,GAAG;AACzB,iBAAiB;CAClB,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,2BAAuB;KAC3B;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './page-preference/page-preference'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport { entities as PagePreferenceEntities, resolvers as PagePreferenceResolvers } from './page-preference'\n\nexport const entities = [\n /* ENTITIES */\n ...PagePreferenceEntities\n]\n\nexport const subscribers = [\n /* SUBSCRIBERS */\n]\n\nexport const schema = {\n resolverClasses: [\n /* RESOLVER CLASSES */\n ...PagePreferenceResolvers\n ]\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,4EAAiD;AACjD,4EAAiD;AAEjD,mCAAmC;AACnC,uDAI0B;AAC1B,uDAA4G;AAE/F,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,0BAAsB;IACzB,GAAG,0BAAsB;CAC1B,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,iBAAiB;IACjB,GAAG,6BAAyB;CAC7B,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,2BAAuB;QAC1B,GAAG,2BAAuB;KAC3B;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './user-preference/user-preference'\nexport * from './page-preference/page-preference'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport {\n entities as UserPreferenceEntities,\n resolvers as UserPreferenceResolvers,\n subscribers as UserPreferenceSubscribers\n} from './user-preference'\nimport { entities as PagePreferenceEntities, resolvers as PagePreferenceResolvers } from './page-preference'\n\nexport const entities = [\n /* ENTITIES */\n ...UserPreferenceEntities,\n ...PagePreferenceEntities\n]\n\nexport const subscribers = [\n /* SUBSCRIBERS */\n ...UserPreferenceSubscribers\n]\n\nexport const schema = {\n resolverClasses: [\n /* RESOLVER CLASSES */\n ...UserPreferenceResolvers,\n ...PagePreferenceResolvers\n ]\n}\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.subscribers = exports.resolvers = exports.entities = void 0;
4
+ const preference_1 = require("./preference");
5
+ const preference_query_1 = require("./preference-query");
6
+ const preference_mutation_1 = require("./preference-mutation");
7
+ exports.entities = [preference_1.Preference];
8
+ exports.resolvers = [preference_query_1.PreferenceQuery, preference_mutation_1.PreferenceMutation];
9
+ exports.subscribers = [];
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/preference/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,yDAAoD;AACpD,+DAA0D;AAE7C,QAAA,QAAQ,GAAG,CAAC,uBAAU,CAAC,CAAA;AACvB,QAAA,SAAS,GAAG,CAAC,kCAAe,EAAE,wCAAkB,CAAC,CAAA;AACjD,QAAA,WAAW,GAAG,EAAE,CAAA","sourcesContent":["import { Preference } from './preference'\nimport { PreferenceQuery } from './preference-query'\nimport { PreferenceMutation } from './preference-mutation'\n\nexport const entities = [Preference]\nexport const resolvers = [PreferenceQuery, PreferenceMutation]\nexport const subscribers = []\n"]}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PreferenceMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const typeorm_1 = require("typeorm");
7
+ const shell_1 = require("@things-factory/shell");
8
+ const preference_1 = require("./preference");
9
+ const preference_type_1 = require("./preference-type");
10
+ let PreferenceMutation = class PreferenceMutation {
11
+ async createPreference(preference, context) {
12
+ const { domain, user, tx } = context.state;
13
+ return await tx.getRepository(preference_1.Preference).save(Object.assign(Object.assign({}, preference), { domain, creator: user, updater: user }));
14
+ }
15
+ async updatePreference(id, patch, context) {
16
+ const { domain, user, tx } = context.state;
17
+ const repository = tx.getRepository(preference_1.Preference);
18
+ const preference = await repository.findOne({
19
+ where: { domain: { id: domain.id }, id }
20
+ });
21
+ return await repository.save(Object.assign(Object.assign(Object.assign({}, preference), patch), { updater: user }));
22
+ }
23
+ async updateMyPreference(key, preference, context) {
24
+ const { domain, user, tx } = context.state;
25
+ if (!key) {
26
+ throw 'key is required.';
27
+ }
28
+ const myPreference = await tx.getRepository(preference_1.Preference).findOne({
29
+ where: { domain: { id: domain.id }, user: { id: user.id }, key }
30
+ });
31
+ return await tx.getRepository(preference_1.Preference).save(Object.assign(Object.assign({}, myPreference), { domain,
32
+ user,
33
+ key,
34
+ preference, creator: user, updater: user }));
35
+ }
36
+ async deleteMyPreference(key, element, context) {
37
+ const { domain, user, tx } = context.state;
38
+ await tx.getRepository(preference_1.Preference).delete({
39
+ domain: { id: domain.id },
40
+ user: { id: user.id },
41
+ key
42
+ });
43
+ return true;
44
+ }
45
+ async deletePreference(id, context) {
46
+ const { domain, tx } = context.state;
47
+ await tx.getRepository(preference_1.Preference).delete({ domain: { id: domain.id }, id });
48
+ return true;
49
+ }
50
+ async deletePreferences(ids, context) {
51
+ const { domain, tx } = context.state;
52
+ await tx.getRepository(preference_1.Preference).delete({
53
+ domain: { id: domain.id },
54
+ id: (0, typeorm_1.In)(ids)
55
+ });
56
+ return true;
57
+ }
58
+ };
59
+ tslib_1.__decorate([
60
+ (0, type_graphql_1.Directive)('@transaction'),
61
+ (0, type_graphql_1.Mutation)(returns => preference_1.Preference, { description: 'To create new Preference' }),
62
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('preference')),
63
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
64
+ tslib_1.__metadata("design:type", Function),
65
+ tslib_1.__metadata("design:paramtypes", [preference_type_1.NewPreference, Object]),
66
+ tslib_1.__metadata("design:returntype", Promise)
67
+ ], PreferenceMutation.prototype, "createPreference", null);
68
+ tslib_1.__decorate([
69
+ (0, type_graphql_1.Directive)('@transaction'),
70
+ (0, type_graphql_1.Mutation)(returns => preference_1.Preference, { description: 'To modify Preference information' }),
71
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
72
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
73
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
74
+ tslib_1.__metadata("design:type", Function),
75
+ tslib_1.__metadata("design:paramtypes", [String, preference_type_1.PreferencePatch, Object]),
76
+ tslib_1.__metadata("design:returntype", Promise)
77
+ ], PreferenceMutation.prototype, "updatePreference", null);
78
+ tslib_1.__decorate([
79
+ (0, type_graphql_1.Directive)('@transaction'),
80
+ (0, type_graphql_1.Mutation)(returns => preference_1.Preference, { description: 'To create or update my preference' }),
81
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('key')),
82
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('preference', type => shell_1.ScalarObject)),
83
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
84
+ tslib_1.__metadata("design:type", Function),
85
+ tslib_1.__metadata("design:paramtypes", [String, Object, Object]),
86
+ tslib_1.__metadata("design:returntype", Promise)
87
+ ], PreferenceMutation.prototype, "updateMyPreference", null);
88
+ tslib_1.__decorate([
89
+ (0, type_graphql_1.Directive)('@transaction'),
90
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete my preference' }),
91
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('key')),
92
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('element')),
93
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
94
+ tslib_1.__metadata("design:type", Function),
95
+ tslib_1.__metadata("design:paramtypes", [String, String, Object]),
96
+ tslib_1.__metadata("design:returntype", Promise)
97
+ ], PreferenceMutation.prototype, "deleteMyPreference", null);
98
+ tslib_1.__decorate([
99
+ (0, type_graphql_1.Directive)('@transaction'),
100
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete Preference' }),
101
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
102
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
103
+ tslib_1.__metadata("design:type", Function),
104
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
105
+ tslib_1.__metadata("design:returntype", Promise)
106
+ ], PreferenceMutation.prototype, "deletePreference", null);
107
+ tslib_1.__decorate([
108
+ (0, type_graphql_1.Directive)('@transaction'),
109
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple Preferences' }),
110
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
111
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
112
+ tslib_1.__metadata("design:type", Function),
113
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
114
+ tslib_1.__metadata("design:returntype", Promise)
115
+ ], PreferenceMutation.prototype, "deletePreferences", null);
116
+ PreferenceMutation = tslib_1.__decorate([
117
+ (0, type_graphql_1.Resolver)(preference_1.Preference)
118
+ ], PreferenceMutation);
119
+ exports.PreferenceMutation = PreferenceMutation;
120
+ //# sourceMappingURL=preference-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preference-mutation.js","sourceRoot":"","sources":["../../../server/service/preference/preference-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { ScalarObject } from '@things-factory/shell'\n\nimport { Preference } from './preference'\nimport { NewPreference, PreferencePatch } from './preference-type'\n\n@Resolver(Preference)\nexport class PreferenceMutation {\n @Directive('@transaction')\n @Mutation(returns => Preference, { description: 'To create new Preference' })\n async createPreference(\n @Arg('preference') preference: NewPreference,\n @Ctx() context: ResolverContext\n ): Promise<Preference> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(Preference).save({\n ...preference,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Preference, { description: 'To modify Preference information' })\n async updatePreference(\n @Arg('id') id: string,\n @Arg('patch') patch: PreferencePatch,\n @Ctx() context: ResolverContext\n ): Promise<Preference> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(Preference)\n const preference = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n return await repository.save({\n ...preference,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Preference, { description: 'To create or update my preference' })\n async updateMyPreference(\n @Arg('key') key: string,\n @Arg('preference', type => ScalarObject) preference: { [key: string]: any },\n @Ctx() context: any\n ): Promise<Preference> {\n const { domain, user, tx } = context.state\n\n if (!key) {\n throw 'key is required.'\n }\n\n const myPreference = await tx.getRepository(Preference).findOne({\n where: { domain: { id: domain.id }, user: { id: user.id }, key }\n })\n\n return await tx.getRepository(Preference).save({\n ...myPreference,\n domain,\n user,\n key,\n preference,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete my preference' })\n async deleteMyPreference(\n @Arg('key') key: string,\n @Arg('element') element: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, user, tx } = context.state\n\n await tx.getRepository(Preference).delete({\n domain: { id: domain.id },\n user: { id: user.id },\n key\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete Preference' })\n async deletePreference(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Preference).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple Preferences' })\n async deletePreferences(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Preference).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n}\n"]}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PreferenceQuery = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const preference_1 = require("./preference");
9
+ const preference_type_1 = require("./preference-type");
10
+ let PreferenceQuery = class PreferenceQuery {
11
+ async preference(id, context) {
12
+ const { domain } = context.state;
13
+ return await (0, shell_1.getRepository)(preference_1.Preference).findOne({
14
+ where: { domain: { id: domain.id }, id }
15
+ });
16
+ }
17
+ async myPreference(key, element, context) {
18
+ const { domain, user } = context.state;
19
+ return await (0, shell_1.getRepository)(preference_1.Preference).findOne({
20
+ where: { domain: { id: domain.id }, user: { id: user.id }, key }
21
+ });
22
+ }
23
+ async myPreferences(params, context) {
24
+ const { domain, user } = context.state;
25
+ const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
26
+ domain,
27
+ params,
28
+ repository: await (0, shell_1.getRepository)(preference_1.Preference),
29
+ searchables: ['key']
30
+ }).andWhere('user.id = :userId', { userId: user.id });
31
+ const [items, total] = await queryBuilder.getManyAndCount();
32
+ return { items, total };
33
+ }
34
+ async domain(preference) {
35
+ return preference.domainId && (await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: preference.domainId }));
36
+ }
37
+ async updater(preference) {
38
+ return preference.updaterId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: preference.updaterId }));
39
+ }
40
+ async creator(preference) {
41
+ return preference.creatorId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: preference.creatorId }));
42
+ }
43
+ };
44
+ tslib_1.__decorate([
45
+ (0, type_graphql_1.Query)(returns => preference_1.Preference, { nullable: true, description: 'To fetch a Preference' }),
46
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
47
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
48
+ tslib_1.__metadata("design:type", Function),
49
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
50
+ tslib_1.__metadata("design:returntype", Promise)
51
+ ], PreferenceQuery.prototype, "preference", null);
52
+ tslib_1.__decorate([
53
+ (0, type_graphql_1.Query)(returns => preference_1.Preference, { nullable: true, description: `To fetch a User's own Preference` }),
54
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('key')),
55
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('element')),
56
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
57
+ tslib_1.__metadata("design:type", Function),
58
+ tslib_1.__metadata("design:paramtypes", [String, String, Object]),
59
+ tslib_1.__metadata("design:returntype", Promise)
60
+ ], PreferenceQuery.prototype, "myPreference", null);
61
+ tslib_1.__decorate([
62
+ (0, type_graphql_1.Query)(returns => preference_type_1.PreferenceList, { description: 'To fetch multiple Preferences' }),
63
+ tslib_1.__param(0, (0, type_graphql_1.Args)()),
64
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
65
+ tslib_1.__metadata("design:type", Function),
66
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
67
+ tslib_1.__metadata("design:returntype", Promise)
68
+ ], PreferenceQuery.prototype, "myPreferences", null);
69
+ tslib_1.__decorate([
70
+ (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
71
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
72
+ tslib_1.__metadata("design:type", Function),
73
+ tslib_1.__metadata("design:paramtypes", [preference_1.Preference]),
74
+ tslib_1.__metadata("design:returntype", Promise)
75
+ ], PreferenceQuery.prototype, "domain", null);
76
+ tslib_1.__decorate([
77
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
78
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
79
+ tslib_1.__metadata("design:type", Function),
80
+ tslib_1.__metadata("design:paramtypes", [preference_1.Preference]),
81
+ tslib_1.__metadata("design:returntype", Promise)
82
+ ], PreferenceQuery.prototype, "updater", null);
83
+ tslib_1.__decorate([
84
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
85
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
86
+ tslib_1.__metadata("design:type", Function),
87
+ tslib_1.__metadata("design:paramtypes", [preference_1.Preference]),
88
+ tslib_1.__metadata("design:returntype", Promise)
89
+ ], PreferenceQuery.prototype, "creator", null);
90
+ PreferenceQuery = tslib_1.__decorate([
91
+ (0, type_graphql_1.Resolver)(preference_1.Preference)
92
+ ], PreferenceQuery);
93
+ exports.PreferenceQuery = PreferenceQuery;
94
+ //# sourceMappingURL=preference-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preference-query.js","sourceRoot":"","sources":["../../../server/service/preference/preference-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmF;AACnF,iDAAuG;AACvG,yDAAgD;AAChD,6CAAyC;AACzC,uDAAkD;AAG3C,IAAM,eAAe,GAArB,MAAM,eAAe;IAEpB,AAAN,KAAK,CAAC,UAAU,CAAY,EAAU,EAAS,OAAwB;QACrE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAC,OAAO,CAAC;YAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,YAAY,CACJ,GAAW,EACP,OAAe,EACxB,OAAY;QAEnB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,OAAO,MAAM,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAC,OAAO,CAAC;YAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE;SACjE,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa,CAAS,MAAiB,EAAS,OAAwB;QAC5E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,uBAAU,CAAC;YAC3C,WAAW,EAAE,CAAC,KAAK,CAAC;SACrB,CAAC,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QAErD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,UAAsB;QACzC,OAAO,UAAU,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACpG,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,UAAsB;QAC1C,OAAO,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IACpG,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,UAAsB;QAC1C,OAAO,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IACpG,CAAC;CACF,CAAA;AAnDO;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,uBAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACtE,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;iDAM7C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,uBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IAE/F,mBAAA,IAAA,kBAAG,EAAC,KAAK,CAAC,CAAA;IACV,mBAAA,IAAA,kBAAG,EAAC,SAAS,CAAC,CAAA;IACd,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;mDAOP;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,gCAAc,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;IAC9D,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;oDAa5C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAa,uBAAU;;6CAE1C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAa,uBAAU;;8CAE3C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAa,uBAAU;;8CAE3C;AApDU,eAAe;IAD3B,IAAA,uBAAQ,EAAC,uBAAU,CAAC;GACR,eAAe,CAqD3B;AArDY,0CAAe","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Preference } from './preference'\nimport { PreferenceList } from './preference-type'\n\n@Resolver(Preference)\nexport class PreferenceQuery {\n @Query(returns => Preference!, { nullable: true, description: 'To fetch a Preference' })\n async preference(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Preference> {\n const { domain } = context.state\n\n return await getRepository(Preference).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => Preference, { nullable: true, description: `To fetch a User's own Preference` })\n async myPreference(\n @Arg('key') key: string,\n @Arg('element') element: string,\n @Ctx() context: any\n ): Promise<Preference> {\n const { domain, user } = context.state\n\n return await getRepository(Preference).findOne({\n where: { domain: { id: domain.id }, user: { id: user.id }, key }\n })\n }\n\n @Query(returns => PreferenceList, { description: 'To fetch multiple Preferences' })\n async myPreferences(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<PreferenceList> {\n const { domain, user } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Preference),\n searchables: ['key']\n }).andWhere('user.id = :userId', { userId: user.id })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() preference: Preference): Promise<Domain> {\n return preference.domainId && (await getRepository(Domain).findOneBy({ id: preference.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() preference: Preference): Promise<User> {\n return preference.updaterId && (await getRepository(User).findOneBy({ id: preference.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() preference: Preference): Promise<User> {\n return preference.creatorId && (await getRepository(User).findOneBy({ id: preference.creatorId }))\n }\n}\n"]}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PreferenceList = exports.PreferencePatch = exports.NewPreference = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const preference_1 = require("./preference");
8
+ let NewPreference = class NewPreference {
9
+ };
10
+ tslib_1.__decorate([
11
+ (0, type_graphql_1.Field)(type => shell_1.ObjectRef),
12
+ tslib_1.__metadata("design:type", shell_1.ObjectRef)
13
+ ], NewPreference.prototype, "user", void 0);
14
+ tslib_1.__decorate([
15
+ (0, type_graphql_1.Field)(),
16
+ tslib_1.__metadata("design:type", String)
17
+ ], NewPreference.prototype, "key", void 0);
18
+ tslib_1.__decorate([
19
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: false }),
20
+ tslib_1.__metadata("design:type", Object)
21
+ ], NewPreference.prototype, "preference", void 0);
22
+ NewPreference = tslib_1.__decorate([
23
+ (0, type_graphql_1.InputType)()
24
+ ], NewPreference);
25
+ exports.NewPreference = NewPreference;
26
+ let PreferencePatch = class PreferencePatch {
27
+ };
28
+ tslib_1.__decorate([
29
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
30
+ tslib_1.__metadata("design:type", String)
31
+ ], PreferencePatch.prototype, "id", void 0);
32
+ tslib_1.__decorate([
33
+ (0, type_graphql_1.Field)(type => shell_1.ObjectRef),
34
+ tslib_1.__metadata("design:type", shell_1.ObjectRef)
35
+ ], PreferencePatch.prototype, "user", void 0);
36
+ tslib_1.__decorate([
37
+ (0, type_graphql_1.Field)(),
38
+ tslib_1.__metadata("design:type", String)
39
+ ], PreferencePatch.prototype, "key", void 0);
40
+ tslib_1.__decorate([
41
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: false }),
42
+ tslib_1.__metadata("design:type", Object)
43
+ ], PreferencePatch.prototype, "preference", void 0);
44
+ tslib_1.__decorate([
45
+ (0, type_graphql_1.Field)({ nullable: true }),
46
+ tslib_1.__metadata("design:type", String)
47
+ ], PreferencePatch.prototype, "cuFlag", void 0);
48
+ PreferencePatch = tslib_1.__decorate([
49
+ (0, type_graphql_1.InputType)()
50
+ ], PreferencePatch);
51
+ exports.PreferencePatch = PreferencePatch;
52
+ let PreferenceList = class PreferenceList {
53
+ };
54
+ tslib_1.__decorate([
55
+ (0, type_graphql_1.Field)(type => [preference_1.Preference]),
56
+ tslib_1.__metadata("design:type", Array)
57
+ ], PreferenceList.prototype, "items", void 0);
58
+ tslib_1.__decorate([
59
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
60
+ tslib_1.__metadata("design:type", Number)
61
+ ], PreferenceList.prototype, "total", void 0);
62
+ PreferenceList = tslib_1.__decorate([
63
+ (0, type_graphql_1.ObjectType)()
64
+ ], PreferenceList);
65
+ exports.PreferenceList = PreferenceList;
66
+ //# sourceMappingURL=preference-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preference-type.js","sourceRoot":"","sources":["../../../server/service/preference/preference-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,iDAA+D;AAE/D,6CAAyC;AAGlC,IAAM,aAAa,GAAnB,MAAM,aAAa;CASzB,CAAA;AARC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC;sCACnB,iBAAS;2CAAA;AAEf;IAAC,IAAA,oBAAK,GAAE;;0CACG;AAEX;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;iDACf;AARvB,aAAa;IADzB,IAAA,wBAAS,GAAE;GACC,aAAa,CASzB;AATY,sCAAa;AAYnB,IAAM,eAAe,GAArB,MAAM,eAAe;CAe3B,CAAA;AAdC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC;sCAClB,iBAAS;6CAAA;AAEhB;IAAC,IAAA,oBAAK,GAAE;;4CACI;AAEZ;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;mDACd;AAEnC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACX;AAdJ,eAAe;IAD3B,IAAA,wBAAS,GAAE;GACC,eAAe,CAe3B;AAfY,0CAAe;AAkBrB,IAAM,cAAc,GAApB,MAAM,cAAc;CAM1B,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,uBAAU,CAAC,CAAC;;6CACT;AAEnB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;6CACN;AALF,cAAc;IAD1B,IAAA,yBAAU,GAAE;GACA,cAAc,CAM1B;AANY,wCAAc","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { Preference } from './preference'\n\n@InputType()\nexport class NewPreference {\n @Field(type => ObjectRef)\n user: ObjectRef\n\n @Field()\n key: string\n\n @Field(type => ScalarObject, { nullable: false })\n preference: { [key: string]: any }\n}\n\n@InputType()\nexport class PreferencePatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field(type => ObjectRef)\n user?: ObjectRef\n\n @Field()\n key?: string\n\n @Field(type => ScalarObject, { nullable: false })\n preference?: { [key: string]: any }\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class PreferenceList {\n @Field(type => [Preference])\n items: Preference[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Preference = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const typeorm_1 = require("typeorm");
6
+ const type_graphql_1 = require("type-graphql");
7
+ const shell_1 = require("@things-factory/shell");
8
+ const auth_base_1 = require("@things-factory/auth-base");
9
+ let Preference = class Preference {
10
+ };
11
+ tslib_1.__decorate([
12
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
13
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
14
+ tslib_1.__metadata("design:type", String)
15
+ ], Preference.prototype, "id", void 0);
16
+ tslib_1.__decorate([
17
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
18
+ (0, type_graphql_1.Field)({ nullable: true }),
19
+ tslib_1.__metadata("design:type", shell_1.Domain)
20
+ ], Preference.prototype, "domain", void 0);
21
+ tslib_1.__decorate([
22
+ (0, typeorm_1.RelationId)((preference) => preference.domain),
23
+ tslib_1.__metadata("design:type", String)
24
+ ], Preference.prototype, "domainId", void 0);
25
+ tslib_1.__decorate([
26
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User),
27
+ (0, type_graphql_1.Field)({ nullable: false }),
28
+ tslib_1.__metadata("design:type", auth_base_1.User)
29
+ ], Preference.prototype, "user", void 0);
30
+ tslib_1.__decorate([
31
+ (0, typeorm_1.RelationId)((preference) => preference.user),
32
+ tslib_1.__metadata("design:type", String)
33
+ ], Preference.prototype, "userId", void 0);
34
+ tslib_1.__decorate([
35
+ (0, typeorm_1.Column)(),
36
+ (0, type_graphql_1.Field)({ nullable: true }),
37
+ tslib_1.__metadata("design:type", String)
38
+ ], Preference.prototype, "key", void 0);
39
+ tslib_1.__decorate([
40
+ (0, typeorm_1.Column)('simple-json', { nullable: true }),
41
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
42
+ tslib_1.__metadata("design:type", Object)
43
+ ], Preference.prototype, "preference", void 0);
44
+ tslib_1.__decorate([
45
+ (0, typeorm_1.CreateDateColumn)(),
46
+ (0, type_graphql_1.Field)({ nullable: true }),
47
+ tslib_1.__metadata("design:type", Date)
48
+ ], Preference.prototype, "createdAt", void 0);
49
+ tslib_1.__decorate([
50
+ (0, typeorm_1.UpdateDateColumn)(),
51
+ (0, type_graphql_1.Field)({ nullable: true }),
52
+ tslib_1.__metadata("design:type", Date)
53
+ ], Preference.prototype, "updatedAt", void 0);
54
+ tslib_1.__decorate([
55
+ (0, typeorm_1.DeleteDateColumn)(),
56
+ (0, type_graphql_1.Field)({ nullable: true }),
57
+ tslib_1.__metadata("design:type", Date)
58
+ ], Preference.prototype, "deletedAt", void 0);
59
+ tslib_1.__decorate([
60
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
61
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
62
+ tslib_1.__metadata("design:type", auth_base_1.User)
63
+ ], Preference.prototype, "creator", void 0);
64
+ tslib_1.__decorate([
65
+ (0, typeorm_1.RelationId)((preference) => preference.creator),
66
+ tslib_1.__metadata("design:type", String)
67
+ ], Preference.prototype, "creatorId", void 0);
68
+ tslib_1.__decorate([
69
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
70
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
71
+ tslib_1.__metadata("design:type", auth_base_1.User)
72
+ ], Preference.prototype, "updater", void 0);
73
+ tslib_1.__decorate([
74
+ (0, typeorm_1.RelationId)((preference) => preference.updater),
75
+ tslib_1.__metadata("design:type", String)
76
+ ], Preference.prototype, "updaterId", void 0);
77
+ Preference = tslib_1.__decorate([
78
+ (0, typeorm_1.Entity)(),
79
+ (0, typeorm_1.Index)('ix_preference_0', (preference) => [preference.domain, preference.user], {
80
+ unique: true,
81
+ where: '"deleted_at" IS NULL'
82
+ }),
83
+ (0, type_graphql_1.ObjectType)({ description: 'Entity for Preference' })
84
+ ], Preference);
85
+ exports.Preference = Preference;
86
+ //# sourceMappingURL=preference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preference.js","sourceRoot":"","sources":["../../../server/service/preference/preference.ts"],"names":[],"mappings":";;;;AAAA,qCAUgB;AAChB,+CAAoD;AAEpD,iDAA4D;AAC5D,yDAAgD;AAQzC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAoDtB,CAAA;AAnDC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;sCACC;AAEnB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,cAAM;0CAAA;AAEf;IAAC,IAAA,oBAAU,EAAC,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;;4CACzC;AAEjB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACvB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;sCACrB,gBAAI;wCAAA;AAEV;IAAC,IAAA,oBAAU,EAAC,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;;0CAC1C;AAEd;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACd;AAEZ;IAAC,IAAA,gBAAM,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACb;AAEnC;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;6CAAA;AAEhB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;6CAAA;AAEhB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;6CAAA;AAEhB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;2CAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;;6CACzC;AAElB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;2CAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;;6CACzC;AAnDP,UAAU;IANtB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,iBAAiB,EAAE,CAAC,UAAsB,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE;QAC1F,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,sBAAsB;KAC9B,CAAC;IACD,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;GACxC,UAAU,CAoDtB;AApDY,gCAAU","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, ID } from 'type-graphql'\n\nimport { Domain, ScalarObject } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\n@Entity()\n@Index('ix_preference_0', (preference: Preference) => [preference.domain, preference.user], {\n unique: true,\n where: '\"deleted_at\" IS NULL'\n})\n@ObjectType({ description: 'Entity for Preference' })\nexport class Preference {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((preference: Preference) => preference.domain)\n domainId?: string\n\n @ManyToOne(type => User)\n @Field({ nullable: false })\n user: User\n\n @RelationId((preference: Preference) => preference.user)\n userId: string\n\n @Column()\n @Field({ nullable: true })\n key?: string\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n preference?: { [key: string]: any }\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((preference: Preference) => preference.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((preference: Preference) => preference.updater)\n updaterId?: string\n}\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.subscribers = exports.resolvers = exports.entities = void 0;
4
+ const user_preference_1 = require("./user-preference");
5
+ const user_preference_query_1 = require("./user-preference-query");
6
+ const user_preference_mutation_1 = require("./user-preference-mutation");
7
+ exports.entities = [user_preference_1.UserPreference];
8
+ exports.resolvers = [user_preference_query_1.UserPreferenceQuery, user_preference_mutation_1.UserPreferenceMutation];
9
+ exports.subscribers = [];
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/user-preference/index.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAClD,mEAA6D;AAC7D,yEAAmE;AAEtD,QAAA,QAAQ,GAAG,CAAC,gCAAc,CAAC,CAAA;AAC3B,QAAA,SAAS,GAAG,CAAC,2CAAmB,EAAE,iDAAsB,CAAC,CAAA;AACzD,QAAA,WAAW,GAAG,EAAE,CAAA","sourcesContent":["import { UserPreference } from './user-preference'\nimport { UserPreferenceQuery } from './user-preference-query'\nimport { UserPreferenceMutation } from './user-preference-mutation'\n\nexport const entities = [UserPreference]\nexport const resolvers = [UserPreferenceQuery, UserPreferenceMutation]\nexport const subscribers = []\n"]}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserPreferenceMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const typeorm_1 = require("typeorm");
7
+ const shell_1 = require("@things-factory/shell");
8
+ const user_preference_1 = require("./user-preference");
9
+ const user_preference_type_1 = require("./user-preference-type");
10
+ let UserPreferenceMutation = class UserPreferenceMutation {
11
+ async createUserPreference(preference, context) {
12
+ const { domain, user, tx } = context.state;
13
+ return await tx.getRepository(user_preference_1.UserPreference).save(Object.assign(Object.assign({}, preference), { domain, creator: user, updater: user }));
14
+ }
15
+ async updateUserPreference(id, patch, context) {
16
+ const { domain, user, tx } = context.state;
17
+ const repository = tx.getRepository(user_preference_1.UserPreference);
18
+ const preference = await repository.findOne({
19
+ where: { domain: { id: domain.id }, id }
20
+ });
21
+ return await repository.save(Object.assign(Object.assign(Object.assign({}, preference), patch), { updater: user }));
22
+ }
23
+ async updateMyUserPreference(key, preference, context) {
24
+ const { domain, user, tx } = context.state;
25
+ if (!key) {
26
+ throw 'key is required.';
27
+ }
28
+ const myUserPreference = await tx.getRepository(user_preference_1.UserPreference).findOne({
29
+ where: { domain: { id: domain.id }, user: { id: user.id }, key }
30
+ });
31
+ return await tx.getRepository(user_preference_1.UserPreference).save(Object.assign(Object.assign({}, myUserPreference), { domain,
32
+ user,
33
+ key,
34
+ preference, creator: user, updater: user }));
35
+ }
36
+ async deleteMyUserPreference(key, element, context) {
37
+ const { domain, user, tx } = context.state;
38
+ await tx.getRepository(user_preference_1.UserPreference).delete({
39
+ domain: { id: domain.id },
40
+ user: { id: user.id },
41
+ key
42
+ });
43
+ return true;
44
+ }
45
+ async deleteUserPreference(id, context) {
46
+ const { domain, tx } = context.state;
47
+ await tx.getRepository(user_preference_1.UserPreference).delete({ domain: { id: domain.id }, id });
48
+ return true;
49
+ }
50
+ async deleteUserPreferences(ids, context) {
51
+ const { domain, tx } = context.state;
52
+ await tx.getRepository(user_preference_1.UserPreference).delete({
53
+ domain: { id: domain.id },
54
+ id: (0, typeorm_1.In)(ids)
55
+ });
56
+ return true;
57
+ }
58
+ };
59
+ tslib_1.__decorate([
60
+ (0, type_graphql_1.Directive)('@transaction'),
61
+ (0, type_graphql_1.Mutation)(returns => user_preference_1.UserPreference, { description: 'To create new UserPreference' }),
62
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('preference')),
63
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
64
+ tslib_1.__metadata("design:type", Function),
65
+ tslib_1.__metadata("design:paramtypes", [user_preference_type_1.NewUserPreference, Object]),
66
+ tslib_1.__metadata("design:returntype", Promise)
67
+ ], UserPreferenceMutation.prototype, "createUserPreference", null);
68
+ tslib_1.__decorate([
69
+ (0, type_graphql_1.Directive)('@transaction'),
70
+ (0, type_graphql_1.Mutation)(returns => user_preference_1.UserPreference, { description: 'To modify UserPreference information' }),
71
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
72
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
73
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
74
+ tslib_1.__metadata("design:type", Function),
75
+ tslib_1.__metadata("design:paramtypes", [String, user_preference_type_1.UserPreferencePatch, Object]),
76
+ tslib_1.__metadata("design:returntype", Promise)
77
+ ], UserPreferenceMutation.prototype, "updateUserPreference", null);
78
+ tslib_1.__decorate([
79
+ (0, type_graphql_1.Directive)('@transaction'),
80
+ (0, type_graphql_1.Mutation)(returns => user_preference_1.UserPreference, { description: 'To create or update my preference' }),
81
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('key')),
82
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('preference', type => shell_1.ScalarObject)),
83
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
84
+ tslib_1.__metadata("design:type", Function),
85
+ tslib_1.__metadata("design:paramtypes", [String, Object, Object]),
86
+ tslib_1.__metadata("design:returntype", Promise)
87
+ ], UserPreferenceMutation.prototype, "updateMyUserPreference", null);
88
+ tslib_1.__decorate([
89
+ (0, type_graphql_1.Directive)('@transaction'),
90
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete my preference' }),
91
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('key')),
92
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('element')),
93
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
94
+ tslib_1.__metadata("design:type", Function),
95
+ tslib_1.__metadata("design:paramtypes", [String, String, Object]),
96
+ tslib_1.__metadata("design:returntype", Promise)
97
+ ], UserPreferenceMutation.prototype, "deleteMyUserPreference", null);
98
+ tslib_1.__decorate([
99
+ (0, type_graphql_1.Directive)('@transaction'),
100
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete UserPreference' }),
101
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
102
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
103
+ tslib_1.__metadata("design:type", Function),
104
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
105
+ tslib_1.__metadata("design:returntype", Promise)
106
+ ], UserPreferenceMutation.prototype, "deleteUserPreference", null);
107
+ tslib_1.__decorate([
108
+ (0, type_graphql_1.Directive)('@transaction'),
109
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple UserPreferences' }),
110
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
111
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
112
+ tslib_1.__metadata("design:type", Function),
113
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
114
+ tslib_1.__metadata("design:returntype", Promise)
115
+ ], UserPreferenceMutation.prototype, "deleteUserPreferences", null);
116
+ UserPreferenceMutation = tslib_1.__decorate([
117
+ (0, type_graphql_1.Resolver)(user_preference_1.UserPreference)
118
+ ], UserPreferenceMutation);
119
+ exports.UserPreferenceMutation = UserPreferenceMutation;
120
+ //# sourceMappingURL=user-preference-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-preference-mutation.js","sourceRoot":"","sources":["../../../server/service/user-preference/user-preference-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAE5B,iDAAoD;AAEpD,uDAAkD;AAClD,iEAA+E;AAGxE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAG3B,AAAN,KAAK,CAAC,oBAAoB,CACL,UAA6B,EACzC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,IAAI,iCAC7C,UAAU,KACb,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,oBAAoB,CACb,EAAU,EACP,KAA0B,EACjC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAA;QACnD,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,+CACvB,UAAU,GACV,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,sBAAsB,CACd,GAAW,EACkB,UAAkC,EACpE,OAAY;QAEnB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,kBAAkB,CAAA;SACzB;QAED,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,OAAO,CAAC;YACtE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE;SACjE,CAAC,CAAA;QAEF,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,IAAI,iCAC7C,gBAAgB,KACnB,MAAM;YACN,IAAI;YACJ,GAAG;YACH,UAAU,EACV,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,sBAAsB,CACd,GAAW,EACP,OAAe,EACxB,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,MAAM,CAAC;YAC5C,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,GAAG;SACJ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,oBAAoB,CAAY,EAAU,EAAS,OAAwB;QAC/E,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAEhF,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,qBAAqB,CACK,GAAa,EACpC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,MAAM,CAAC;YAC5C,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA1GO;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,gCAAc,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAElF,mBAAA,IAAA,kBAAG,EAAC,YAAY,CAAC,CAAA;IACjB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CADyB,wCAAiB;;kEAWjD;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,gCAAc,EAAE,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;IAE1F,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IACZ,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADe,0CAAmB;;kEAezC;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,gCAAc,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;IAEvF,mBAAA,IAAA,kBAAG,EAAC,KAAK,CAAC,CAAA;IACV,mBAAA,IAAA,kBAAG,EAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,oBAAY,CAAC,CAAA;IACvC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;oEAqBP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;IAEtE,mBAAA,IAAA,kBAAG,EAAC,KAAK,CAAC,CAAA;IACV,mBAAA,IAAA,kBAAG,EAAC,SAAS,CAAC,CAAA;IACd,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;oEAWP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAC9C,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;kEAMvD;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;IAEjF,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;mEAUP;AA5GU,sBAAsB;IADlC,IAAA,uBAAQ,EAAC,gCAAc,CAAC;GACZ,sBAAsB,CA6GlC;AA7GY,wDAAsB","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { ScalarObject } from '@things-factory/shell'\n\nimport { UserPreference } from './user-preference'\nimport { NewUserPreference, UserPreferencePatch } from './user-preference-type'\n\n@Resolver(UserPreference)\nexport class UserPreferenceMutation {\n @Directive('@transaction')\n @Mutation(returns => UserPreference, { description: 'To create new UserPreference' })\n async createUserPreference(\n @Arg('preference') preference: NewUserPreference,\n @Ctx() context: ResolverContext\n ): Promise<UserPreference> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(UserPreference).save({\n ...preference,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => UserPreference, { description: 'To modify UserPreference information' })\n async updateUserPreference(\n @Arg('id') id: string,\n @Arg('patch') patch: UserPreferencePatch,\n @Ctx() context: ResolverContext\n ): Promise<UserPreference> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(UserPreference)\n const preference = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n return await repository.save({\n ...preference,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => UserPreference, { description: 'To create or update my preference' })\n async updateMyUserPreference(\n @Arg('key') key: string,\n @Arg('preference', type => ScalarObject) preference: { [key: string]: any },\n @Ctx() context: any\n ): Promise<UserPreference> {\n const { domain, user, tx } = context.state\n\n if (!key) {\n throw 'key is required.'\n }\n\n const myUserPreference = await tx.getRepository(UserPreference).findOne({\n where: { domain: { id: domain.id }, user: { id: user.id }, key }\n })\n\n return await tx.getRepository(UserPreference).save({\n ...myUserPreference,\n domain,\n user,\n key,\n preference,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete my preference' })\n async deleteMyUserPreference(\n @Arg('key') key: string,\n @Arg('element') element: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, user, tx } = context.state\n\n await tx.getRepository(UserPreference).delete({\n domain: { id: domain.id },\n user: { id: user.id },\n key\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete UserPreference' })\n async deleteUserPreference(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(UserPreference).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple UserPreferences' })\n async deleteUserPreferences(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(UserPreference).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n}\n"]}