@things-factory/personalization 7.0.1-alpha.63 → 7.0.1-alpha.64

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 (51) hide show
  1. package/client/grid-preference-editor.ts +8 -8
  2. package/client/index.ts +2 -0
  3. package/client/page-preference-provider-impl.ts +63 -0
  4. package/client/types.ts +8 -0
  5. package/dist-client/grid-preference-editor.d.ts +1 -1
  6. package/dist-client/grid-preference-editor.js +8 -8
  7. package/dist-client/grid-preference-editor.js.map +1 -1
  8. package/dist-client/index.d.ts +2 -0
  9. package/dist-client/index.js +2 -1
  10. package/dist-client/index.js.map +1 -1
  11. package/dist-client/page-preference-provider-impl.d.ts +17 -0
  12. package/dist-client/page-preference-provider-impl.js +52 -0
  13. package/dist-client/page-preference-provider-impl.js.map +1 -0
  14. package/dist-client/tsconfig.tsbuildinfo +1 -1
  15. package/dist-client/types.d.ts +15 -0
  16. package/dist-client/types.js +2 -0
  17. package/dist-client/types.js.map +1 -0
  18. package/dist-server/service/index.js +4 -4
  19. package/dist-server/service/index.js.map +1 -1
  20. package/dist-server/service/page-preference/index.js +9 -0
  21. package/dist-server/service/page-preference/index.js.map +1 -0
  22. package/dist-server/service/{screen-preference/screen-preference-mutation.js → page-preference/page-preference-mutation.js} +39 -39
  23. package/dist-server/service/page-preference/page-preference-mutation.js.map +1 -0
  24. package/dist-server/service/page-preference/page-preference-query.js +94 -0
  25. package/dist-server/service/page-preference/page-preference-query.js.map +1 -0
  26. package/dist-server/service/{screen-preference/screen-preference-type.js → page-preference/page-preference-type.js} +28 -28
  27. package/dist-server/service/page-preference/page-preference-type.js.map +1 -0
  28. package/dist-server/service/{screen-preference/screen-preference.js → page-preference/page-preference.js} +30 -30
  29. package/dist-server/service/page-preference/page-preference.js.map +1 -0
  30. package/dist-server/tsconfig.tsbuildinfo +1 -1
  31. package/helps/personalization/screen-preference.md +1 -1
  32. package/package.json +4 -4
  33. package/server/service/index.ts +4 -4
  34. package/server/service/page-preference/index.ts +6 -0
  35. package/server/service/page-preference/page-preference-mutation.ts +101 -0
  36. package/server/service/page-preference/page-preference-query.ts +61 -0
  37. package/server/service/{screen-preference/screen-preference-type.ts → page-preference/page-preference-type.ts} +8 -8
  38. package/server/service/{screen-preference/screen-preference.ts → page-preference/page-preference.ts} +13 -13
  39. package/dist-server/migrations/index.js +0 -12
  40. package/dist-server/migrations/index.js.map +0 -1
  41. package/dist-server/service/screen-preference/index.js +0 -9
  42. package/dist-server/service/screen-preference/index.js.map +0 -1
  43. package/dist-server/service/screen-preference/screen-preference-mutation.js.map +0 -1
  44. package/dist-server/service/screen-preference/screen-preference-query.js +0 -94
  45. package/dist-server/service/screen-preference/screen-preference-query.js.map +0 -1
  46. package/dist-server/service/screen-preference/screen-preference-type.js.map +0 -1
  47. package/dist-server/service/screen-preference/screen-preference.js.map +0 -1
  48. package/server/migrations/index.ts +0 -9
  49. package/server/service/screen-preference/index.ts +0 -6
  50. package/server/service/screen-preference/screen-preference-mutation.ts +0 -101
  51. package/server/service/screen-preference/screen-preference-query.ts +0 -61
@@ -1,4 +1,4 @@
1
- # ScreenPreference
1
+ # PagePreference
2
2
 
3
3
  Paragraphs are separated by a blank line.
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/personalization",
3
- "version": "7.0.1-alpha.63",
3
+ "version": "7.0.1-alpha.64",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -32,8 +32,8 @@
32
32
  "@operato/i18n": "^2.0.0-alpha.0",
