@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,7 +0,0 @@
1
- import { DataSetHistory } from './data-set-history'
2
- import { DataSetHistoryQuery } from './data-set-history-query'
3
- import { DataSetHistoryEntitySubscriber } from './event-subscriber'
4
-
5
- export const entities = [DataSetHistory]
6
- export const resolvers = [DataSetHistoryQuery]
7
- export const subscribers = [DataSetHistoryEntitySubscriber]
@@ -1,21 +0,0 @@
1
- import { DataSpec } from './data-spec'
2
-
3
- export class DataSpecManager {
4
- static specRegistry: { [type: string]: DataSpec } = {}
5
-
6
- static getDataSpec(type: string): DataSpec {
7
- return DataSpecManager.specRegistry[type]
8
- }
9
-
10
- static registerDataSpec(type: string, dataSpec: DataSpec) {
11
- DataSpecManager.specRegistry[type] = dataSpec
12
- }
13
-
14
- static unregisterDataSpec(type: string) {
15
- delete DataSpecManager.specRegistry[type]
16
- }
17
-
18
- static getDataSpecs(): DataSpec[] {
19
- return Object.values(DataSpecManager.specRegistry)
20
- }
21
- }
@@ -1,21 +0,0 @@
1
- import { Resolver, Query, Arg } from 'type-graphql'
2
- import { DataSpec, DataSpecList } from './data-spec'
3
- import { DataSpecManager } from './data-spec-manager'
4
-
5
- @Resolver(DataSpec)
6
- export class DataSpecQuery {
7
- @Query(returns => DataSpec, { description: 'To fetch a data-spec' })
8
- dataSpec(@Arg('name') name: string): DataSpec {
9
- return DataSpecManager.getDataSpec(name)
10
- }
11
-
12
- @Query(returns => DataSpecList, { description: 'To fetch all data-specs' })
13
- dataSpecs(): DataSpecList {
14
- const items = DataSpecManager.getDataSpecs()
15
-
16
- return {
17
- items,
18
- total: items.length
19
- }
20
- }
21
- }
@@ -1,45 +0,0 @@
1
- import { Field, Int, ObjectType } from 'type-graphql'
2
-
3
- import { ScalarObject } from '@things-factory/shell'
4
-
5
- @ObjectType()
6
- export class DataSpecItem {
7
- @Field()
8
- type: string
9
-
10
- @Field()
11
- label: string
12
-
13
- @Field()
14
- name: string
15
-
16
- @Field({ nullable: true })
17
- placeholder?: string
18
-
19
- @Field(type => ScalarObject, { nullable: true })
20
- property?: { [key: string]: any }
21
- }
22
-
23
- @ObjectType()
24
- export class DataSpec {
25
- @Field()
26
- name: string
27
-
28
- @Field({ nullable: true })
29
- description: string
30
-
31
- @Field({ nullable: true })
32
- help: string
33
-
34
- @Field(type => [DataSpecItem], { nullable: true })
35
- specItems: DataSpecItem[]
36
- }
37
-
38
- @ObjectType()
39
- export class DataSpecList {
40
- @Field(type => [DataSpec])
41
- items: DataSpec[]
42
-
43
- @Field(type => Int)
44
- total: number
45
- }
@@ -1,5 +0,0 @@
1
- import { DataSpec } from './data-spec'
2
- import { DataSpecQuery } from './data-spec-query'
3
-
4
- export const entities = [DataSpec]
5
- export const resolvers = [DataSpecQuery]
@@ -1,45 +0,0 @@
1
- import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
-
3
- import { DataSummary } from './data-summary'
4
-
5
- import { finalizeDataCollection, finalizeLatestDataCollection } from '../../controllers/finalize-data-collection'
6
-
7
- @Resolver(DataSummary)
8
- export class DataSummaryMutation {
9
- @Directive('@transaction')
10
- @Mutation(returns => Boolean, {
11
- description: 'Deprecated. Use finalizeLatestDataCollection',
12
- deprecationReason: 'This resolver has been replaced by finalizeLatestDataCollection'
13
- })
14
- async generateLatestDataSummaries(@Arg('dataSetId') dataSetId: string, @Ctx() context: ResolverContext): Promise<boolean> {
15
- return await finalizeLatestDataCollection(dataSetId, context)
16
- }
17
-
18
- @Directive('@transaction')
19
- @Mutation(returns => Boolean, { description: 'To finalize new Data Summaries' })
20
- async finalizeLatestDataCollection(@Arg('dataSetId') dataSetId: string, @Ctx() context: ResolverContext): Promise<boolean> {
21
- return await finalizeLatestDataCollection(dataSetId, context)
22
- }
23
-
24
- @Directive('@transaction')
25
- @Mutation(returns => Boolean, { description: 'Deprecated. Use finalizeDataCollection', deprecationReason: 'This resolver has been replaced by finalizeDataCollection' })
26
- async generateDataSummaries(
27
- @Arg('dataSetId') dataSetId: string,
28
- @Arg('date') date: string,
29
- @Arg('period') period: string,
30
- @Ctx() context: ResolverContext
31
- ): Promise<boolean> {
32
- return await finalizeDataCollection(dataSetId, date, period, context)
33
- }
34
-
35
- @Directive('@transaction')
36
- @Mutation(returns => Boolean, { description: 'To finalize data collection for the given period' })
37
- async finalizeDataCollection(
38
- @Arg('dataSetId') dataSetId: string,
39
- @Arg('date') date: string,
40
- @Arg('period') period: string,
41
- @Ctx() context: ResolverContext
42
- ): Promise<boolean> {
43
- return await finalizeDataCollection(dataSetId, date, period, context)
44
- }
45
- }
@@ -1,179 +0,0 @@
1
- import { In } from 'typeorm'
2
- import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'
3
- import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
4
- import { User } from '@things-factory/auth-base'
5
- import { DataKeySet } from '../data-key-set/data-key-set'
6
- import { DataItem } from '../data-set/data-item-type'
7
- import { DataSet } from '../data-set/data-set'
8
- import { DataSummary } from './data-summary'
9
- import { DataSummaryList, DynamicDataSummary } from './data-summary-type'
10
- import { queryDataSummaryByPeriod } from '../../controllers/query-data-summary-by-period'
11
-
12
- @Resolver(DataSummary)
13
- export class DataSummaryQuery {
14
- @Query(returns => DataSummary!, { nullable: true, description: 'To fetch a DataSummary' })
15
- async dataSummary(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DataSummary> {
16
- const { domain } = context.state
17
-
18
- return await getRepository(DataSummary).findOne({
19
- where: { domain: { id: domain.id }, id }
20
- })
21
- }
22
-
23
- @Query(returns => DataSummaryList, { description: 'To fetch multiple DataSummaries' })
24
- async dataSummaries(
25
- @Args(type => ListParam) params: ListParam,
26
- @Ctx() context: ResolverContext
27
- ): Promise<DataSummaryList> {
28
- const { domain } = context.state
29
-
30
- const queryBuilder = getQueryBuilderFromListParams({
31
- domain,
32
- params,
33
- repository: await getRepository(DataSummary),
34
- searchables: ['name', 'description']
35
- })
36
-
37
- const [items, total] = await queryBuilder.getManyAndCount()
38
-
39
- return { items, total }
40
- }
41
-
42
- @Query(returns => [DynamicDataSummary], { description: 'To fetch multiple dynamically grouped DataSummaries' })
43
- async dataSummaryByPeriod(
44
- @Arg('period') period: 'today' | 'this month' | '30 days' | 'this year' | '12 months',
45
- @Arg('dataSetName') dataSetName: string,
46
- @Arg('dataKeys', type => [String], { nullable: true }) dataKeys: string[] | null,
47
- @Args(type => ListParam) params: ListParam,
48
- @Ctx() context: ResolverContext
49
- ): Promise<DynamicDataSummary[]> {
50
- return await queryDataSummaryByPeriod(period, dataSetName, dataKeys, params, context)
51
- }
52
-
53
- @Directive('@privilege(category: "data-summary", privilege: "query", domainOwnerGranted: true)')
54
- @Query(returns => DataSummaryList, { description: 'To fetch multiple data summaries by data set name' })
55
- async dataSummariesByDataSetName(
56
- @Arg('dataSetName') dataSetName: string,
57
- @Args(type => ListParam) params: ListParam,
58
- @Ctx() context: ResolverContext
59
- ): Promise<DataSummaryList> {
60
- const { domain } = context.state
61
-
62
- const dataSet = await getRepository(DataSet).findOne({
63
- where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name: dataSetName },
64
- relations: ['dataKeySet']
65
- })
66
-
67
- if (!dataSet) {
68
- throw new Error(`dataSet not found by the given dataSetName(${dataSetName})`)
69
- }
70
-
71
- const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []
72
- const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)
73
-
74
- const queryBuilder = getQueryBuilderFromListParams({
75
- repository: getRepository(DataSummary),
76
- params,
77
- domain,
78
- alias: 'summary',
79
- searchables: ['name', 'description'].concat(searchables)
80
- }).innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetName', {
81
- dataSetName: dataSet.id
82
- })
83
-
84
- const [items, total] = await queryBuilder.getManyAndCount()
85
-
86
- return { items, total }
87
- }
88
-
89
- @Directive('@privilege(category: "data-summary", privilege: "query", domainOwnerGranted: true)')
90
- @Query(returns => DataSummaryList, { description: 'To fetch multiple data summaries by data set' })
91
- async dataSummariesByDataSet(
92
- @Arg('dataSetId') dataSetId: string,
93
- @Args(type => ListParam) params: ListParam,
94
- @Ctx() context: ResolverContext
95
- ): Promise<DataSummaryList> {
96
- const { domain } = context.state
97
-
98
- const dataSet = await getRepository(DataSet).findOne({
99
- where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId },
100
- relations: ['dataKeySet']
101
- })
102
-
103
- if (!dataSet) {
104
- throw new Error(`dataSet not found by the given dataSetId(${dataSetId})`)
105
- }
106
-
107
- const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []
108
- const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)
109
-
110
- const queryBuilder = getQueryBuilderFromListParams({
111
- repository: getRepository(DataSummary),
112
- params,
113
- domain,
114
- alias: 'summary',
115
- searchables: ['name', 'description'].concat(searchables)
116
- }).innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetId', {
117
- dataSetId
118
- })
119
-
120
- const [items, total] = await queryBuilder.getManyAndCount()
121
-
122
- return { items, total }
123
- }
124
-
125
- @Directive('@privilege(category: "data-summary", privilege: "query", domainOwnerGranted: true)')
126
- @Query(returns => DataSummaryList, { description: 'To fetch multiple data summaries by data key set' })
127
- async dataSummariesByDataKeySet(
128
- @Arg('dataKeySetId') dataKeySetId: string,
129
- @Args(type => ListParam) params: ListParam,
130
- @Ctx() context: ResolverContext
131
- ): Promise<DataSummaryList> {
132
- const { domain } = context.state
133
-
134
- const dataKeySet = await getRepository(DataKeySet).findOneBy({ id: dataKeySetId })
135
- const dataKeyItems = dataKeySet?.dataKeyItems || []
136
- const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)
137
-
138
- const queryBuilder = getQueryBuilderFromListParams({
139
- repository: getRepository(DataSummary),
140
- params,
141
- domain,
142
- alias: 'summary',
143
- searchables: ['name', 'description'].concat(searchables)
144
- }).innerJoin('summary.dataSet', 'ds', 'ds.dataKeySet = :dataKeySetId', {
145
- dataKeySetId
146
- })
147
-
148
- const [items, total] = await queryBuilder.getManyAndCount()
149
-
150
- return { items, total }
151
- }
152
-
153
- @FieldResolver(type => [DataItem])
154
- async dataItems(@Root() dataSummary: DataSummary): Promise<DataItem[]> {
155
- const dataSet = dataSummary.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId }))
156
-
157
- return dataSet?.dataItems.filter(item => item.active) || []
158
- }
159
-
160
- @FieldResolver(type => DataSet)
161
- async dataSet(@Root() dataSummary: DataSummary): Promise<DataSet> {
162
- return dataSummary.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId }))
163
- }
164
-
165
- @FieldResolver(type => Domain)
166
- async domain(@Root() dataSummary: DataSummary): Promise<Domain> {
167
- return dataSummary.domainId && (await getRepository(Domain).findOneBy({ id: dataSummary.domainId }))
168
- }
169
-
170
- @FieldResolver(type => User)
171
- async updater(@Root() dataSummary: DataSummary): Promise<User> {
172
- return dataSummary.updaterId && (await getRepository(User).findOneBy({ id: dataSummary.updaterId }))
173
- }
174
-
175
- @FieldResolver(type => User)
176
- async creator(@Root() dataSummary: DataSummary): Promise<User> {
177
- return dataSummary.creatorId && (await getRepository(User).findOneBy({ id: dataSummary.creatorId }))
178
- }
179
- }
@@ -1,86 +0,0 @@
1
- import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'
2
- import { DataSummary } from './data-summary'
3
-
4
- @InputType()
5
- export class NewDataSummary {
6
- @Field()
7
- name: string
8
-
9
- @Field({ nullable: true })
10
- description?: string
11
- }
12
-
13
- @InputType()
14
- export class DataSummaryPatch {
15
- @Field(type => ID, { nullable: true })
16
- id?: string
17
-
18
- @Field({ nullable: true })
19
- name?: string
20
-
21
- @Field({ nullable: true })
22
- description?: string
23
-
24
- @Field({ nullable: true })
25
- cuFlag?: string
26
- }
27
-
28
- @ObjectType()
29
- export class DynamicDataSummary {
30
- @Field({ nullable: true })
31
- month?: string = ''
32
-
33
- @Field({ nullable: true })
34
- date?: string = ''
35
-
36
- @Field({ nullable: true })
37
- period?: string = ''
38
-
39
- @Field({ nullable: true })
40
- count?: number
41
-
42
- @Field({ nullable: true })
43
- countOoc?: number
44
-
45
- @Field({ nullable: true })
46
- countOos?: number
47
-
48
- @Field({ nullable: true })
49
- key01?: string = ''
50
-
51
- @Field({ nullable: true })
52
- key02?: string = ''
53
-
54
- @Field({ nullable: true })
55
- key03?: string = ''
56
-
57
- @Field({ nullable: true })
58
- key04?: string = ''
59
-
60
- @Field({ nullable: true })
61
- key05?: string = ''
62
-
63
- @Field({ nullable: true })
64
- data01?: number
65
-
66
- @Field({ nullable: true })
67
- data02?: number
68
-
69
- @Field({ nullable: true })
70
- data03?: number
71
-
72
- @Field({ nullable: true })
73
- data04?: number
74
-
75
- @Field({ nullable: true })
76
- data05?: number
77
- }
78
-
79
- @ObjectType()
80
- export class DataSummaryList {
81
- @Field(type => [DataSummary])
82
- items: DataSummary[]
83
-
84
- @Field(type => Int)
85
- total: number
86
- }
@@ -1,170 +0,0 @@
1
- import {
2
- CreateDateColumn,
3
- UpdateDateColumn,
4
- Entity,
5
- Index,
6
- Column,
7
- RelationId,
8
- ManyToOne,
9
- PrimaryGeneratedColumn
10
- } from 'typeorm'
11
- import { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'
12
-
13
- import { Domain, ScalarObject } from '@things-factory/shell'
14
- import { User } from '@things-factory/auth-base'
15
-
16
- import { DataItem } from '../data-set/data-item-type'
17
- import { DataSet, DataSetSummaryPeriodType } from '../data-set/data-set'
18
-
19
- @Entity()
20
- @Index(
21
- 'ix_data_summary_0',
22
- (dataSummary: DataSummary) => [
23
- dataSummary.domain,
24
- dataSummary.dataSet,
25
- dataSummary.key01,
26
- dataSummary.key02,
27
- dataSummary.key03,
28
- dataSummary.key04,
29
- dataSummary.key05,
30
- dataSummary.date,
31
- dataSummary.period
32
- ],
33
- { unique: true }
34
- )
35
- @Index(
36
- 'ix_data_summary_1',
37
- (dataSummary: DataSummary) => [dataSummary.domain, dataSummary.dataSet, dataSummary.date, dataSummary.period],
38
- { unique: false }
39
- )
40
- @ObjectType({ description: 'Entity for DataSummary' })
41
- export class DataSummary {
42
- @PrimaryGeneratedColumn('uuid')
43
- @Field(type => ID)
44
- readonly id: string
45
-
46
- @ManyToOne(type => Domain)
47
- @Field(type => Domain)
48
- domain?: Domain
49
-
50
- @RelationId((dataSummary: DataSummary) => dataSummary.domain)
51
- domainId?: string
52
-
53
- @Column()
54
- @Field({ nullable: true })
55
- name?: string
56
-
57
- @Column({ nullable: true })
58
- @Field({ nullable: true })
59
- description?: string
60
-
61
- @Column({ nullable: true })
62
- @Field({ nullable: true })
63
- type?: DataSetSummaryPeriodType
64
-
65
- @Column({ nullable: true, default: '', length: 20 })
66
- @Field({ nullable: true })
67
- date?: string = ''
68
-
69
- @Column({ nullable: true, default: '', length: 20 })
70
- @Field({ nullable: true })
71
- period?: string = ''
72
-
73
- @ManyToOne(type => DataSet)
74
- @Field(type => DataSet, { nullable: false })
75
- dataSet?: DataSet
76
-
77
- @RelationId((dataSample: DataSummary) => dataSample.dataSet)
78
- dataSetId?: string
79
-
80
- @Column({ nullable: true })
81
- @Field({ nullable: true })
82
- dataSetVersion?: number
83
-
84
- @Field(type => [DataItem], { nullable: true })
85
- dataItems?: DataItem[]
86
-
87
- @Column('simple-json', { nullable: true })
88
- @Field(type => ScalarObject, { nullable: true })
89
- summary?: any
90
-
91
- @Column({
92
- nullable: true
93
- })
94
- @Field({ nullable: true })
95
- count?: number
96
-
97
- @Column({
98
- nullable: true
99
- })
100
- @Field({ nullable: true })
101
- countOoc?: number
102
-
103
- @Column({
104
- nullable: true
105
- })
106
- @Field({ nullable: true })
107
- countOos?: number
108
-
109
- @Column({ nullable: true, default: '', length: 100 })
110
- @Field({ nullable: true })
111
- key01?: string = ''
112
-
113
- @Column({ nullable: true, default: '', length: 100 })
114
- @Field({ nullable: true })
115
- key02?: string = ''
116
-
117
- @Column({ nullable: true, default: '', length: 100 })
118
- @Field({ nullable: true })
119
- key03?: string = ''
120
-
121
- @Column({ nullable: true, default: '', length: 100 })
122
- @Field({ nullable: true })
123
- key04?: string = ''
124
-
125
- @Column({ nullable: true, default: '', length: 100 })
126
- @Field({ nullable: true })
127
- key05?: string = ''
128
-
129
- @Column({ type: 'real', nullable: true })
130
- @Field({ nullable: true })
131
- data01?: number
132
-
133
- @Column({ type: 'real', nullable: true })
134
- @Field({ nullable: true })
135
- data02?: number
136
-
137
- @Column({ type: 'real', nullable: true })
138
- @Field({ nullable: true })
139
- data03?: number
140
-
141
- @Column({ type: 'real', nullable: true })
142
- @Field({ nullable: true })
143
- data04?: number
144
-
145
- @Column({ type: 'real', nullable: true })
146
- @Field({ nullable: true })
147
- data05?: number
148
-
149
- @CreateDateColumn()
150
- @Field({ nullable: true })
151
- createdAt?: Date
152
-
153
- @UpdateDateColumn()
154
- @Field({ nullable: true })
155
- updatedAt?: Date
156
-
157
- @ManyToOne(type => User, { nullable: true })
158
- @Field(type => User, { nullable: true })
159
- creator?: User
160
-
161
- @RelationId((dataSummary: DataSummary) => dataSummary.creator)
162
- creatorId?: string
163
-
164
- @ManyToOne(type => User, { nullable: true })
165
- @Field(type => User, { nullable: true })
166
- updater?: User
167
-
168
- @RelationId((dataSummary: DataSummary) => dataSummary.updater)
169
- updaterId?: string
170
- }
@@ -1,7 +0,0 @@
1
- import { DataSummary } from './data-summary'
2
- import { DataSummaryQuery } from './data-summary-query'
3
- import { DataSummaryMutation } from './data-summary-mutation'
4
-
5
- export const entities = [DataSummary]
6
- export const resolvers = [DataSummaryQuery, DataSummaryMutation]
7
- export const subscribers = []
@@ -1,57 +0,0 @@
1
- import { entities as DataKeySetEntities, resolvers as DataKeySetResolvers } from './data-key-set'
2
- import { entities as DataOocEntities, resolvers as DataOocResolvers } from './data-ooc'
3
- import { entities as DataSampleEntities, resolvers as DataSampleResolvers } from './data-sample'
4
- import { entities as DataSensorEntities, resolvers as DataSensorResolvers } from './data-sensor'
5
- import { entities as DataSetEntities, resolvers as DataSetResolvers } from './data-set'
6
- import {
7
- entities as DataSetHistoryEntities,
8
- resolvers as DataSetHistoryResolvers,
9
- subscribers as DataSetHistorySubscribers
10
- } from './data-set-history'
11
- import { entities as DataSummaryEntities, resolvers as DataSummaryResolvers } from './data-summary'
12
- import { entities as DataSpecEntities, resolvers as DataSpecResolvers } from './data-spec'
13
- import { entities as DataArchiveEntities, resolvers as DataArchiveResolvers } from './data-archive'
14
-
15
- /* EXPORT ENTITY TYPES */
16
- export * from './data-summary/data-summary'
17
- export * from './data-key-set/data-key-set'
18
- export * from './data-ooc/data-ooc'
19
- export * from './data-sensor/data-sensor'
20
- export * from './data-sample/data-sample'
21
- export * from './data-set/data-set'
22
- export * from './data-set-history/data-set-history'
23
- export * from './data-set/data-item-type'
24
- export * from './data-spec/data-spec'
25
-
26
- export const entities = [
27
- /* ENTITIES */
28
- ...DataSummaryEntities,
29
- ...DataKeySetEntities,
30
- ...DataOocEntities,
31
- ...DataSensorEntities,
32
- ...DataSampleEntities,
33
- ...DataSetEntities,
34
- ...DataSetHistoryEntities,
35
- ...DataSpecEntities,
36
- ...DataArchiveEntities
37
- ]
38
-
39
- export const subscribers = [
40
- /* SUBSCRIBERS */
41
- ...DataSetHistorySubscribers
42
- ]
43
-
44
- export const schema = {
45
- resolverClasses: [
46
- /* RESOLVER CLASSES */
47
- ...DataSummaryResolvers,
48
- ...DataKeySetResolvers,
49
- ...DataOocResolvers,
50
- ...DataSensorResolvers,
51
- ...DataSampleResolvers,
52
- ...DataSetResolvers,
53
- ...DataSetHistoryResolvers,
54
- ...DataSpecResolvers,
55
- ...DataArchiveResolvers
56
- ]
57
- }
@@ -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
- }
@@ -1,29 +0,0 @@
1
-
2
- export function getEndpointUrl(endpoint:any, subpath:string=''):string {
3
- const { url='', protocol='http', host='', port=80 } = endpoint
4
-
5
- let _url = ''
6
- let _protocol = protocol
7
-
8
- if (url) {
9
- _url = url
10
- } else {
11
- const hosts = host.split('://')
12
- // host에 protocol을 포함한 경우
13
- if (hosts.length == 2) {
14
- const _host = hosts[1]
15
- _protocol = hosts[0]
16
- // host에 port를 포함한 경우
17
- const _hosts = _host.split(':')
18
- if (_hosts.length > 1) {
19
- _url = `${_hosts[0]}:${_hosts[1]}`
20
- } else {
21
- _url = `${_host}:${port}`
22
- }
23
- } else if (hosts.length == 1) {
24
- _url = `${host}:${port}`
25
- }
26
- }
27
-
28
- return _protocol + '://' + _url.split('/').concat(subpath.split('/')).filter(x=>x).join('/')
29
- }