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

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 (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,273 +0,0 @@
1
- import i18next from 'i18next'
2
- import fetch from 'node-fetch'
3
- import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
4
- import { In } from 'typeorm'
5
-
6
- import { getEndpointUrl } from '../../utils/config-resolver'
7
- import { DataArchive } from './data-archive'
8
- import { DataArchivePatch, NewDataArchive } from './data-archive-type'
9
-
10
- const { config } = require('@things-factory/env')
11
- const crypto = require('crypto')
12
-
13
- @Resolver(DataArchive)
14
- export class DataArchiveMutation {
15
- /**
16
- * It may use 'func-[dev]-data-set-download' in https://github.com/operatochef/serverless
17
- * This function requests athena query and save the result as csv.gz in s3
18
- */
19
- @Directive('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)')
20
- @Directive('@transaction')
21
- @Mutation(returns => DataArchive, { description: 'To create new DataArchive' })
22
- async generatePresignedUrl(
23
- @Arg('patch') patch: DataArchivePatch,
24
- @Ctx() context: ResolverContext
25
- ): Promise<DataArchive> {
26
- const { domain, user, tx, notify, lng } = context.state
27
- // const dataArchiveRepo = tx.getRepository(DataArchive)
28
- const t = i18next.getFixedT(lng, 'translations')
29
- const {
30
- dataset: {
31
- endpoint,
32
- datasource: { database }
33
- }
34
- } = config.get('dataArchive')
35
-
36
- const body = JSON.stringify({
37
- domain: domain?.subdomain,
38
- database,
39
- ...patch?.requestParams
40
- })
41
-
42
- const url = getEndpointUrl(endpoint)
43
-
44
- const fetched = await fetch(`${url}`, {
45
- method: 'POST',
46
- headers: { 'Content-Type': 'application/json' },
47
- body
48
- })
49
-
50
- const message = {
51
- receivers: [user.email],
52
- mode: 'in-app',
53
- title: '',
54
- body: '',
55
- url: ''
56
- }
57
-
58
- if (fetched.ok) {
59
- const response = await fetched.json()
60
- patch.downloadUrl = response['presignedUrl']
61
- patch.status = 'done'
62
-
63
- message['title'] = t('title.data-archive downloads ready')
64
- message['url'] = patch.downloadUrl
65
- } else {
66
- const error = await fetched.text()
67
- console.log(error)
68
- patch.status = 'error'
69
-
70
- message['title'] = t('title.data-archive request failed')
71
- // may not user-friendly message
72
- message['body'] = error
73
- }
74
-
75
- const result = await this.updateDataArchive(patch.id, patch, context)
76
-
77
- notify && notify(message)
78
-
79
- return result
80
- }
81
-
82
- @Directive('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)')
83
- @Directive('@transaction')
84
- @Mutation(returns => DataArchive, { description: 'To create new DataArchive' })
85
- async createDataArchive(
86
- @Arg('dataArchive') dataArchive: NewDataArchive,
87
- @Ctx() context: ResolverContext
88
- ): Promise<DataArchive> {
89
- const { domain, user, tx } = context.state
90
- const dataArchiveRepo = tx.getRepository(DataArchive)
91
-
92
- const result = await dataArchiveRepo.save({
93
- ...dataArchive,
94
- domain,
95
- creator: user,
96
- updater: user
97
- })
98
-
99
- return result
100
- }
101
-
102
- @Directive('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)')
103
- @Directive('@transaction')
104
- @Mutation(returns => DataArchive, { description: 'To modify DataArchive information' })
105
- async updateDataArchive(
106
- @Arg('id') id: string,
107
- @Arg('patch') patch: DataArchivePatch,
108
- @Ctx() context: ResolverContext
109
- ): Promise<DataArchive> {
110
- const { domain, user, tx } = context.state
111
- const dataArchiveRepo = tx.getRepository(DataArchive)
112
-
113
- const dataArchive = await dataArchiveRepo.findOne({
114
- where: { domain: { id: domain.id }, id },
115
- relations: ['domain', 'creator', 'updater']
116
- })
117
-
118
- const result = await dataArchiveRepo.save({
119
- ...dataArchive,
120
- ...patch,
121
- updater: user
122
- })
123
-
124
- return result
125
- }
126
-
127
- @Directive('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)')
128
- @Directive('@transaction')
129
- @Mutation(returns => [DataArchive], { description: "To modify multiple DataArchives' information" })
130
- async updateMultipleDataArchive(
131
- @Arg('patches', type => [DataArchivePatch]) patches: DataArchivePatch[],
132
- @Ctx() context: any
133
- ): Promise<DataArchive[]> {
134
- const { domain, user, tx } = context.state
135
- const dataArchiveRepo = tx.getRepository(DataArchive)
136
-
137
- let results = []
138
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
139
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
140
-
141
- if (_createRecords.length > 0) {
142
- const cuFlag = '+'
143
- for (let i = 0; i < _createRecords.length; i++) {
144
- const newRecord = _createRecords[i]
145
-
146
- const result = await dataArchiveRepo.save({
147
- ...newRecord,
148
- domain,
149
- creator: user,
150
- updater: user
151
- })
152
-
153
- results.push({
154
- ...result,
155
- cuFlag
156
- })
157
- }
158
- }
159
-
160
- if (_updateRecords.length > 0) {
161
- const cuFlag = 'M'
162
- for (let i = 0; i < _updateRecords.length; i++) {
163
- const newRecord = _updateRecords[i]
164
- const dataArchive = await dataArchiveRepo.findOne(newRecord.id, {
165
- relations: ['domain', 'creator', 'updater']
166
- })
167
-
168
- const result = await dataArchiveRepo.save({
169
- ...dataArchive,
170
- ...newRecord,
171
- updater: user
172
- })
173
-
174
- results.push({
175
- ...result,
176
- cuFlag
177
- })
178
- }
179
- }
180
-
181
- return results
182
- }
183
-
184
- @Directive('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)')
185
- @Directive('@transaction')
186
- @Mutation(returns => Boolean, { description: 'To delete DataArchive' })
187
- async deleteDataArchive(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
188
- const { domain, tx } = context.state
189
-
190
- await tx.getRepository(DataArchive).delete({ domain: { id: domain.id }, id })
191
- return true
192
- }
193
-
194
- @Directive('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)')
195
- @Directive('@transaction')
196
- @Mutation(returns => Boolean, { description: 'To delete multiple dataArchives' })
197
- async deleteDataArchives(
198
- @Arg('ids', type => [String]) ids: string[],
199
- @Ctx() context: ResolverContext
200
- ): Promise<boolean> {
201
- const { domain, tx } = context.state
202
-
203
- await tx.getRepository(DataArchive).delete({
204
- domain: { id: domain.id },
205
- id: In(ids)
206
- })
207
-
208
- return true
209
- }
210
-
211
- @Directive('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)')
212
- @Directive('@transaction')
213
- @Mutation(returns => Boolean, { description: 'To import multiple data-archives' })
214
- async importDataArchives(
215
- @Arg('dataArchives', type => [DataArchivePatch]) dataArchives: DataArchive[],
216
- @Ctx() context: ResolverContext
217
- ): Promise<boolean> {
218
- const { domain, tx } = context.state
219
- const dataArchiveRepo = tx.getRepository(DataArchive)
220
-
221
- await Promise.all(
222
- dataArchives.map(async (dataArchive: DataArchive) => {
223
- const createdDataArchive: DataArchive = await dataArchiveRepo.save({
224
- domain,
225
- ...dataArchive
226
- })
227
- })
228
- )
229
-
230
- return true
231
- }
232
-
233
- @Directive('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)')
234
- @Directive('@transaction')
235
- @Mutation(returns => [DataArchive], { description: 'To copy multiple data-archives' })
236
- async copyDataArchives(
237
- @Arg('ids', type => [String]) ids: string[],
238
- @Ctx() context: ResolverContext
239
- ): Promise<DataArchive[]> {
240
- const { domain, user, tx } = context.state
241
- const dataArchiveRepo = tx.getRepository(DataArchive)
242
-
243
- const originals = await dataArchiveRepo.find({
244
- where: {
245
- id: In(ids),
246
- domain: { id: domain.id }
247
- },
248
- relations: ['domain']
249
- })
250
-
251
- if (originals.length == 0) {
252
- return []
253
- }
254
-
255
- var newCopys = originals.map(dataArchive => {
256
- let dataArchiveId = crypto.randomUUID()
257
-
258
- return {
259
- ...dataArchive,
260
- id: dataArchiveId,
261
- domain,
262
- creator: user,
263
- updater: user,
264
- updatedAt: undefined,
265
- createdAt: undefined
266
- }
267
- })
268
-
269
- var copiedDataArchives = await dataArchiveRepo.save(newCopys)
270
-
271
- return copiedDataArchives
272
- }
273
- }
@@ -1,58 +0,0 @@
1
- import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
-
3
- import { Role, User } from '@things-factory/auth-base'
4
- import { Domain, getQueryBuilderFromListParams, ListParam, getRepository } from '@things-factory/shell'
5
-
6
- import { DataArchive } from './data-archive'
7
- import { DataArchiveList } from './data-archive-type'
8
-
9
- var parser = require('cron-parser')
10
-
11
- @Resolver(DataArchive)
12
- export class DataArchiveQuery {
13
- @Directive('@privilege(category: "data-archive", privilege: "query", domainOwnerGranted: true)')
14
- @Query(returns => DataArchive, { description: 'To fetch a DataArchive' })
15
- async dataArchive(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DataArchive> {
16
- const { domain } = context.state
17
-
18
- return await getRepository(DataArchive).findOne({
19
- where: { domain: { id: domain.id }, id }
20
- })
21
- }
22
-
23
- @Directive('@privilege(category: "data-archive", privilege: "query", domainOwnerGranted: true)')
24
- @Query(returns => DataArchiveList, { description: 'To fetch multiple DataArchives' })
25
- async dataArchives(
26
- @Args(type => ListParam) params: ListParam,
27
- @Ctx() context: ResolverContext
28
- ): Promise<DataArchiveList> {
29
- const { domain } = context.state
30
-
31
- const queryBuilder = getQueryBuilderFromListParams({
32
- repository: getRepository(DataArchive),
33
- params,
34
- domain,
35
- alias: 'dataArchive',
36
- searchables: []
37
- })
38
-
39
- const [items, total] = await queryBuilder.getManyAndCount()
40
-
41
- return { items, total }
42
- }
43
-
44
- @FieldResolver(type => Domain)
45
- async domain(@Root() dataArchive: DataArchive): Promise<Domain> {
46
- return dataArchive.domainId && (await getRepository(Domain).findOneBy({ id: dataArchive.domainId }))
47
- }
48
-
49
- @FieldResolver(type => User)
50
- async updater(@Root() dataArchive: DataArchive): Promise<User> {
51
- return dataArchive.updaterId && (await getRepository(User).findOneBy({ id: dataArchive.updaterId }))
52
- }
53
-
54
- @FieldResolver(type => User)
55
- async creator(@Root() dataArchive: DataArchive): Promise<User> {
56
- return dataArchive.creatorId && (await getRepository(User).findOneBy({ id: dataArchive.creatorId }))
57
- }
58
- }
@@ -1,48 +0,0 @@
1
- import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
2
- import { DataArchive } from './data-archive'
3
- import { ScalarObject } from '@things-factory/shell'
4
-
5
- @InputType()
6
- export class NewDataArchive {
7
- @Field({ nullable: true })
8
- type?: 'manual' | 'automatic' | string
9
-
10
- @Field(type => ScalarObject, { nullable: true })
11
- requestParams?: { [key: string]: any }
12
-
13
- @Field({ nullable: true })
14
- downloadUrl?: string
15
-
16
- @Field({ nullable: true })
17
- status?: string
18
- }
19
-
20
- @InputType()
21
- export class DataArchivePatch {
22
- @Field(type => ID, { nullable: true })
23
- id?: string
24
-
25
- @Field({ nullable: true })
26
- type?: 'manual' | 'automatic' | string
27
-
28
- @Field(type => ScalarObject, { nullable: true })
29
- requestParams?: { [key: string]: any }
30
-
31
- @Field({ nullable: true })
32
- downloadUrl?: string
33
-
34
- @Field({ nullable: true })
35
- status?: string
36
-
37
- @Field({ nullable: true })
38
- cuFlag: string
39
- }
40
-
41
- @ObjectType()
42
- export class DataArchiveList {
43
- @Field(type => [DataArchive])
44
- items: DataArchive[]
45
-
46
- @Field(type => Int)
47
- total: number
48
- }
@@ -1,69 +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 { Domain, ScalarObject } from '@things-factory/shell'
16
-
17
- @Entity()
18
- @Index('ix_data_archive_0', (dataArchive: DataArchive) => [dataArchive.id], { unique: true })
19
- @ObjectType({ description: 'Entity for DataArchive' })
20
- export class DataArchive {
21
- @PrimaryGeneratedColumn('uuid')
22
- @Field(type => ID)
23
- readonly id: string
24
-
25
- @ManyToOne(type => Domain)
26
- @Field(type => Domain)
27
- domain?: Domain
28
-
29
- @RelationId((dataArchive: DataArchive) => dataArchive.domain)
30
- domainId?: string
31
-
32
- @Column({ nullable: true })
33
- @Field({ nullable: true })
34
- type?: 'manual' | 'automatic' | string
35
-
36
- @Column('simple-json', { nullable: true })
37
- @Field(type => ScalarObject, { nullable: true })
38
- requestParams?: { [key: string]: any }
39
-
40
- @Column({ nullable: true })
41
- @Field({ nullable: true })
42
- downloadUrl?: string
43
-
44
- @Column({ nullable: true })
45
- @Field({ nullable: true })
46
- status?: string
47
-
48
- @CreateDateColumn()
49
- @Field({ nullable: true })
50
- createdAt?: Date
51
-
52
- @UpdateDateColumn()
53
- @Field({ nullable: true })
54
- updatedAt?: Date
55
-
56
- @ManyToOne(type => User, { nullable: true })
57
- @Field(type => User, { nullable: true })
58
- creator?: User
59
-
60
- @RelationId((dataArchive: DataArchive) => dataArchive.creator)
61
- creatorId?: string
62
-
63
- @ManyToOne(type => User, { nullable: true })
64
- @Field(type => User, { nullable: true })
65
- updater?: User
66
-
67
- @RelationId((dataArchive: DataArchive) => dataArchive.updater)
68
- updaterId?: string
69
- }
@@ -1,6 +0,0 @@
1
- import { DataArchive } from './data-archive'
2
- import { DataArchiveMutation } from './data-archive-mutation'
3
- import { DataArchiveQuery } from './data-archive-query'
4
-
5
- export const entities = [DataArchive]
6
- export const resolvers = [DataArchiveQuery, DataArchiveMutation]
@@ -1,31 +0,0 @@
1
- import { Field, InputType, ObjectType } from 'type-graphql'
2
-
3
- @ObjectType({ description: 'Entity for DataKeyItem' })
4
- export class DataKeyItem {
5
- @Field()
6
- name: string
7
-
8
- @Field({ nullable: true })
9
- description?: string
10
-
11
- @Field({ nullable: true })
12
- dataKey: string
13
-
14
- @Field({ nullable: true })
15
- tKey?: string
16
- }
17
-
18
- @InputType()
19
- export class DataKeyItemPatch {
20
- @Field({ nullable: true })
21
- name?: string
22
-
23
- @Field({ nullable: true })
24
- description?: string
25
-
26
- @Field({ nullable: true })
27
- dataKey?: string
28
-
29
- @Field({ nullable: true })
30
- tKey?: string
31
- }
@@ -1,201 +0,0 @@
1
- import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
- import { In } from 'typeorm'
3
-
4
- import { createAttachment, deleteAttachmentsByRef } from '@things-factory/attachment-base'
5
-
6
- import { DataKeySet } from './data-key-set'
7
- import { DataKeySetPatch, NewDataKeySet } from './data-key-set-type'
8
-
9
- @Resolver(DataKeySet)
10
- export class DataKeySetMutation {
11
- @Directive('@transaction')
12
- @Mutation(returns => DataKeySet, { description: 'To create new DataKeySet' })
13
- async createDataKeySet(
14
- @Arg('dataKeySet') dataKeySet: NewDataKeySet,
15
- @Ctx() context: ResolverContext
16
- ): Promise<DataKeySet> {
17
- const { domain, user, tx } = context.state
18
-
19
- const result = await tx.getRepository(DataKeySet).save({
20
- ...dataKeySet,
21
- domain,
22
- creator: user,
23
- updater: user
24
- })
25
-
26
- if (dataKeySet.thumbnail) {
27
- await createAttachment(
28
- null,
29
- {
30
- attachment: {
31
- file: dataKeySet.thumbnail,
32
- refType: DataKeySet.name,
33
- refBy: result.id
34
- }
35
- },
36
- context
37
- )
38
- }
39
-
40
- return result
41
- }
42
-
43
- @Directive('@transaction')
44
- @Mutation(returns => DataKeySet, { description: 'To modify DataKeySet information' })
45
- async updateDataKeySet(
46
- @Arg('id') id: string,
47
- @Arg('patch') patch: DataKeySetPatch,
48
- @Ctx() context: ResolverContext
49
- ): Promise<DataKeySet> {
50
- const { domain, user, tx } = context.state
51
-
52
- const repository = tx.getRepository(DataKeySet)
53
- const dataKeySet = await repository.findOne({
54
- where: { domain: { id: domain.id }, id }
55
- })
56
-
57
- const result = await repository.save({
58
- ...dataKeySet,
59
- ...patch,
60
- updater: user
61
- })
62
-
63
- if (patch.thumbnail) {
64
- await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)
65
- await createAttachment(
66
- null,
67
- {
68
- attachment: {
69
- file: patch.thumbnail,
70
- refType: DataKeySet.name,
71
- refBy: result.id
72
- }
73
- },
74
- context
75
- )
76
- }
77
-
78
- return result
79
- }
80
-
81
- @Directive('@transaction')
82
- @Mutation(returns => [DataKeySet], { description: "To modify multiple DataKeySets' information" })
83
- async updateMultipleDataKeySet(
84
- @Arg('patches', type => [DataKeySetPatch]) patches: DataKeySetPatch[],
85
- @Ctx() context: ResolverContext
86
- ): Promise<DataKeySet[]> {
87
- const { domain, user, tx } = context.state
88
-
89
- let results = []
90
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
91
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
92
- const dataKeySetRepo = tx.getRepository(DataKeySet)
93
-
94
- if (_createRecords.length > 0) {
95
- for (let i = 0; i < _createRecords.length; i++) {
96
- const newRecord = _createRecords[i]
97
-
98
- const result = await dataKeySetRepo.save({
99
- ...newRecord,
100
- domain,
101
- creator: user,
102
- updater: user
103
- })
104
-
105
- if (newRecord.thumbnail) {
106
- await createAttachment(
107
- null,
108
- {
109
- attachment: {
110
- file: newRecord.thumbnail,
111
- refType: DataKeySet.name,
112
- refBy: result.id
113
- }
114
- },
115
- context
116
- )
117
- }
118
-
119
- results.push({ ...result, cuFlag: '+' })
120
- }
121
- }
122
-
123
- if (_updateRecords.length > 0) {
124
- for (let i = 0; i < _updateRecords.length; i++) {
125
- const updateRecord = _updateRecords[i]
126
- const dataKeySet = await dataKeySetRepo.findOneBy({ id: updateRecord.id })
127
-
128
- const result = await dataKeySetRepo.save({
129
- ...dataKeySet,
130
- ...updateRecord,
131
- updater: user
132
- })
133
-
134
- if (updateRecord.thumbnail) {
135
- await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)
136
- await createAttachment(
137
- null,
138
- {
139
- attachment: {
140
- file: updateRecord.thumbnail,
141
- refType: DataKeySet.name,
142
- refBy: result.id
143
- }
144
- },
145
- context
146
- )
147
- }
148
-
149
- results.push({ ...result, cuFlag: 'M' })
150
- }
151
- }
152
-
153
- return results
154
- }
155
-
156
- @Directive('@transaction')
157
- @Mutation(returns => Boolean, { description: 'To delete DataKeySet' })
158
- async deleteDataKeySet(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
159
- const { domain, tx } = context.state
160
-
161
- await tx.getRepository(DataKeySet).delete({ domain: { id: domain.id }, id })
162
- await deleteAttachmentsByRef(null, { refBys: [id] }, context)
163
-
164
- return true
165
- }
166
-
167
- @Directive('@transaction')
168
- @Mutation(returns => Boolean, { description: 'To delete multiple DataKeySets' })
169
- async deleteDataKeySets(
170
- @Arg('ids', type => [String]) ids: string[],
171
- @Ctx() context: ResolverContext
172
- ): Promise<boolean> {
173
- const { domain, tx } = context.state
174
-
175
- await tx.getRepository(DataKeySet).delete({
176
- domain: { id: domain.id },
177
- id: In(ids)
178
- })
179
-
180
- await deleteAttachmentsByRef(null, { refBys: ids }, context)
181
-
182
- return true
183
- }
184
-
185
- @Directive('@transaction')
186
- @Mutation(returns => Boolean, { description: 'To import multiple DataKeySets' })
187
- async importDataKeySets(
188
- @Arg('dataKeySets', type => [DataKeySetPatch]) dataKeySets: DataKeySetPatch[],
189
- @Ctx() context: ResolverContext
190
- ): Promise<boolean> {
191
- const { domain, tx } = context.state
192
-
193
- await Promise.all(
194
- dataKeySets.map(async (dataKeySet: DataKeySetPatch) => {
195
- const createdDataKeySet: DataKeySet = await tx.getRepository(DataKeySet).save({ domain, ...dataKeySet })
196
- })
197
- )
198
-
199
- return true
200
- }
201
- }