@things-factory/worklist-client 8.0.0-beta.9 → 8.0.2

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 (44) hide show
  1. package/client/bootstrap.ts +1 -0
  2. package/client/index.ts +0 -0
  3. package/client/pages/work-center/work-center-importer.ts +87 -0
  4. package/client/pages/work-center/work-center-list-page.ts +323 -0
  5. package/client/pages/work-center/work-center-page.ts +95 -0
  6. package/client/route.ts +7 -0
  7. package/client/tsconfig.json +13 -0
  8. package/dist-client/tsconfig.tsbuildinfo +1 -1
  9. package/dist-server/tsconfig.tsbuildinfo +1 -1
  10. package/package.json +7 -7
  11. package/server/controllers/activity-registry.ts +17 -0
  12. package/server/controllers/graphql-client.ts +67 -0
  13. package/server/controllers/index.ts +4 -0
  14. package/server/controllers/webhooks/decorators.ts +18 -0
  15. package/server/controllers/webhooks/index.ts +30 -0
  16. package/server/controllers/work-center/connect-work-center.ts +15 -0
  17. package/server/controllers/work-center/get-work-center.ts +9 -0
  18. package/server/controllers/work-center/index.ts +2 -0
  19. package/server/controllers/worklist-api/assign-activity-thread.ts +3 -0
  20. package/server/controllers/worklist-api/draft-activity-instance.ts +3 -0
  21. package/server/controllers/worklist-api/get-activity-list.ts +3 -0
  22. package/server/controllers/worklist-api/get-activity.ts +3 -0
  23. package/server/controllers/worklist-api/get-todo-list.ts +4 -0
  24. package/server/controllers/worklist-api/index.ts +8 -0
  25. package/server/controllers/worklist-api/register-activity.ts +3 -0
  26. package/server/controllers/worklist-api/unregister-activity.ts +3 -0
  27. package/server/controllers/worklist-api/update-activity.ts +3 -0
  28. package/server/index.ts +3 -0
  29. package/server/routes.ts +46 -0
  30. package/server/service/activity/activity-model-type.ts +106 -0
  31. package/server/service/activity/activity-mutation.ts +85 -0
  32. package/server/service/activity/activity-query.ts +64 -0
  33. package/server/service/activity/activity-type.ts +134 -0
  34. package/server/service/activity/activity.ts +133 -0
  35. package/server/service/activity/index.ts +6 -0
  36. package/server/service/index.ts +36 -0
  37. package/server/service/work-center/event-subscriber.ts +17 -0
  38. package/server/service/work-center/index.ts +9 -0
  39. package/server/service/work-center/work-center-history.ts +120 -0
  40. package/server/service/work-center/work-center-mutation.ts +198 -0
  41. package/server/service/work-center/work-center-query.ts +65 -0
  42. package/server/service/work-center/work-center-type.ts +61 -0
  43. package/server/service/work-center/work-center.ts +75 -0
  44. package/server/tsconfig.json +10 -0
