@things-factory/dataset 8.0.0 → 9.0.0-beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. package/dist-client/activities/activity-data-review-edit.d.ts +5 -1
  2. package/dist-client/activities/activity-data-review-edit.js +143 -5
  3. package/dist-client/activities/activity-data-review-edit.js.map +1 -1
  4. package/dist-client/pages/data-entry/data-entry-list-page.js +2 -2
  5. package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
  6. package/dist-client/tsconfig.tsbuildinfo +1 -1
  7. package/dist-server/activities/activity-data-review.js +18 -5
  8. package/dist-server/activities/activity-data-review.js.map +1 -1
  9. package/dist-server/activities/activity-ooc-review.js +13 -52
  10. package/dist-server/activities/activity-ooc-review.js.map +1 -1
  11. package/dist-server/controllers/create-data-ooc.d.ts +4 -0
  12. package/dist-server/controllers/create-data-ooc.js +65 -0
  13. package/dist-server/controllers/create-data-ooc.js.map +1 -0
  14. package/dist-server/controllers/create-data-sample.js +4 -94
  15. package/dist-server/controllers/create-data-sample.js.map +1 -1
  16. package/dist-server/controllers/index.d.ts +3 -0
  17. package/dist-server/controllers/index.js +3 -0
  18. package/dist-server/controllers/index.js.map +1 -1
  19. package/dist-server/controllers/issue-ooc-resolve.d.ts +3 -0
  20. package/dist-server/controllers/issue-ooc-resolve.js +49 -0
  21. package/dist-server/controllers/issue-ooc-resolve.js.map +1 -0
  22. package/dist-server/controllers/issue-ooc-review.d.ts +3 -0
  23. package/dist-server/controllers/issue-ooc-review.js +47 -0
  24. package/dist-server/controllers/issue-ooc-review.js.map +1 -0
  25. package/dist-server/service/data-sample/data-sample-query.d.ts +1 -1
  26. package/dist-server/service/data-sample/data-sample-query.js +3 -3
  27. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  28. package/dist-server/service/index.d.ts +1 -1
  29. package/dist-server/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +26 -26
  31. package/translations/en.json +3 -0
  32. package/translations/ja.json +3 -0
  33. package/translations/ko.json +3 -0
  34. package/translations/ms.json +3 -0
  35. package/translations/zh.json +3 -0
  36. package/client/activities/activity-data-collect-edit.ts +0 -105
  37. package/client/activities/activity-data-collect-view.ts +0 -91
  38. package/client/activities/activity-data-review-edit.ts +0 -133
  39. package/client/activities/activity-data-review-view.ts +0 -145
  40. package/client/activities/activity-ooc-resolve-edit.ts +0 -195
  41. package/client/activities/activity-ooc-resolve-view.ts +0 -143
  42. package/client/activities/activity-ooc-review-edit.ts +0 -173
  43. package/client/activities/activity-ooc-review-view.ts +0 -129
  44. package/client/bootstrap.ts +0 -35
  45. package/client/components/data-entry-form.ts +0 -109
  46. package/client/index.ts +0 -1
  47. package/client/pages/data-archive/data-archive-list-page.ts +0 -277
  48. package/client/pages/data-archive/data-archive-request-popup.ts +0 -177
  49. package/client/pages/data-entry/data-entry-list-page.ts +0 -464
  50. package/client/pages/data-key-set/data-key-item-list.ts +0 -183
  51. package/client/pages/data-key-set/data-key-set-importer.ts +0 -89
  52. package/client/pages/data-key-set/data-key-set-list-page.ts +0 -413
  53. package/client/pages/data-ooc/data-ooc-list-page.ts +0 -549
  54. package/client/pages/data-ooc/data-ooc-page.ts +0 -164
  55. package/client/pages/data-ooc/data-ooc-view.ts +0 -236
  56. package/client/pages/data-ooc/data-oocs-page.ts +0 -200
  57. package/client/pages/data-report/data-report-embed-page.ts +0 -108
  58. package/client/pages/data-report/data-report-list-page.ts +0 -454
  59. package/client/pages/data-report/data-report-samples-page.ts +0 -174
  60. package/client/pages/data-report/jasper-report-oocs-page.ts +0 -110
  61. package/client/pages/data-report/jasper-report-samples-crosstab-page.ts +0 -110
  62. package/client/pages/data-report/jasper-report-samples-page.ts +0 -110
  63. package/client/pages/data-sample/data-sample-list-page.ts +0 -442
  64. package/client/pages/data-sample/data-sample-page.ts +0 -55
  65. package/client/pages/data-sample/data-sample-search-page.ts +0 -424
  66. package/client/pages/data-sample/data-sample-view.ts +0 -292
  67. package/client/pages/data-sample/data-samples-page.ts +0 -249
  68. package/client/pages/data-sensor/data-sensor-list-page.ts +0 -456
  69. package/client/pages/data-set/data-item-list.ts +0 -304
  70. package/client/pages/data-set/data-set-importer.ts +0 -89
  71. package/client/pages/data-set/data-set-list-page.ts +0 -1078
  72. package/client/pages/data-summary/data-summary-list-page.ts +0 -363
  73. package/client/pages/data-summary/data-summary-period-page.ts +0 -439
  74. package/client/pages/data-summary/data-summary-search-page.ts +0 -426
  75. package/client/pages/data-summary/data-summary-view.ts +0 -133
  76. package/client/route.ts +0 -91
  77. package/client/tsconfig.json +0 -13
  78. package/server/activities/activity-data-collect.ts +0 -100
  79. package/server/activities/activity-data-review.ts +0 -82
  80. package/server/activities/activity-ooc-resolve.ts +0 -123
  81. package/server/activities/activity-ooc-review.ts +0 -144
  82. package/server/activities/index.ts +0 -11
  83. package/server/controllers/create-data-sample.ts +0 -426
  84. package/server/controllers/data-use-case.ts +0 -98
  85. package/server/controllers/finalize-data-collection.ts +0 -388
  86. package/server/controllers/index.ts +0 -3
  87. package/server/controllers/issue-data-collection-task.ts +0 -70
  88. package/server/controllers/jasper-report.ts +0 -186
  89. package/server/controllers/query-data-summary-by-period.ts +0 -178
  90. package/server/controllers/shiny-report.ts +0 -54
  91. package/server/engine/index.ts +0 -1
  92. package/server/engine/task/create-data-sample.ts +0 -100
  93. package/server/engine/task/index.ts +0 -2
  94. package/server/engine/task/issue-collect-data.ts +0 -45
  95. package/server/index.ts +0 -8
  96. package/server/routes.ts +0 -188
  97. package/server/service/data-archive/data-archive-mutation.ts +0 -273
  98. package/server/service/data-archive/data-archive-query.ts +0 -58
  99. package/server/service/data-archive/data-archive-type.ts +0 -48
  100. package/server/service/data-archive/data-archive.ts +0 -69
  101. package/server/service/data-archive/index.ts +0 -6
  102. package/server/service/data-key-set/data-key-item-type.ts +0 -31
  103. package/server/service/data-key-set/data-key-set-mutation.ts +0 -201
  104. package/server/service/data-key-set/data-key-set-query.ts +0 -68
  105. package/server/service/data-key-set/data-key-set-type.ts +0 -70
  106. package/server/service/data-key-set/data-key-set.ts +0 -86
  107. package/server/service/data-key-set/index.ts +0 -6
  108. package/server/service/data-ooc/data-ooc-mutation.ts +0 -154
  109. package/server/service/data-ooc/data-ooc-query.ts +0 -106
  110. package/server/service/data-ooc/data-ooc-subscription.ts +0 -48
  111. package/server/service/data-ooc/data-ooc-type.ts +0 -71
  112. package/server/service/data-ooc/data-ooc.ts +0 -259
  113. package/server/service/data-ooc/index.ts +0 -7
  114. package/server/service/data-sample/data-sample-mutation.ts +0 -18
  115. package/server/service/data-sample/data-sample-query.ts +0 -215
  116. package/server/service/data-sample/data-sample-type.ts +0 -47
  117. package/server/service/data-sample/data-sample.ts +0 -193
  118. package/server/service/data-sample/index.ts +0 -6
  119. package/server/service/data-sensor/data-sensor-mutation.ts +0 -116
  120. package/server/service/data-sensor/data-sensor-query.ts +0 -76
  121. package/server/service/data-sensor/data-sensor-type.ts +0 -104
  122. package/server/service/data-sensor/data-sensor.ts +0 -126
  123. package/server/service/data-sensor/index.ts +0 -6
  124. package/server/service/data-set/data-item-type.ts +0 -155
  125. package/server/service/data-set/data-set-mutation.ts +0 -552
  126. package/server/service/data-set/data-set-query.ts +0 -461
  127. package/server/service/data-set/data-set-type.ts +0 -204
  128. package/server/service/data-set/data-set.ts +0 -326
  129. package/server/service/data-set/index.ts +0 -6
  130. package/server/service/data-set-history/data-set-history-query.ts +0 -126
  131. package/server/service/data-set-history/data-set-history-type.ts +0 -12
  132. package/server/service/data-set-history/data-set-history.ts +0 -217
  133. package/server/service/data-set-history/event-subscriber.ts +0 -17
  134. package/server/service/data-set-history/index.ts +0 -7
  135. package/server/service/data-spec/data-spec-manager.ts +0 -21
  136. package/server/service/data-spec/data-spec-query.ts +0 -21
  137. package/server/service/data-spec/data-spec.ts +0 -45
  138. package/server/service/data-spec/index.ts +0 -5
  139. package/server/service/data-summary/data-summary-mutation.ts +0 -45
  140. package/server/service/data-summary/data-summary-query.ts +0 -179
  141. package/server/service/data-summary/data-summary-type.ts +0 -86
  142. package/server/service/data-summary/data-summary.ts +0 -170
  143. package/server/service/data-summary/index.ts +0 -7
  144. package/server/service/index.ts +0 -57
  145. package/server/tsconfig.json +0 -10
  146. package/server/utils/config-resolver.ts +0 -29
  147. package/server/utils/index.ts +0 -1
