@things-factory/worklist-client 8.0.38 → 9.0.0-9.0.0-beta.59.0

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/dist-client/tsconfig.tsbuildinfo +1 -1
  2. package/dist-server/tsconfig.tsbuildinfo +1 -1
  3. package/package.json +7 -7
  4. package/client/bootstrap.ts +0 -1
  5. package/client/index.ts +0 -0
  6. package/client/pages/work-center/work-center-importer.ts +0 -87
  7. package/client/pages/work-center/work-center-list-page.ts +0 -323
  8. package/client/pages/work-center/work-center-page.ts +0 -95
  9. package/client/route.ts +0 -7
  10. package/client/tsconfig.json +0 -13
  11. package/server/controllers/activity-registry.ts +0 -17
  12. package/server/controllers/graphql-client.ts +0 -67
  13. package/server/controllers/index.ts +0 -4
  14. package/server/controllers/webhooks/decorators.ts +0 -18
  15. package/server/controllers/webhooks/index.ts +0 -30
  16. package/server/controllers/work-center/connect-work-center.ts +0 -15
  17. package/server/controllers/work-center/get-work-center.ts +0 -9
  18. package/server/controllers/work-center/index.ts +0 -2
  19. package/server/controllers/worklist-api/assign-activity-thread.ts +0 -3
  20. package/server/controllers/worklist-api/draft-activity-instance.ts +0 -3
  21. package/server/controllers/worklist-api/get-activity-list.ts +0 -3
  22. package/server/controllers/worklist-api/get-activity.ts +0 -3
  23. package/server/controllers/worklist-api/get-todo-list.ts +0 -4
  24. package/server/controllers/worklist-api/index.ts +0 -8
  25. package/server/controllers/worklist-api/register-activity.ts +0 -3
  26. package/server/controllers/worklist-api/unregister-activity.ts +0 -3
  27. package/server/controllers/worklist-api/update-activity.ts +0 -3
  28. package/server/index.ts +0 -3
  29. package/server/routes.ts +0 -46
  30. package/server/service/activity/activity-model-type.ts +0 -106
  31. package/server/service/activity/activity-mutation.ts +0 -85
  32. package/server/service/activity/activity-query.ts +0 -64
  33. package/server/service/activity/activity-type.ts +0 -134
  34. package/server/service/activity/activity.ts +0 -133
  35. package/server/service/activity/index.ts +0 -6
  36. package/server/service/index.ts +0 -36
  37. package/server/service/work-center/event-subscriber.ts +0 -17
  38. package/server/service/work-center/index.ts +0 -9
  39. package/server/service/work-center/work-center-history.ts +0 -120
  40. package/server/service/work-center/work-center-mutation.ts +0 -198
  41. package/server/service/work-center/work-center-query.ts +0 -65
  42. package/server/service/work-center/work-center-type.ts +0 -61
  43. package/server/service/work-center/work-center.ts +0 -75
  44. package/server/tsconfig.json +0 -10