33
33
  "@operato/shell": "^2.0.0-alpha.0",
34
34
  "@operato/styles": "^2.0.0-alpha.0",
35
- "@things-factory/auth-base": "7.0.1-alpha.60",
36
- "@things-factory/shell": "7.0.1-alpha.55"
35
+ "@things-factory/auth-base": "^7.0.1-alpha.64",
36
+ "@things-factory/shell": "^7.0.1-alpha.64"
37
37
  },
38
- "gitHead": "79f8b01bf5a1c34de919c25ecbf5b57a83c88ebd"
38
+ "gitHead": "d9d40222a2a4b8f9360ffb8baab6a78e84f84c1c"
39
39
  }
@@ -1,12 +1,12 @@
1
1
  /* EXPORT ENTITY TYPES */
2
- export * from './screen-preference/screen-preference'
2
+ export * from './page-preference/page-preference'
3
3
 
4
4
  /* IMPORT ENTITIES AND RESOLVERS */
5
- import { entities as ScreenPreferenceEntities, resolvers as ScreenPreferenceResolvers } from './screen-preference'
5
+ import { entities as PagePreferenceEntities, resolvers as PagePreferenceResolvers } from './page-preference'
6
6
 
7
7
  export const entities = [
8
8
  /* ENTITIES */
9
- ...ScreenPreferenceEntities
9
+ ...PagePreferenceEntities
10
10
  ]
11
11
 