@@ -0,0 +1,65 @@
1
+ import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'
2
+ import { Attachment } from '@things-factory/attachment-base'
3
+ import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
4
+ import { User } from '@things-factory/auth-base'
5
+ import { WorkCenter } from './work-center'
6
+ import { WorkCenterList } from './work-center-type'
7
+
8
+ @Resolver(WorkCenter)
9
+ export class WorkCenterQuery {
10
+ @Query(returns => WorkCenter!, { nullable: true, description: 'To fetch a WorkCenter' })
11
+ async workCenter(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<WorkCenter> {
12
+ const { domain } = context.state
13
+
14
+ return await getRepository(WorkCenter).findOne({
15
+ where: { domain: { id: domain.id }, id }
16
+ })
17
+ }
18
+
19
+ @Query(returns => WorkCenterList, { description: 'To fetch multiple WorkCenters' })
20
+ async workCenters(
21
+ @Args(type => ListParam) params: ListParam,
22
+ @Ctx() context: ResolverContext
23
+ ): Promise<WorkCenterList> {
24
+ const { domain } = context.state
25
+
26
+ const queryBuilder = getQueryBuilderFromListParams({
27
+ domain,
28
+ params,
29
+ repository: await getRepository(WorkCenter),
30
+ searchables: ['name', 'description']
31
+ })
32
+
33
+ const [items, total] = await queryBuilder.getManyAndCount()
34
+
35
+ return { items, total }
36
+ }
37
+
38
+ @FieldResolver(type => String)
39
+ async thumbnail(@Root() workCenter: WorkCenter): Promise<string | undefined> {
40
+ const attachment: Attachment = await getRepository(Attachment).findOne({
41
+ where: {
42
+ domain: { id: workCenter.domainId },
43
+ refType: WorkCenter.name,
44
+ refBy: workCenter.id
45
+ }
46
+ })
47
+
48
+ return attachment?.fullpath
49
+ }
50
+
51
+ @FieldResolver(type => Domain)
52
+ async domain(@Root() workCenter: WorkCenter): Promise<Domain> {
53
+ return await getRepository(Domain).findOneBy({ id: workCenter.domainId })
54
+ }
55
+
56
+ @FieldResolver(type => User)
57
+ async updater(@Root() workCenter: WorkCenter): Promise<User> {
58
+ return await getRepository(User).findOneBy({ id: workCenter.updaterId })
59
+ }
60
+
61
+ @FieldResolver(type => User)
62
+ async creator(@Root() workCenter: WorkCenter): Promise<User> {
63
+ return await getRepository(User).findOneBy({ id: workCenter.creatorId })
64
+ }
65
+ }
@@ -0,0 +1,61 @@
1
+ import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'
2
+ import GraphQLUpload from 'graphql-upload/GraphQLUpload.js'
3
+ import { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'
4
+
5
+ import { ObjectRef, ScalarObject } from '@things-factory/shell'
6
+
7
+ import { WorkCenter, WorkCenterStatus } from './work-center'
8
+
9
+ @InputType()
10
+ export class NewWorkCenter {
11
+ @Field()
12
+ name: string
13
+
14
+ @Field({ nullable: true })
15
+ description?: string
16
+
17
+ @Field(type => WorkCenterStatus, { nullable: true })
18
+ state?: WorkCenterStatus
19
+
20
+ @Field({ nullable: true })
21
+ active?: boolean
22
+
23
+ @Field({ nullable: true })
24
+ params?: string
25
+
26
+ @Field(type => GraphQLUpload, { nullable: true })
27
+ thumbnail?: FileUpload
28
+ }
29
+
30
+ @InputType()
31
+ export class WorkCenterPatch {
32
+ @Field(type => ID, { nullable: true })
33
+ id?: string
34
+
35
+ @Field({ nullable: true })
36
+ name?: string
37
+
38
+ @Field({ nullable: true })
39
+ description?: string
40
+
41
+ @Field(type => WorkCenterStatus, { nullable: true })
42
+ state?: WorkCenterStatus
43
+
44
+ @Field({ nullable: true })
45
+ active?: boolean
46
+
47
+ @Field(type => GraphQLUpload, { nullable: true })
48
+ thumbnail?: FileUpload
49
+
50
+ @Field({ nullable: true })
51
+ cuFlag?: string
52
+ }
53
+
54
+ @ObjectType()
55
+ export class WorkCenterList {
56
+ @Field(type => [WorkCenter])
57
+ items: WorkCenter[]
58
+
59
+ @Field(type => Int)
60
+ total: number
61
+ }
@@ -0,0 +1,75 @@
1
+ import {
2
+ CreateDateColumn,
3
+ UpdateDateColumn,
4
+ Entity,
5
+ Index,
6
+ Column,
7
+ RelationId,
8
+ ManyToOne,
9
+ PrimaryGeneratedColumn,
10
+ VersionColumn
11
+ } from 'typeorm'
12
+ import { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'
13
+
14
+ import { Domain } from '@things-factory/shell'
15
+ import { User } from '@things-factory/auth-base'
16
+
17
+ export enum WorkCenterStatus {
18
+ STATUS_A = 'STATUS_A',
19
+ STATUS_B = 'STATUS_B'
20
+ }
21
+
22
+ registerEnumType(WorkCenterStatus, {
23
+ name: 'WorkCenterStatus',
24
+ description: 'state enumeration of a workCenter'
25
+ })
26
+
27
+ @Entity()
28
+ @Index('ix_work_center_0', (workCenter: WorkCenter) => [workCenter.domain], { unique: true })
29
+ @ObjectType({ description: 'Entity for WorkCenter' })
30
+ export class WorkCenter {
31
+ @PrimaryGeneratedColumn('uuid')
32
+ @Field(type => ID)
33
+ readonly id: string
34
+
35
+ @VersionColumn()
36
+ @Field({ nullable: true })
37
+ version?: number = 1
38
+
39
+ @ManyToOne(type => Domain)
40
+ @Field(type => Domain)
41
+ domain?: Domain
42
+
43
+ @RelationId((workCenter: WorkCenter) => workCenter.domain)
44
+ domainId?: string
45
+
46
+ @Column()
47
+ @Field({ nullable: true })
48
+ workCenterId?: string
49
+
50
+ @Column()
51
+ @Field({ nullable: true })
52
+ name?: string
53
+
54
+ @CreateDateColumn()
55
+ @Field({ nullable: true })
56
+ createdAt?: Date
57
+
58
+ @UpdateDateColumn()
59
+ @Field({ nullable: true })
60
+ updatedAt?: Date
61
+
62
+ @ManyToOne(type => User, { nullable: true })
63
+ @Field(type => User, { nullable: true })
64
+ creator?: User
65
+
66
+ @RelationId((workCenter: WorkCenter) => workCenter.creator)
67
+ creatorId?: string
68
+
69
+ @ManyToOne(type => User, { nullable: true })
70
+ @Field(type => User, { nullable: true })
71
+ updater?: User
72
+
73
+ @RelationId((workCenter: WorkCenter) => workCenter.updater)
74
+ updaterId?: string
75
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "../../tsconfig-base.json",
3
+ "compilerOptions": {
4
+ "strict": false,
5
+ "module": "commonjs",
6
+ "outDir": "../dist-server",
7
+ "baseUrl": "./"
8
+ },
9
+ "include": ["./**/*"]
10
+ }