@@ -1,36 +0,0 @@
1
- /* EXPORT ENTITY TYPES */
2
- export * from './activity/activity'
3
- export * from './work-center/work-center'
4
-
5
- /* IMPORT ENTITIES AND RESOLVERS */
6
- import {
7
- entities as ActivityEntities,
8
- resolvers as ActivityResolvers,
9
- subscribers as ActivitySubscribers
10
- } from './activity'
11
-
12
- import {
13
- entities as WorkCenterEntities,
14
- resolvers as WorkCenterResolvers,
15
- subscribers as WorkCenterSubscribers
16
- } from './work-center'
17
-
18
- export const entities = [
19
- /* ENTITIES */
20
- ...ActivityEntities,
21
- ...WorkCenterEntities
22
- ]
23
-
24
- export const subscribers = [
25
- /* SUBSCRIBERS */
26
- ...ActivitySubscribers,
27
- ...WorkCenterSubscribers
28
- ]
29
-
30
- export const schema = {
31
- resolverClasses: [
32
- /* RESOLVER CLASSES */
33
- ...ActivityResolvers,
34
- ...WorkCenterResolvers
35
- ]
36
- }
@@ -1,17 +0,0 @@
1
- import { EventSubscriber } from 'typeorm'
2
-
3
- import { HistoryEntitySubscriber } from '@operato/typeorm-history'
4
-
5
- import { WorkCenter } from './work-center'
6
- import { WorkCenterHistory } from './work-center-history'
7
-
8
- @EventSubscriber()
9
- export class WorkCenterHistoryEntitySubscriber extends HistoryEntitySubscriber<WorkCenter, WorkCenterHistory> {
10
- public get entity() {
11
- return WorkCenter
12
- }
13
-
14
- public get historyEntity() {
15
- return WorkCenterHistory
16
- }
17
- }
@@ -1,9 +0,0 @@
1
- import { WorkCenter } from './work-center'
2
- import { WorkCenterHistory } from './work-center-history'
3
- import { WorkCenterQuery } from './work-center-query'
4
- import { WorkCenterMutation } from './work-center-mutation'
5
- import { WorkCenterHistoryEntitySubscriber } from './event-subscriber'
6
-
7
- export const entities = [WorkCenter, WorkCenterHistory]
8
- export const resolvers = [WorkCenterQuery, WorkCenterMutation]
9
- export const subscribers = [WorkCenterHistoryEntitySubscriber]
@@ -1,120 +0,0 @@
1
- import { Field, ID, ObjectType } from 'type-graphql'
2
- import { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'
3
-
4
- import {
5
- HistoryActionColumn,
6
- HistoryActionType,
7
- HistoryEntityInterface,
8
- HistoryOriginalIdColumn
9
- } from '@operato/typeorm-history'
10
- import { Role, User } from '@things-factory/auth-base'
11
- import { config } from '@things-factory/env'
12
- import { Domain } from '@things-factory/shell'
13
-
14
- import { WorkCenter, WorkCenterStatus } from './work-center'
15
-
16
- const ORMCONFIG = config.get('ormconfig', {})
17
- const DATABASE_TYPE = ORMCONFIG.type
18
-
19
- @Entity()
20
- @Index(
21
- 'ix_work-center_history_0',
22
- (workCenterHistory: WorkCenterHistory) => [workCenterHistory.originalId, workCenterHistory.version],
23
- { unique: true }
24
- )
25
- @Index(
26
- 'ix_work-center_history_1',
27
- (workCenterHistory: WorkCenterHistory) => [
28
- workCenterHistory.domain,
29
- workCenterHistory.originalId,
30
- workCenterHistory.version
31
- ],
32
- { unique: true }
33
- )
34
- @ObjectType({ description: 'History Entity of WorkCenter' })
35
- export class WorkCenterHistory implements HistoryEntityInterface<WorkCenter> {
36
- @PrimaryGeneratedColumn('uuid')
37
- @Field(type => ID)
38
- readonly id: string
39
-
40
- @Column({ nullable: true, default: 1 })
41
- @Field({ nullable: true })
42
- version?: number = 1
43
-
44
- @ManyToOne(type => Domain)
45
- @Field(type => Domain)
46
- domain?: Domain
47
-
48
- @RelationId((workCenter: WorkCenter) => workCenter.domain)
49
- domainId?: string
50
-
51
- @Column()
52
- @Field()
53
- name: string
54
-
55
- @Column({ nullable: true })
56
- @Field({ nullable: true })
57
- description?: string
58
-
59
- @Column({ nullable: true })
60
- @Field({ nullable: true })
61
- active?: boolean
62
-
63
- @Column({ nullable: true })
64
- @Field({ nullable: true })
65
- state?: WorkCenterStatus
66
-
67
- @Column({ nullable: true })
68
- @Field({ nullable: true })
69
- params?: string
70
-
71
- @Column({ nullable: true })
72
- @Field({ nullable: true })
73
- createdAt?: Date
74
-
75
- @Column({ nullable: true })
76
- @Field({ nullable: true })
77
- updatedAt?: Date
78
-
79
- @Column({ nullable: true })
80
- @Field({ nullable: true })
81
- deletedAt?: Date
82
-
83
- @ManyToOne(type => User, { nullable: true })
84
- @Field(type => User, { nullable: true })
85
- creator?: User
86
-
87
- @RelationId((workCenter: WorkCenter) => workCenter.creator)
88
- creatorId?: string
89
-
90
- @ManyToOne(type => User, { nullable: true })
91
- @Field(type => User, { nullable: true })
92
- updater?: User
93
-
94
- @RelationId((workCenter: WorkCenter) => workCenter.updater)
95
- updaterId?: string
96
-
97
- @Field(type => String, { nullable: true })
98
- thumbnail?: string
99
-
100
- @HistoryOriginalIdColumn()
101
- public originalId!: string
102
-
103
- @HistoryActionColumn({
104
- nullable: false,
105
- type:
106
- DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
107
- ? 'enum'
108
- : DATABASE_TYPE == 'oracle'
109
- ? 'varchar2'
110
- : DATABASE_TYPE == 'mssql'
111
- ? 'nvarchar'
112
- : 'varchar',
113
- enum:
114
- DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
115
- ? HistoryActionType
116
- : undefined,
117
- length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 10
118
- })
119
- public action!: HistoryActionType
120
- }
@@ -1,198 +0,0 @@
1
- import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
- import { In } from 'typeorm'
3
-
4
- import { createAttachment, deleteAttachmentsByRef } from '@things-factory/attachment-base'
5
-
6
- import { WorkCenter } from './work-center'
7
- import { NewWorkCenter, WorkCenterPatch } from './work-center-type'
8
-
9
- @Resolver(WorkCenter)
10
- export class WorkCenterMutation {
11
- @Directive('@transaction')
12
- @Mutation(returns => WorkCenter, { description: 'To create new WorkCenter' })
13
- async createWorkCenter(@Arg('workCenter') workCenter: NewWorkCenter, @Ctx() context: ResolverContext): Promise<WorkCenter> {
14
- const { domain, user, tx } = context.state
15
-
16
- const result = await tx.getRepository(WorkCenter).save({
17
- ...workCenter,
18
- domain,
19
- creator: user,
20
- updater: user
21
- })
22
-
23
- if (workCenter.thumbnail) {
24
- await createAttachment(
25
- null,
26
- {
27
- attachment: {
28
- file: workCenter.thumbnail,
29
- refType: WorkCenter.name,
30
- refBy: result.id
31
- }
32
- },
33
- context
34
- )
35
- }
36
-
37
- return result
38
- }
39
-
40
- @Directive('@transaction')
41
- @Mutation(returns => WorkCenter, { description: 'To modify WorkCenter information' })
42
- async updateWorkCenter(
43
- @Arg('id') id: string,
44
- @Arg('patch') patch: WorkCenterPatch,
45
- @Ctx() context: ResolverContext
46
- ): Promise<WorkCenter> {
47
- const { domain, user, tx } = context.state
48
-
49
- const repository = tx.getRepository(WorkCenter)
50
- const workCenter = await repository.findOne({
51
- where: { domain: { id: domain.id }, id }
52
- })
53
-
54
- const result = await repository.save({
55
- ...workCenter,
56
- ...patch,
57
- updater: user
58
- })
59
-
60
- if (patch.thumbnail) {
61
- await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)
62
- await createAttachment(
63
- null,
64
- {
65
- attachment: {
66
- file: patch.thumbnail,
67
- refType: WorkCenter.name,
68
- refBy: result.id
69
- }
70
- },
71
- context
72
- )
73
- }
74
-
75
- return result
76
- }
77
-
78
- @Directive('@transaction')
79
- @Mutation(returns => [WorkCenter], { description: "To modify multiple WorkCenters' information" })
80
- async updateMultipleWorkCenter(
81
- @Arg('patches', type => [WorkCenterPatch]) patches: WorkCenterPatch[],
82
- @Ctx() context: ResolverContext
83
- ): Promise<WorkCenter[]> {
84
- const { domain, user, tx } = context.state
85
-
86
- let results = []
87
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
88
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
89
- const workCenterRepo = tx.getRepository(WorkCenter)
90
-
91
- if (_createRecords.length > 0) {
92
- for (let i = 0; i < _createRecords.length; i++) {
93
- const newRecord = _createRecords[i]
94
-
95
- const result = await workCenterRepo.save({
96
- ...newRecord,
97
- domain,
98
- creator: user,
99
- updater: user
100
- })
101
-
102
- if (newRecord.thumbnail) {
103
- await createAttachment(
104
- null,
105
- {
106
- attachment: {
107
- file: newRecord.thumbnail,
108
- refType: WorkCenter.name,
109
- refBy: result.id
110
- }
111
- },
112
- context
113
- )
114
- }
115
-
116
- results.push({ ...result, cuFlag: '+' })
117
- }
118
- }
119
-
120
- if (_updateRecords.length > 0) {
121
- for (let i = 0; i < _updateRecords.length; i++) {
122
- const updateRecord = _updateRecords[i]
123
- const workCenter = await workCenterRepo.findOneBy({ id: updateRecord.id })
124
-
125
- const result = await workCenterRepo.save({
126
- ...workCenter,
127
- ...updateRecord,
128
- updater: user
129
- })
130
-
131
- if (updateRecord.thumbnail) {
132
- await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)
133
- await createAttachment(
134
- null,
135
- {
136
- attachment: {
137
- file: updateRecord.thumbnail,
138
- refType: WorkCenter.name,
139
- refBy: result.id
140
- }
141
- },
142
- context
143
- )
144
- }
145
-
146
- results.push({ ...result, cuFlag: 'M' })
147
- }
148
- }
149
-
150
- return results
151
- }
152
-
153
- @Directive('@transaction')
154
- @Mutation(returns => Boolean, { description: 'To delete WorkCenter' })
155
- async deleteWorkCenter(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
156
- const { domain, tx } = context.state
157
-
158
- await tx.getRepository(WorkCenter).delete({ domain: { id: domain.id }, id })
159
- await deleteAttachmentsByRef(null, { refBys: [id] }, context)
160
-
161
- return true
162
- }
163
-
164
- @Directive('@transaction')
165
- @Mutation(returns => Boolean, { description: 'To delete multiple WorkCenters' })
166
- async deleteWorkCenters(
167
- @Arg('ids', type => [String]) ids: string[],
168
- @Ctx() context: ResolverContext
169
- ): Promise<boolean> {
170
- const { domain, tx } = context.state
171
-
172
- await tx.getRepository(WorkCenter).delete({
173
- domain: { id: domain.id },
174
- id: In(ids)
175
- })
176
-
177
- await deleteAttachmentsByRef(null, { refBys: ids }, context)
178
-
179
- return true
180
- }
181
-
182
- @Directive('@transaction')
183
- @Mutation(returns => Boolean, { description: 'To import multiple WorkCenters' })
184
- async importWorkCenters(
185
- @Arg('workCenters', type => [WorkCenterPatch]) workCenters: WorkCenterPatch[],
186
- @Ctx() context: ResolverContext
187
- ): Promise<boolean> {
188
- const { domain, tx } = context.state
189
-
190
- await Promise.all(
191
- workCenters.map(async (workCenter: WorkCenterPatch) => {
192
- const createdWorkCenter: WorkCenter = await tx.getRepository(WorkCenter).save({ domain, ...workCenter })
193
- })
194
- )
195
-
196
- return true
197
- }
198
- }
@@ -1,65 +0,0 @@
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
- }
@@ -1,61 +0,0 @@
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
- }
@@ -1,75 +0,0 @@
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
- }
@@ -1,10 +0,0 @@
1
- {
2
- "extends": "../../tsconfig-base.json",
3
- "compilerOptions": {
4
- "strict": false,
5
- "module": "commonjs",
6
- "outDir": "../dist-server",
7
- "baseUrl": "./"
8
- },
9
- "include": ["./**/*"]
10
- }