12
12
  export const subscribers = [
@@ -16,6 +16,6 @@ export const subscribers = [
16
16
  export const schema = {
17
17
  resolverClasses: [
18
18
  /* RESOLVER CLASSES */
19
- ...ScreenPreferenceResolvers
19
+ ...PagePreferenceResolvers
20
20
  ]
21
21
  }
@@ -0,0 +1,6 @@
1
+ import { PagePreference } from './page-preference'
2
+ import { PagePreferenceQuery } from './page-preference-query'
3
+ import { PagePreferenceMutation } from './page-preference-mutation'
4
+
5
+ export const entities = [PagePreference]
6
+ export const resolvers = [PagePreferenceQuery, PagePreferenceMutation]
@@ -0,0 +1,101 @@
1
+ import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
+ import { In } from 'typeorm'
3
+
4
+ import { ScalarObject } from '@things-factory/shell'
5
+
6
+ import { PagePreference } from './page-preference'
7
+ import { NewPagePreference, PagePreferencePatch } from './page-preference-type'
8
+
9
+ @Resolver(PagePreference)
10
+ export class PagePreferenceMutation {
11
+ @Directive('@transaction')
12
+ @Mutation(returns => PagePreference, { description: 'To create my new PagePreference' })
13
+ async createMyPagePreference(
14
+ @Arg('pagePreference') pagePreference: NewPagePreference,
15
+ @Ctx() context: ResolverContext
16
+ ): Promise<PagePreference> {
17
+ const { domain, user, tx } = context.state
18
+
19
+ return await tx.getRepository(PagePreference).save({
20
+ ...pagePreference,
21
+ domain,
22
+ creator: user,
23
+ updater: user
24
+ })
25
+ }
26
+
27
+ @Directive('@transaction')
28
+ @Mutation(returns => PagePreference, { description: 'To create or update my PagePreference' })
29
+ async updateMyPagePreference(
30
+ @Arg('page') page: string,
31
+ @Arg('element') element: string,
32
+ @Arg('preference', type => ScalarObject) preference: { [key: string]: any },
33
+ @Ctx() context: any
34
+ ): Promise<PagePreference> {
35
+ const { domain, user, tx } = context.state
36
+
37
+ if (!page || !element) {
38
+ throw 'page and element are required.'
39
+ }
40
+
41
+ const pagePreference = await tx.getRepository(PagePreference).findOne({
42
+ where: { domain: { id: domain.id }, user: { id: user.id }, page, element }
43
+ })
44
+
45
+ return await tx.getRepository(PagePreference).save({
46
+ ...pagePreference,
47
+ domain,
48
+ user,
49
+ page,
50
+ element,
51
+ preference,
52
+ creator: user,
53
+ updater: user
54
+ })
55
+ }
56
+
57
+ @Directive('@transaction')
58
+ @Mutation(returns => Boolean, { description: 'To delete my PagePreference' })
59
+ async deleteMyPagePreference(
60
+ @Arg('page') page: string,
61
+ @Arg('element') element: string,
62
+ @Ctx() context: ResolverContext
63
+ ): Promise<boolean> {
64
+ const { domain, user, tx } = context.state
65
+
66
+ await tx.getRepository(PagePreference).delete({
67
+ domain: { id: domain.id },
68
+ user: { id: user.id },
69
+ page,
70
+ element
71
+ })
72
+
73
+ return true
74
+ }
75
+
76
+ @Directive('@transaction')
77
+ @Mutation(returns => Boolean, { description: 'To delete PagePreference' })
78
+ async deletePagePreference(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
79
+ const { domain, tx } = context.state
80
+
81
+ await tx.getRepository(PagePreference).delete({ domain: { id: domain.id }, id })
82
+
83
+ return true
84
+ }
85
+
86
+ @Directive('@transaction')
87
+ @Mutation(returns => Boolean, { description: 'To delete multiple PagePreferences' })
88
+ async deletePagePreferences(
89
+ @Arg('ids', type => [String]) ids: string[],
90
+ @Ctx() context: ResolverContext
91
+ ): Promise<boolean> {
92
+ const { domain, tx } = context.state
93
+
94
+ await tx.getRepository(PagePreference).delete({
95
+ domain: { id: domain.id },
96
+ id: In(ids)
97
+ })
98
+
99
+ return true
100
+ }
101
+ }
@@ -0,0 +1,61 @@
1
+ import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'
2
+ import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
3
+ import { User } from '@things-factory/auth-base'
4
+ import { PagePreference } from './page-preference'
5
+ import { PagePreferenceList } from './page-preference-type'
6
+
7
+ @Resolver(PagePreference)
8
+ export class PagePreferenceQuery {
9
+ @Query(returns => PagePreference!, { nullable: true, description: 'To fetch a PagePreference' })
10
+ async pagePreference(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<PagePreference> {
11
+ const { domain } = context.state
12
+
13
+ return await getRepository(PagePreference).findOne({
14
+ where: { domain: { id: domain.id }, id }
15
+ })
16
+ }
17
+
18
+ @Query(returns => PagePreference, { nullable: true, description: `To fetch a User's own Gridpersonalize` })
19
+ async myPagePreference(
20
+ @Arg('page') page: string,
21
+ @Arg('element') element: string,
22
+ @Ctx() context: any
23
+ ): Promise<PagePreference> {
24
+ const { domain, user } = context.state
25
+
26
+ return await getRepository(PagePreference).findOne({
27
+ where: { domain: { id: domain.id }, user: { id: user.id }, page, element }
28
+ })
29
+ }
30
+
31
+ @Query(returns => PagePreferenceList, { description: 'To fetch multiple PagePreferences' })
32
+ async myPagePreferences(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<PagePreferenceList> {
33
+ const { domain, user } = context.state
34
+
35
+ const queryBuilder = getQueryBuilderFromListParams({
36
+ domain,
37
+ params,
38
+ repository: await getRepository(PagePreference),
39
+ searchables: ['page']
40
+ }).andWhere('user.id = :userId', { userId: user.id })
41
+
42
+ const [items, total] = await queryBuilder.getManyAndCount()
43
+
44
+ return { items, total }
45
+ }
46
+
47
+ @FieldResolver(type => Domain)
48
+ async domain(@Root() pagePreference: PagePreference): Promise<Domain> {
49
+ return pagePreference.domainId && (await getRepository(Domain).findOneBy({ id: pagePreference.domainId }))
50
+ }
51
+
52
+ @FieldResolver(type => User)
53
+ async updater(@Root() pagePreference: PagePreference): Promise<User> {
54
+ return pagePreference.updaterId && (await getRepository(User).findOneBy({ id: pagePreference.updaterId }))
55
+ }
56
+
57
+ @FieldResolver(type => User)
58
+ async creator(@Root() pagePreference: PagePreference): Promise<User> {
59
+ return pagePreference.creatorId && (await getRepository(User).findOneBy({ id: pagePreference.creatorId }))
60
+ }
61
+ }
@@ -2,15 +2,15 @@ import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'
2
2
 
3
3
  import { ObjectRef, ScalarObject } from '@things-factory/shell'
4
4
 
5
- import { ScreenPreference } from './screen-preference'
5
+ import { PagePreference } from './page-preference'
6
6
 
7
7
  @InputType()
8
- export class NewScreenPreference {
8
+ export class NewPagePreference {
9
9
  @Field(type => ObjectRef)
10
10
  user: ObjectRef
11
11
 
12
12
  @Field({ nullable: true })
13
- route?: string
13
+ page?: string
14
14
 
15
15
  @Field({ nullable: true })
16
16
  element?: string
@@ -20,7 +20,7 @@ export class NewScreenPreference {
20
20
  }
21
21
 
22
22
  @InputType()
23
- export class ScreenPreferencePatch {
23
+ export class PagePreferencePatch {
24
24
  @Field(type => ID, { nullable: true })
25
25
  id?: string
26
26
 
@@ -28,7 +28,7 @@ export class ScreenPreferencePatch {
28
28
  user: ObjectRef
29
29
 
30
30
  @Field({ nullable: true })
31
- route?: string
31
+ page?: string
32
32
 
33
33
  @Field({ nullable: true })
34
34
  element?: string
@@ -41,9 +41,9 @@ export class ScreenPreferencePatch {
41
41
  }
42
42
 
43
43
  @ObjectType()
44
- export class ScreenPreferenceList {
45
- @Field(type => [ScreenPreference])
46
- items: ScreenPreference[]
44
+ export class PagePreferenceList {
45
+ @Field(type => [PagePreference])
46
+ items: PagePreference[]
47
47
 
48
48
  @Field(type => Int)
49
49
  total: number
@@ -15,19 +15,19 @@ import { User } from '@things-factory/auth-base'
15
15
 
16
16
  @Entity()
17
17
  @Index(
18
- 'ix_screen_preference_0',
19
- (screenPreference: ScreenPreference) => [
20
- screenPreference.domain,
21
- screenPreference.user,
22
- screenPreference.route,
23
- screenPreference.element
18
+ 'ix_page_preference_0',
19
+ (pagePreference: PagePreference) => [
20
+ pagePreference.domain,
21
+ pagePreference.user,
22
+ pagePreference.page,
23
+ pagePreference.element
24
24
  ],
25
25
  {
26
26
  unique: true
27
27
  }
28
28
  )
29
- @ObjectType({ description: 'Entity for ScreenPreference' })
30
- export class ScreenPreference {
29
+ @ObjectType({ description: 'Entity for PagePreference' })
30
+ export class PagePreference {
31
31
  @PrimaryGeneratedColumn('uuid')
32
32
  @Field(type => ID)
33
33
  readonly id: string
@@ -36,19 +36,19 @@ export class ScreenPreference {
36
36
  @Field({ nullable: true })
37
37
  domain?: Domain
38
38
 
39
- @RelationId((screenPreference: ScreenPreference) => screenPreference.domain)
39
+ @RelationId((pagePreference: PagePreference) => pagePreference.domain)
40
40
  domainId?: string
41
41
 
42
42
  @ManyToOne(type => User)
43
43
  @Field({ nullable: false })
44
44
  user: User
45
45
 
46
- @RelationId((screenPreference: ScreenPreference) => screenPreference.user)
46
+ @RelationId((pagePreference: PagePreference) => pagePreference.user)
47
47
  userId: string
48
48
 
49
49
  @Column({ nullable: true })
50
50
  @Field({ nullable: true })
51
- route: string
51
+ page: string
52
52
 
53
53
  @Column({ nullable: true })
54
54
  @Field({ nullable: true })
@@ -70,13 +70,13 @@ export class ScreenPreference {
70
70
  @Field(type => User, { nullable: true })
71
71
  creator?: User
72
72
 
73
- @RelationId((screenPreference: ScreenPreference) => screenPreference.creator)
73
+ @RelationId((pagePreference: PagePreference) => pagePreference.creator)
74
74
  creatorId?: string
75
75
 
76
76
  @ManyToOne(type => User, { nullable: true })
77
77
  @Field(type => User, { nullable: true })
78
78
  updater?: User
79
79
 
80
- @RelationId((screenPreference: ScreenPreference) => screenPreference.updater)
80
+ @RelationId((pagePreference: PagePreference) => pagePreference.updater)
81
81
  updaterId?: string
82
82
  }
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.migrations = void 0;
4
- const glob = require('glob');
5
- const path = require('path');
6
- exports.migrations = [];
7
- glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function (file) {
8
- if (file.indexOf('index.js') !== -1)
9
- return;
10
- exports.migrations = exports.migrations.concat(Object.values(require(path.resolve(file))) || []);
11
- });
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/migrations/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB,QAAA,UAAU,GAAG,EAAE,CAAA;AAE1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;IACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAE,OAAM;IAC3C,kBAAU,GAAG,kBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA","sourcesContent":["const glob = require('glob')\nconst path = require('path')\n\nexport var migrations = []\n\nglob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {\n if (file.indexOf('index.js') !== -1) return\n migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])\n})\n"]}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolvers = exports.entities = void 0;
4
- const screen_preference_1 = require("./screen-preference");
5
- const screen_preference_query_1 = require("./screen-preference-query");
6
- const screen_preference_mutation_1 = require("./screen-preference-mutation");
7
- exports.entities = [screen_preference_1.ScreenPreference];
8
- exports.resolvers = [screen_preference_query_1.ScreenPreferenceQuery, screen_preference_mutation_1.ScreenPreferenceMutation];
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/screen-preference/index.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AACtD,uEAAiE;AACjE,6EAAuE;AAE1D,QAAA,QAAQ,GAAG,CAAC,oCAAgB,CAAC,CAAA;AAC7B,QAAA,SAAS,GAAG,CAAC,+CAAqB,EAAE,qDAAwB,CAAC,CAAA","sourcesContent":["import { ScreenPreference } from './screen-preference'\nimport { ScreenPreferenceQuery } from './screen-preference-query'\nimport { ScreenPreferenceMutation } from './screen-preference-mutation'\n\nexport const entities = [ScreenPreference]\nexport const resolvers = [ScreenPreferenceQuery, ScreenPreferenceMutation]\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"screen-preference-mutation.js","sourceRoot":"","sources":["../../../server/service/screen-preference/screen-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 { ScreenPreference } from './screen-preference'\nimport { NewScreenPreference, ScreenPreferencePatch } from './screen-preference-type'\n\n@Resolver(ScreenPreference)\nexport class ScreenPreferenceMutation {\n @Directive('@transaction')\n @Mutation(returns => ScreenPreference, { description: 'To create my new ScreenPreference' })\n async createMyScreenPreference(\n @Arg('screenPreference') screenPreference: NewScreenPreference,\n @Ctx() context: ResolverContext\n ): Promise<ScreenPreference> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(ScreenPreference).save({\n ...screenPreference,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => ScreenPreference, { description: 'To create or update my ScreenPreference' })\n async updateMyScreenPreference(\n @Arg('route') route: string,\n @Arg('element') element: string,\n @Arg('preference', type => ScalarObject) preference: { [key: string]: any },\n @Ctx() context: any\n ): Promise<ScreenPreference> {\n const { domain, user, tx } = context.state\n\n if (!route || !element) {\n throw 'route and element are required.'\n }\n\n const screenPreference = await tx.getRepository(ScreenPreference).findOne({\n where: { domain: { id: domain.id }, user: { id: user.id }, route, element }\n })\n\n return await tx.getRepository(ScreenPreference).save({\n ...screenPreference,\n domain,\n user,\n route,\n element,\n preference,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete my ScreenPreference' })\n async deleteMyScreenPreference(\n @Arg('route') route: 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(ScreenPreference).delete({\n domain: { id: domain.id },\n user: { id: user.id },\n route,\n element\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ScreenPreference' })\n async deleteScreenPreference(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ScreenPreference).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple ScreenPreferences' })\n async deleteScreenPreferences(\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(ScreenPreference).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n}\n"]}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScreenPreferenceQuery = 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 screen_preference_1 = require("./screen-preference");
9
- const screen_preference_type_1 = require("./screen-preference-type");
10
- let ScreenPreferenceQuery = class ScreenPreferenceQuery {
11
- async screenPreference(id, context) {
12
- const { domain } = context.state;
13
- return await (0, shell_1.getRepository)(screen_preference_1.ScreenPreference).findOne({
14
- where: { domain: { id: domain.id }, id }
15
- });
16
- }
17
- async myScreenPreference(route, element, context) {
18
- const { domain, user } = context.state;
19
- return await (0, shell_1.getRepository)(screen_preference_1.ScreenPreference).findOne({
20
- where: { domain: { id: domain.id }, user: { id: user.id }, route, element }
21
- });
22
- }
23
- async myScreenPreferences(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)(screen_preference_1.ScreenPreference),
29
- searchables: ['route']
30
- }).andWhere('user.id = :userId', { userId: user.id });
31
- const [items, total] = await queryBuilder.getManyAndCount();
32
- return { items, total };
33
- }
34
- async domain(screenPreference) {
35
- return screenPreference.domainId && (await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: screenPreference.domainId }));
36
- }
37
- async updater(screenPreference) {
38
- return screenPreference.updaterId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: screenPreference.updaterId }));
39
- }
40
- async creator(screenPreference) {
41
- return screenPreference.creatorId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: screenPreference.creatorId }));
42
- }
43
- };
44
- tslib_1.__decorate([
45
- (0, type_graphql_1.Query)(returns => screen_preference_1.ScreenPreference, { nullable: true, description: 'To fetch a ScreenPreference' }),
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
- ], ScreenPreferenceQuery.prototype, "screenPreference", null);
52
- tslib_1.__decorate([
53
- (0, type_graphql_1.Query)(returns => screen_preference_1.ScreenPreference, { nullable: true, description: `To fetch a User's own Gridpersonalize` }),
54
- tslib_1.__param(0, (0, type_graphql_1.Arg)('route')),
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
- ], ScreenPreferenceQuery.prototype, "myScreenPreference", null);
61
- tslib_1.__decorate([
62
- (0, type_graphql_1.Query)(returns => screen_preference_type_1.ScreenPreferenceList, { description: 'To fetch multiple ScreenPreferences' }),
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
- ], ScreenPreferenceQuery.prototype, "myScreenPreferences", 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", [screen_preference_1.ScreenPreference]),
74
- tslib_1.__metadata("design:returntype", Promise)
75
- ], ScreenPreferenceQuery.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", [screen_preference_1.ScreenPreference]),
81
- tslib_1.__metadata("design:returntype", Promise)
82
- ], ScreenPreferenceQuery.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", [screen_preference_1.ScreenPreference]),
88
- tslib_1.__metadata("design:returntype", Promise)
89
- ], ScreenPreferenceQuery.prototype, "creator", null);
90
- ScreenPreferenceQuery = tslib_1.__decorate([
91
- (0, type_graphql_1.Resolver)(screen_preference_1.ScreenPreference)
92
- ], ScreenPreferenceQuery);
93
- exports.ScreenPreferenceQuery = ScreenPreferenceQuery;
94
- //# sourceMappingURL=screen-preference-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"screen-preference-query.js","sourceRoot":"","sources":["../../../server/service/screen-preference/screen-preference-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ScreenPreference } from './screen-preference'\nimport { ScreenPreferenceList } from './screen-preference-type'\n\n@Resolver(ScreenPreference)\nexport class ScreenPreferenceQuery {\n @Query(returns => ScreenPreference!, { nullable: true, description: 'To fetch a ScreenPreference' })\n async screenPreference(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<ScreenPreference> {\n const { domain } = context.state\n\n return await getRepository(ScreenPreference).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => ScreenPreference, { nullable: true, description: `To fetch a User's own Gridpersonalize` })\n async myScreenPreference(\n @Arg('route') route: string,\n @Arg('element') element: string,\n @Ctx() context: any\n ): Promise<ScreenPreference> {\n const { domain, user } = context.state\n\n return await getRepository(ScreenPreference).findOne({\n where: { domain: { id: domain.id }, user: { id: user.id }, route, element }\n })\n }\n\n @Query(returns => ScreenPreferenceList, { description: 'To fetch multiple ScreenPreferences' })\n async myScreenPreferences(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ScreenPreferenceList> {\n const { domain, user } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(ScreenPreference),\n searchables: ['route']\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() screenPreference: ScreenPreference): Promise<Domain> {\n return screenPreference.domainId && (await getRepository(Domain).findOneBy({ id: screenPreference.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() screenPreference: ScreenPreference): Promise<User> {\n return screenPreference.updaterId && (await getRepository(User).findOneBy({ id: screenPreference.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() screenPreference: ScreenPreference): Promise<User> {\n return screenPreference.creatorId && (await getRepository(User).findOneBy({ id: screenPreference.creatorId }))\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"screen-preference-type.js","sourceRoot":"","sources":["../../../server/service/screen-preference/screen-preference-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AAEpE,iDAA+D;AAE/D,2DAAsD;AAG/C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAY/B,CAAA;AAXC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC;sCACnB,iBAAS;iDAAA;AAEf;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;uDACf;AAXvB,mBAAmB;IAD/B,IAAA,wBAAS,GAAE;GACC,mBAAmB,CAY/B;AAZY,kDAAmB;AAezB,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAkBjC,CAAA;AAjBC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC;sCACnB,iBAAS;mDAAA;AAEf;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;yDACf;AAElC;IAAC,IAAA,oBAAK,GAAE;;qDACM;AAjBH,qBAAqB;IADjC,IAAA,wBAAS,GAAE;GACC,qBAAqB,CAkBjC;AAlBY,sDAAqB;AAqB3B,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAMhC,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oCAAgB,CAAC,CAAC;;mDACT;AAEzB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;mDACN;AALF,oBAAoB;IADhC,IAAA,yBAAU,GAAE;GACA,oBAAoB,CAMhC;AANY,oDAAoB","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\n\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { ScreenPreference } from './screen-preference'\n\n@InputType()\nexport class NewScreenPreference {\n @Field(type => ObjectRef)\n user: ObjectRef\n\n @Field({ nullable: true })\n route?: string\n\n @Field({ nullable: true })\n element?: string\n\n @Field(type => ScalarObject, { nullable: false })\n preference: { [key: string]: any }\n}\n\n@InputType()\nexport class ScreenPreferencePatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field(type => ObjectRef)\n user: ObjectRef\n\n @Field({ nullable: true })\n route?: string\n\n @Field({ nullable: true })\n element?: string\n\n @Field(type => ScalarObject, { nullable: false })\n preference: { [key: string]: any }\n\n @Field()\n cuFlag: string\n}\n\n@ObjectType()\nexport class ScreenPreferenceList {\n @Field(type => [ScreenPreference])\n items: ScreenPreference[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"screen-preference.js","sourceRoot":"","sources":["../../../server/service/screen-preference/screen-preference.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\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(\n 'ix_screen_preference_0',\n (screenPreference: ScreenPreference) => [\n screenPreference.domain,\n screenPreference.user,\n screenPreference.route,\n screenPreference.element\n ],\n {\n unique: true\n }\n)\n@ObjectType({ description: 'Entity for ScreenPreference' })\nexport class ScreenPreference {\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((screenPreference: ScreenPreference) => screenPreference.domain)\n domainId?: string\n\n @ManyToOne(type => User)\n @Field({ nullable: false })\n user: User\n\n @RelationId((screenPreference: ScreenPreference) => screenPreference.user)\n userId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n route: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n element: 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 @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((screenPreference: ScreenPreference) => screenPreference.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((screenPreference: ScreenPreference) => screenPreference.updater)\n updaterId?: string\n}\n"]}
@@ -1,9 +0,0 @@
1
- const glob = require('glob')
2
- const path = require('path')
3
-
4
- export var migrations = []
5
-
6
- glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {
7
- if (file.indexOf('index.js') !== -1) return
8
- migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])
9
- })
@@ -1,6 +0,0 @@
1
- import { ScreenPreference } from './screen-preference'
2
- import { ScreenPreferenceQuery } from './screen-preference-query'
3
- import { ScreenPreferenceMutation } from './screen-preference-mutation'
4
-
5
- export const entities = [ScreenPreference]
6
- export const resolvers = [ScreenPreferenceQuery, ScreenPreferenceMutation]
@@ -1,101 +0,0 @@
1
- import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
- import { In } from 'typeorm'
3
-
4
- import { ScalarObject } from '@things-factory/shell'
5
-
6
- import { ScreenPreference } from './screen-preference'
7
- import { NewScreenPreference, ScreenPreferencePatch } from './screen-preference-type'
8
-
9
- @Resolver(ScreenPreference)
10
- export class ScreenPreferenceMutation {
11
- @Directive('@transaction')
12
- @Mutation(returns => ScreenPreference, { description: 'To create my new ScreenPreference' })
13
- async createMyScreenPreference(
14
- @Arg('screenPreference') screenPreference: NewScreenPreference,
15
- @Ctx() context: ResolverContext
16
- ): Promise<ScreenPreference> {
17
- const { domain, user, tx } = context.state
18
-
19
- return await tx.getRepository(ScreenPreference).save({
20
- ...screenPreference,
21
- domain,
22
- creator: user,
23
- updater: user
24
- })
25
- }
26
-
27
- @Directive('@transaction')
28
- @Mutation(returns => ScreenPreference, { description: 'To create or update my ScreenPreference' })
29
- async updateMyScreenPreference(
30
- @Arg('route') route: string,
31
- @Arg('element') element: string,
32
- @Arg('preference', type => ScalarObject) preference: { [key: string]: any },
33
- @Ctx() context: any
34
- ): Promise<ScreenPreference> {
35
- const { domain, user, tx } = context.state
36
-
37
- if (!route || !element) {
38
- throw 'route and element are required.'
39
- }
40
-
41
- const screenPreference = await tx.getRepository(ScreenPreference).findOne({
42
- where: { domain: { id: domain.id }, user: { id: user.id }, route, element }
43
- })
44
-
45
- return await tx.getRepository(ScreenPreference).save({
46
- ...screenPreference,
47
- domain,
48
- user,
49
- route,
50
- element,
51
- preference,
52
- creator: user,
53
- updater: user
54
- })
55
- }
56
-
57
- @Directive('@transaction')
58
- @Mutation(returns => Boolean, { description: 'To delete my ScreenPreference' })
59
- async deleteMyScreenPreference(
60
- @Arg('route') route: string,
61
- @Arg('element') element: string,
62
- @Ctx() context: ResolverContext
63
- ): Promise<boolean> {
64
- const { domain, user, tx } = context.state
65
-
66
- await tx.getRepository(ScreenPreference).delete({
67
- domain: { id: domain.id },
68
- user: { id: user.id },
69
- route,
70
- element
71
- })
72
-
73
- return true
74
- }
75
-
76
- @Directive('@transaction')
77
- @Mutation(returns => Boolean, { description: 'To delete ScreenPreference' })
78
- async deleteScreenPreference(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
79
- const { domain, tx } = context.state
80
-
81
- await tx.getRepository(ScreenPreference).delete({ domain: { id: domain.id }, id })
82
-
83
- return true
84
- }
85
-
86
- @Directive('@transaction')
87
- @Mutation(returns => Boolean, { description: 'To delete multiple ScreenPreferences' })
88
- async deleteScreenPreferences(
89
- @Arg('ids', type => [String]) ids: string[],
90
- @Ctx() context: ResolverContext
91
- ): Promise<boolean> {
92
- const { domain, tx } = context.state
93
-
94
- await tx.getRepository(ScreenPreference).delete({
95
- domain: { id: domain.id },
96
- id: In(ids)
97
- })
98
-
99
- return true
100
- }
101
- }