@@ -1,326 +0,0 @@
1
- import { Field, ID, ObjectType, registerEnumType } from 'type-graphql'
2
- import {
3
- Column,
4
- CreateDateColumn,
5
- Entity,
6
- Index,
7
- ManyToOne,
8
- PrimaryGeneratedColumn,
9
- RelationId,
10
- UpdateDateColumn,
11
- VersionColumn
12
- } from 'typeorm'
13
-
14
- import { Role, User } from '@things-factory/auth-base'
15
- import { ApprovalLineItem } from '@things-factory/organization'
16
- import { Domain, ScalarObject } from '@things-factory/shell'
17
- import { AssigneeItem } from '@things-factory/worklist'
18
- import { Scenario } from '@things-factory/integration-base'
19
-
20
- import { DataKeySet } from '../data-key-set/data-key-set'
21
- import { DataItem } from './data-item-type'
22
-
23
- export enum DataSetEntryType {
24
- Generated = 'generated',
25
- Board = 'board',
26
- CustomElement = 'custom-element',
27
- Page = 'page',
28
- ExternalURL = 'external',
29
- Jasper = 'jasper',
30
- Shiny = 'shiny'
31
- }
32
-
33
- registerEnumType(DataSetEntryType, {
34
- name: 'DataSetEntryType',
35
- description: 'entry type enumeration for data-set'
36
- })
37
-
38
- export enum DataSetMonitorType {
39
- Generated = 'generated',
40
- Board = 'board',
41
- CustomElement = 'custom-element',
42
- Page = 'page',
43
- ExternalURL = 'external'
44
- }
45
-
46
- registerEnumType(DataSetMonitorType, {
47
- name: 'DataSetMonitorType',
48
- description: 'monitor type enumeration for data-set'
49
- })
50
-
51
- export enum DataSetReportType {
52
- Generated = 'generated',
53
- Board = 'board',
54
- CustomElement = 'custom-element',
55
- Page = 'page',
56
- ExternalURL = 'external'
57
- }
58
-
59
- registerEnumType(DataSetReportType, {
60
- name: 'DataSetReportType',
61
- description: 'report type enumeration for data-set'
62
- })
63
-
64
- export enum DataSetSummaryPeriodType {
65
- Hour = 'hour',
66
- WorkShift = 'work-shift',
67
- WorkDate = 'work-date',
68
- Day = 'day'
69
- }
70
-
71
- registerEnumType(DataSetSummaryPeriodType, {
72
- name: 'DataSetSummaryPeriodType',
73
- description: 'summary period type enumeration for data-set'
74
- })
75
-
76
- @ObjectType()
77
- export class DataSetState {
78
- @Field()
79
- id: string
80
-
81
- @Field()
82
- scheduleId: string
83
-
84
- @Field()
85
- state: string
86
-
87
- @Field()
88
- startedAt: Date
89
-
90
- @Field()
91
- nextSchedule: Date
92
- }
93
-
94
- @Entity()
95
- @Index('ix_data_set_0', (dataSet: DataSet) => [dataSet.domain, dataSet.name], { unique: true })
96
- @ObjectType({ description: 'Entity for DataSet' })
97
- export class DataSet {
98
- @PrimaryGeneratedColumn('uuid')
99
- @Field(type => ID, { description: 'The unique identifier of the dataset' })
100
- readonly id: string
101
-
102
- @ManyToOne(type => Domain)
103
- @Field({ nullable: true, description: 'The domain to which the dataset belongs' })
104
- domain?: Domain
105
-
106
- @RelationId((dataSet: DataSet) => dataSet.domain)
107
- domainId?: string
108
-
109
- @Column()
110
- @Field({ description: 'The name of the dataset' })
111
- name?: string
112
-
113
- @Column({ nullable: true })
114
- @Field({ nullable: true, description: 'A description of the dataset' })
115
- description?: string
116
-
117
- @Column({ nullable: true })
118
- @Field({ nullable: true, description: 'A tag name of data to be published when a data sample created' })
119
- tag?: string
120
-
121
- @VersionColumn({ nullable: true, default: 1 })
122
- @Field({ nullable: true, description: 'The version of the dataset' })
123
- version?: number = 1
124
-
125
- @Column({ nullable: true })
126
- @Field({ nullable: true, description: 'Indicates whether the dataset is currently active or in use.' })
127
- active?: boolean
128
-
129
- @ManyToOne(type => DataKeySet, { nullable: true })
130
- @Field(type => DataKeySet, { nullable: true, description: 'The key set used for this dataset' })
131
- dataKeySet?: DataKeySet
132
-
133
- @RelationId((dataSet: DataSet) => dataSet.dataKeySet)
134
- dataKeySetId?: string
135
-
136
- @ManyToOne(type => Role, { nullable: true })
137
- @Field(type => Role, {
138
- nullable: true,
139
- description: 'The person responsible for manually entering the data for that dataset'
140
- })
141
- entryRole?: Role
142
-
143
- @RelationId((dataSet: DataSet) => dataSet.entryRole)
144
- entryRoleId?: string
145
-
146
- @ManyToOne(type => Role, { nullable: true })
147
- @Field(type => Role, { nullable: true, description: 'The final authority on issues related to that dataset.' })
148
- supervisoryRole?: Role
149
-
150
- @RelationId((dataSet: DataSet) => dataSet.supervisoryRole)
151
- supervisoryRoleId?: string
152
-
153
- @ManyToOne(type => Role, { nullable: true })
154
- @Field(type => Role, {
155
- nullable: true,
156
- description: 'The final authority on resolving outlier related to that dataset.'
157
- })
158
- resolverRole?: Role
159
-
160
- @RelationId((dataSet: DataSet) => dataSet.resolverRole)
161
- resolverRoleId?: string
162
-
163
- @Column('simple-json', { nullable: true })
164
- @Field(type => [AssigneeItem], { nullable: true, description: 'Who to contact for OOC issues' })
165
- assignees?: AssigneeItem[]
166
-
167
- @Column('simple-json', { nullable: true })
168
- @Field(type => [ApprovalLineItem], {
169
- nullable: true,
170
- description: 'Approval line for confrim of the dataset'
171
- })
172
- reviewApprovalLine?: ApprovalLineItem[]
173
-
174
- @Column('simple-json', { nullable: true })
175
- @Field(type => [ApprovalLineItem], {
176
- nullable: true,
177
- description: 'Approval line for handling abnormal data occurance issues for that dataset'
178
- })
179
- outlierApprovalLine?: ApprovalLineItem[]
180
-
181
- @ManyToOne(type => Scenario, { nullable: true })
182
- @Field(type => Scenario, {
183
- nullable: true,
184
- description: 'Scenario for handling normal data-sample occurance for that dataset'
185
- })
186
- normalScenario?: Scenario
187
-
188
- @RelationId((dataSet: DataSet) => dataSet.normalScenario)
189
- normalScenarioId?: string
190
-
191
- @ManyToOne(type => Scenario, { nullable: true })
192
- @Field(type => Scenario, {
193
- nullable: true,
194
- description: 'Scenario for handling abnormal data-sample occurance issues for that dataset'
195
- })
196
- outlierScenario?: Scenario
197
-
198
- @RelationId((dataSet: DataSet) => dataSet.outlierScenario)
199
- outlierScenarioId?: string
200
-
201
- @Column({ nullable: true })
202
- @Field({ nullable: true, description: 'The type of the dataset' })
203
- type?: 'manual' | 'automatic' | string
204
-
205
- @Column({ nullable: true })
206
- @Field({
207
- nullable: true,
208
- description: `Specifies the method of data entry for the dataset. If set to "generated", data entry screens are automatically generated based on the defined data items. For other types, specific entry screens are configured for each type and specified in the "entryView" field.`
209
- })
210
- entryType?: DataSetEntryType
211
-
212
- @Column({ nullable: true })
213
- @Field({
214
- nullable: true,
215
- description: `Specifies the custom data entry screen or view for the dataset. When "entryType" is not "generated", this field indicates the screen to be used for data entry. When "entryType" is "generated", this field may not apply.`
216
- })
217
- entryView?: string
218
-
219
- @Column({ nullable: true })
220
- @Field({
221
- nullable: true,
222
- description: `Specifies the method of data monitoring for the dataset. If set to "generated", monitoring screens are automatically generated based on the dataset configuration. For other types, specific monitoring screens are configured for each type and specified in the "monitorView" field.`
223
- })
224
- monitorType?: DataSetMonitorType
225
-
226
- @Column({ nullable: true })
227
- @Field({
228
- nullable: true,
229
- description: `Specifies the custom data monitoring screen or view for the dataset. When "monitorType" is not "generated", this field indicates the screen to be used for data monitoring. When "monitorType" is "generated", this field may not apply.`
230
- })
231
- monitorView?: string
232
-
233
- @Column({ nullable: true })
234
- @Field({
235
- nullable: true,
236
- description: `Specifies the method of reporting for the dataset. If set to "generated", report templates are automatically generated based on the dataset configuration. For other types, specific report templates are configured for each type and specified in the "reportView" field.`
237
- })
238
- reportType?: DataSetReportType
239
-
240
- @Column({ nullable: true })
241
- @Field({
242
- nullable: true,
243
- description: `Specifies the custom report template or view for the dataset. When "reportType" is not "generated", this field indicates the report template or view to be used for reporting. When "reportType" is "generated", this field may not apply.`
244
- })
245
- reportView?: string
246
-
247
- @Field({ nullable: true, description: 'The report template of the dataset' })
248
- reportTemplate?: string
249
-
250
- @Column({ nullable: true })
251
- @Field({
252
- nullable: true,
253
- description:
254
- 'Specifies the intended purpose or role of the dataset within the system. It helps users understand why the dataset was created and guides the specification of data items accordingly. Common use case options may include "QA," "CCP," "SPC," and others.'
255
- })
256
- useCase?: string
257
-
258
- @Column('simple-json', { nullable: true })
259
- @Field(type => ScalarObject, {
260
- nullable: true,
261
- description:
262
- "Specifies the partition keys used to distribute and organize the dataset's data. Partition keys are properties or attributes that determine how data is logically grouped, stored, and retrieved. They enable efficient data management and querying by allowing data to be organized into smaller, manageable partitions or segments."
263
- })
264
- partitionKeys?: { [key: string]: any }
265
-
266
- @Column('simple-json', { nullable: true })
267
- @Field(type => [DataItem], { nullable: true, description: 'Data items for the dataset' })
268
- dataItems: DataItem[]
269
-
270
- @Column({ nullable: true })
271
- @Field({ nullable: true, description: 'The schedule of the dataset' })
272
- schedule?: string
273
-
274
- @Column({ nullable: true })
275
- @Field({ nullable: true, description: 'The schedule ID of the dataset' })
276
- scheduleId?: string
277
-
278
- @Column({ nullable: true })
279
- @Field({ nullable: true, description: 'The timezone of the dataset' })
280
- timezone?: string
281
-
282
- @Column({ nullable: true })
283
- @Field({ nullable: true, description: 'Indicates if the dataset requires review' })
284
- requiresReview?: boolean
285
-
286
- @Column({ nullable: true })
287
- @Field({ nullable: true, description: 'The summary period of the dataset' })
288
- summaryPeriod?: DataSetSummaryPeriodType
289
-
290
- @Column({ nullable: true })
291
- @Field({ nullable: true, description: 'The summary schedule of the dataset' })
292
- summarySchedule?: string
293
-
294
- @Column({ nullable: true })
295
- @Field({ nullable: true, description: 'The summary schedule ID of the dataset' })
296
- summaryScheduleId?: string
297
-
298
- @Column({ nullable: true })
299
- @Field({
300
- nullable: true,
301
- description: 'The maximum allowed time limit (in seconds) for completing the data entry operation'
302
- })
303
- timeLimit?: number
304
-
305
- @CreateDateColumn()
306
- @Field({ nullable: true, description: 'The date and time the dataset was created' })
307
- createdAt?: Date
308
-
309
- @UpdateDateColumn()
310
- @Field({ nullable: true, description: 'The date and time the dataset was last updated' })
311
- updatedAt?: Date
312
-
313
- @ManyToOne(type => User, { nullable: true })
314
- @Field({ nullable: true, description: 'The user who created the dataset' })
315
- creator?: User
316
-
317
- @RelationId((dataSet: DataSet) => dataSet.creator)
318
- creatorId?: string
319
-
320
- @ManyToOne(type => User, { nullable: true })
321
- @Field({ nullable: true, description: 'The user who last updated the dataset' })
322
- updater?: User
323
-
324
- @RelationId((dataSet: DataSet) => dataSet.updater)
325
- updaterId?: string
326
- }
@@ -1,6 +0,0 @@
1
- import { DataSet } from './data-set'
2
- import { DataSetMutation } from './data-set-mutation'
3
- import { DataSetQuery } from './data-set-query'
4
-
5
- export const entities = [DataSet]
6
- export const resolvers = [DataSetQuery, DataSetMutation]
@@ -1,126 +0,0 @@
1
- import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
-
3
- import { Attachment } from '@things-factory/attachment-base'
4
- import { Role, User } from '@things-factory/auth-base'
5
- import { Board } from '@things-factory/board-service'
6
- import { Domain, getQueryBuilderFromListParams, getRepository, ListParam, ScalarDate } from '@things-factory/shell'
7
-
8
- import { DataKeySet } from '../data-key-set/data-key-set'
9
- import { DataSet } from '../data-set/data-set'
10
- import { DataSetHistory } from './data-set-history'
11
- import { DataSetHistoryList } from './data-set-history-type'
12
-
13
- @Resolver(DataSetHistory)
14
- export class DataSetHistoryQuery {
15
- @Directive('@privilege(category: "data-set-history", privilege: "query", domainOwnerGranted: true)')
16
- @Query(returns => DataSetHistory, { description: 'To fetch a DataSetHistory' })
17
- async dataSetHistory(
18
- @Arg('id') id: string,
19
- @Arg('timestamp', type => ScalarDate) timestamp: Date,
20
- @Ctx() context: ResolverContext
21
- ): Promise<DataSetHistory> {
22
- const { domain } = context.state
23
-
24
- return await getRepository(DataSetHistory).findOne({
25
- where: { domain: { id: domain.id }, originalId: id, updatedAt: timestamp }
26
- })
27
- }
28
-
29
- @Directive('@privilege(category: "data-set-history", privilege: "query", domainOwnerGranted: true)')
30
- @Query(returns => DataSetHistoryList, { description: 'To fetch multiple DataSetHistories' })
31
- async dataSetHistories(
32
- @Args(type => ListParam) params: ListParam,
33
- @Ctx() context: ResolverContext
34
- ): Promise<DataSetHistoryList> {
35
- const { domain } = context.state
36
-
37
- const queryBuilder = getQueryBuilderFromListParams({
38
- repository: getRepository(DataSetHistory),
39
- params,
40
- domain,
41
- searchables: ['name', 'description', 'supervisoryRole']
42
- })
43
-
44
- const [items, total] = await queryBuilder.getManyAndCount()
45
-
46
- return { items, total }
47
- }
48
-
49
- @FieldResolver(type => Role)
50
- async entryRole(@Root() dataSetHistory: DataSetHistory): Promise<Role> {
51
- return (
52
- dataSetHistory.entryRoleId &&
53
- (await getRepository(Role).findOneBy({
54
- id: dataSetHistory.entryRoleId
55
- }))
56
- )
57
- }
58
-
59
- @FieldResolver(type => Role)
60
- async supervisoryRole(@Root() dataSetHistory: DataSetHistory): Promise<Role> {
61
- return (
62
- dataSetHistory.supervisoryRoleId &&
63
- (await getRepository(Role).findOneBy({
64
- id: dataSetHistory.supervisoryRoleId
65
- }))
66
- )
67
- }
68
-
69
- @FieldResolver(type => Board, { nullable: true })
70
- async entryBoard(@Root() dataSetHistory: DataSetHistory) {
71
- if (dataSetHistory.entryType == 'board' && dataSetHistory.entryView) {
72
- return await getRepository(Board).findOneBy({ id: dataSetHistory.entryView })
73
- }
74
- }
75
-
76
- @FieldResolver(type => Board, { nullable: true })
77
- async monitorBoard(@Root() dataSetHistory: DataSetHistory) {
78
- if (dataSetHistory.monitorType == 'board' && dataSetHistory.monitorView) {
79
- return await getRepository(Board).findOneBy({ id: dataSetHistory.monitorView })
80
- }
81
- }
82
-
83
- @FieldResolver(type => DataKeySet, { nullable: true })
84
- async dataKeySet(@Root() dataSet: DataSet) {
85
- return (
86
- dataSet.dataKeySet ||
87
- (dataSet.dataKeySetId &&
88
- (await getRepository(DataKeySet).findOneBy({
89
- id: dataSet.dataKeySetId
90
- })))
91
- )
92
- }
93
-
94
- @FieldResolver(type => User)
95
- async timestamp(@Root() dataSetHistory: DataSetHistory): Promise<Date> {
96
- return dataSetHistory.updatedAt
97
- }
98
-
99
- @FieldResolver(type => Domain)
100
- async domain(@Root() dataSetHistory: DataSetHistory): Promise<Domain> {
101
- return dataSetHistory.domainId && (await getRepository(Domain).findOneBy({ id: dataSetHistory.domainId }))
102
- }
103
-
104
- @FieldResolver(type => User)
105
- async updater(@Root() dataSetHistory: DataSetHistory): Promise<User> {
106
- return dataSetHistory.updaterId && (await getRepository(User).findOneBy({ id: dataSetHistory.updaterId }))
107
- }
108
-
109
- @FieldResolver(type => User)
110
- async creator(@Root() dataSetHistory: DataSetHistory): Promise<User> {
111
- return dataSetHistory.creatorId && (await getRepository(User).findOneBy({ id: dataSetHistory.creatorId }))
112
- }
113
-
114
- @FieldResolver(type => String)
115
- async reportTemplate(@Root() dataSetHistory: DataSetHistory): Promise<string | undefined> {
116
- const attachment: Attachment = await getRepository(Attachment).findOne({
117
- where: {
118
- domain: { id: dataSetHistory.domainId },
119
- refType: `${DataSet.name}-report-template`,
120
- refBy: dataSetHistory.originalId
121
- }
122
- })
123
-
124
- return attachment?.path
125
- }
126
- }
@@ -1,12 +0,0 @@
1
- import { Field, Int, ObjectType } from 'type-graphql'
2
-
3
- import { DataSetHistory } from '../data-set-history/data-set-history'
4
-
5
- @ObjectType()
6
- export class DataSetHistoryList {
7
- @Field(type => [DataSetHistory])
8
- items: DataSetHistory[]
9
-
10
- @Field(type => Int)
11
- total: number
12
- }
@@ -1,217 +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 { User } from '@things-factory/auth-base'
11
- import { ApprovalLineItem } from '@things-factory/organization'
12
- import { Domain, ScalarObject } from '@things-factory/shell'
13
- import { AssigneeItem } from '@things-factory/worklist'
14
- import { config } from '@things-factory/env'
15
-
16
- import { DataItem } from '../data-set/data-item-type'
17
- import {
18
- DataSet,
19
- DataSetEntryType,
20
- DataSetMonitorType,
21
- DataSetReportType,
22
- DataSetSummaryPeriodType
23
- } from '../data-set/data-set'
24
-
25
- const ORMCONFIG = config.get('ormconfig', {})
26
- const DATABASE_TYPE = ORMCONFIG.type
27
-
28
- @Entity()
29
- @Index(
30
- 'ix_data_set_history_0',
31
- (dataSetHistory: DataSetHistory) => [dataSetHistory.originalId, dataSetHistory.version],
32
- { unique: true }
33
- )
34
- @Index(
35
- 'ix_data_set_history_1',
36
- (dataSetHistory: DataSetHistory) => [dataSetHistory.domain, dataSetHistory.originalId, dataSetHistory.version],
37
- { unique: true }
38
- )
39
- @ObjectType({ description: 'Entity for DataSetHistory' })
40
- export class DataSetHistory implements HistoryEntityInterface<DataSet> {
41
- @PrimaryGeneratedColumn('uuid')
42
- @Field(type => ID)
43
- readonly id: string
44
-
45
- @Column({ default: 1 })
46
- @Field({ nullable: true })
47
- readonly version: number = 1
48
-
49
- @ManyToOne(type => Domain)
50
- @Field(type => Domain)
51
- domain?: Domain
52
-
53
- @RelationId((dataSetHistory: DataSetHistory) => dataSetHistory.domain)
54
- domainId?: string
55
-
56
- @Column()
57
- @Field()
58
- name: string
59
-
60
- @Column({ nullable: true })
61
- @Field({ nullable: true })
62
- description?: string
63
-
64
- @Column({ nullable: true })
65
- @Field({ nullable: true })
66
- tag?: string
67
-
68
- @Column({ nullable: true })
69
- @Field({ nullable: true })
70
- active?: boolean
71
-
72
- @Column({ nullable: true })
73
- @Field({ nullable: true })
74
- dataKeySetId?: string
75
-
76
- @Column({ nullable: true })
77
- @Field({ nullable: true })
78
- entryRoleId?: string
79
-
80
- @Column({ nullable: true })
81
- @Field({ nullable: true })
82
- supervisoryRoleId?: string
83
-
84
- @Column('simple-json', { nullable: true })
85
- @Field(type => [AssigneeItem], { nullable: true })
86
- assignees?: AssigneeItem[]
87
-
88
- @Column('simple-json', { nullable: true })
89
- @Field(type => [ApprovalLineItem], { nullable: true })
90
- reviewApprovalLine?: ApprovalLineItem[]
91
-
92
- @Column('simple-json', { nullable: true })
93
- @Field(type => [ApprovalLineItem], { nullable: true })
94
- outlierApprovalLine?: ApprovalLineItem[]
95
-
96
- @Column({ nullable: true })
97
- @Field({ nullable: true })
98
- normalScenarioId?: string
99
-
100
- @Column({ nullable: true })
101
- @Field({ nullable: true })
102
- outlierScenarioId?: string
103
-
104
- @Column({ nullable: true })
105
- @Field({ nullable: true })
106
- type?: 'manual' | 'automatic' | string
107
-
108
- @Column({ nullable: true })
109
- @Field({ nullable: true })
110
- entryType?: DataSetEntryType
111
-
112
- @Column({ nullable: true })
113
- @Field({ nullable: true })
114
- entryView?: string
115
-
116
- @Column({ nullable: true })
117
- @Field({ nullable: true })
118
- monitorType?: DataSetMonitorType
119
-
120
- @Column({ nullable: true })
121
- @Field({ nullable: true })
122
- monitorView?: string
123
-
124
- @Column({ nullable: true })
125
- @Field({ nullable: true })
126
- reportType?: DataSetReportType
127
-
128
- @Column({ nullable: true })
129
- @Field({ nullable: true })
130
- reportView?: string
131
-
132
- @Field({ nullable: true })
133
- reportTemplate?: string
134
-
135
- @Column({ nullable: true })
136
- @Field({ nullable: true })
137
- useCase?: string
138
-
139
- @Column('simple-json', { nullable: true })
140
- @Field(type => ScalarObject, { nullable: true })
141
- partitionKeys?: { [key: string]: any }
142
-
143
- @Column('simple-json', { nullable: true })
144
- @Field(type => [DataItem], { nullable: true })
145
- dataItems: DataItem[]
146
-
147
- @Column({ nullable: true })
148
- @Field({ nullable: true })
149
- schedule?: string
150
-
151
- @Column({ nullable: true })
152
- @Field({ nullable: true })
153
- scheduleId?: string
154
-
155
- @Column({ nullable: true })
156
- @Field({ nullable: true })
157
- timezone?: string
158
-
159
- @Column({ nullable: true })
160
- @Field({ nullable: true })
161
- requiresReview?: boolean
162
-
163
- @Column({ nullable: true })
164
- @Field({ nullable: true })
165
- summaryPeriod?: DataSetSummaryPeriodType
166
-
167
- @Column({ nullable: true })
168
- @Field({ nullable: true })
169
- summarySchedule?: string
170
-
171
- @Column({ nullable: true })
172
- @Field({ nullable: true })
173
- summaryScheduleId?: string
174
-
175
- @Column({ nullable: true })
176
- @Field({ nullable: true })
177
- createdAt?: Date
178
-
179
- @Column({ nullable: true })
180
- @Field({ nullable: true })
181
- updatedAt?: Date
182
-
183
- @ManyToOne(type => User, { nullable: true })
184
- @Field(type => User, { nullable: true })
185
- creator?: User
186
-
187
- @RelationId((dataSetHistory: DataSetHistory) => dataSetHistory.creator)
188
- creatorId?: string
189
-
190
- @ManyToOne(type => User, { nullable: true })
191
- @Field(type => User, { nullable: true })
192
- updater?: User
193
-
194
- @RelationId((dataSetHistory: DataSetHistory) => dataSetHistory.updater)
195
- updaterId?: string
196
-
197
- @HistoryOriginalIdColumn({ nullable: true })
198
- public originalId!: string
199
-
200
- @HistoryActionColumn({
201
- nullable: false,
202
- type:
203
- DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
204
- ? 'enum'
205
- : DATABASE_TYPE == 'oracle'
206
- ? 'varchar2'
207
- : DATABASE_TYPE == 'mssql'
208
- ? 'nvarchar'
209
- : 'varchar',
210
- enum:
211
- DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
212
- ? HistoryActionType
213
- : undefined,
214
- length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 10
215
- })
216
- public action!: HistoryActionType
217
- }
@@ -1,17 +0,0 @@
1
- import { EventSubscriber } from 'typeorm'
2
-
3
- import { HistoryEntitySubscriber } from '@operato/typeorm-history'
4
-
5
- import { DataSet } from '../data-set/data-set'
6
- import { DataSetHistory } from './data-set-history'
7
-
8
- @EventSubscriber()
9
- export class DataSetHistoryEntitySubscriber extends HistoryEntitySubscriber<DataSet, DataSetHistory> {
10
- public get entity() {
11
- return DataSet
12
- }
13
-
14
- public get historyEntity() {
15
- return DataSetHistory
16
- }
17
- }