@things-factory/dataset 6.0.115 → 6.0.118

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 (30) hide show
  1. package/dist-client/tsconfig.tsbuildinfo +1 -1
  2. package/dist-server/controllers/create-data-sample.js +2 -1
  3. package/dist-server/controllers/create-data-sample.js.map +1 -1
  4. package/dist-server/controllers/generate-data-summary.js +7 -5
  5. package/dist-server/controllers/generate-data-summary.js.map +1 -1
  6. package/dist-server/controllers/query-data-summary-by-period.js +2 -1
  7. package/dist-server/controllers/query-data-summary-by-period.js.map +1 -1
  8. package/dist-server/routes.js +7 -2
  9. package/dist-server/routes.js.map +1 -1
  10. package/dist-server/service/data-ooc/data-ooc-query.js +8 -9
  11. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  12. package/dist-server/service/data-sample/data-sample-query.js +10 -8
  13. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  14. package/dist-server/service/data-sensor/data-sensor-query.js +2 -2
  15. package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
  16. package/dist-server/service/data-set/data-set-mutation.js +1 -1
  17. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  18. package/dist-server/service/data-summary/data-summary-query.js +5 -8
  19. package/dist-server/service/data-summary/data-summary-query.js.map +1 -1
  20. package/dist-server/tsconfig.tsbuildinfo +1 -1
  21. package/package.json +10 -10
  22. package/server/controllers/create-data-sample.ts +2 -1
  23. package/server/controllers/generate-data-summary.ts +8 -5
  24. package/server/controllers/query-data-summary-by-period.ts +2 -2
  25. package/server/routes.ts +8 -2
  26. package/server/service/data-ooc/data-ooc-query.ts +9 -9
  27. package/server/service/data-sample/data-sample-query.ts +12 -8
  28. package/server/service/data-sensor/data-sensor-query.ts +2 -2
  29. package/server/service/data-set/data-set-mutation.ts +1 -1
  30. package/server/service/data-summary/data-summary-query.ts +5 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/dataset",
3
- "version": "6.0.115",
3
+ "version": "6.0.118",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -36,19 +36,19 @@
36
36
  "@operato/shell": "^1.0.1",
37
37
  "@operato/styles": "^1.0.0",
38
38
  "@operato/utils": "^1.0.1",
39
- "@things-factory/auth-base": "^6.0.115",
40
- "@things-factory/aws-base": "^6.0.115",
41
- "@things-factory/board-service": "^6.0.115",
39
+ "@things-factory/auth-base": "^6.0.118",
40
+ "@things-factory/aws-base": "^6.0.118",
41
+ "@things-factory/board-service": "^6.0.118",
42
42
  "@things-factory/env": "^6.0.101",
43
- "@things-factory/organization": "^6.0.115",
44
- "@things-factory/scheduler-client": "^6.0.115",
45
- "@things-factory/shell": "^6.0.115",
46
- "@things-factory/work-shift": "^6.0.115",
47
- "@things-factory/worklist": "^6.0.115",
43
+ "@things-factory/organization": "^6.0.118",
44
+ "@things-factory/scheduler-client": "^6.0.118",
45
+ "@things-factory/shell": "^6.0.118",
46
+ "@things-factory/work-shift": "^6.0.118",
47
+ "@things-factory/worklist": "^6.0.118",
48
48
  "cron-parser": "^4.3.0",
49
49
  "moment-timezone": "^0.5.40",
50
50
  "simple-statistics": "^7.8.3",
51
51
  "statistics": "^3.3.0"
52
52
  },
53
- "gitHead": "4937b4fe2040f49d906a4df5cdfced17553b83ef"
53
+ "gitHead": "1e7ddc3436e494f42a9428443e834b221c7256bb"
54
54
  }
@@ -1,4 +1,5 @@
1
1
  import moment from 'moment-timezone'
2
+ import { In } from 'typeorm'
2
3
 
3
4
  import { Role } from '@things-factory/auth-base'
4
5
  import { getRedirectSubdomainPath, pubsub } from '@things-factory/shell'
@@ -57,7 +58,7 @@ export async function createDataSample(dataSample: NewDataSample, context: Resol
57
58
  const { domain, user, tx } = context.state
58
59
 
59
60
  const dataSet = await tx.getRepository(DataSet).findOne({
60
- where: { domain: { id: domain.id }, id: dataSample.dataSet.id },
61
+ where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSample.dataSet.id },
61
62
  relations: ['dataKeySet']
62
63
  })
63
64
 
@@ -2,6 +2,7 @@ const statistics = require('simple-statistics')
2
2
  const deepClone = require('lodash/cloneDeep')
3
3
 
4
4
  import moment from 'moment-timezone'
5
+ import { In } from 'typeorm'
5
6
 
6
7
  import { Sorting, getQueryBuilderFromListParams } from '@things-factory/shell'
7
8
  import { logger } from '@things-factory/env'
@@ -183,7 +184,7 @@ export async function generateLatestDataSummaries(dataSetId: string, context: Re
183
184
 
184
185
  try {
185
186
  const dataSet = await tx.getRepository(DataSet).findOne({
186
- where: { domain: { id: domain.id }, id: dataSetId },
187
+ where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId },
187
188
  relations: ['dataKeySet']
188
189
  })
189
190
 
@@ -291,10 +292,12 @@ export async function generateDataSummary(
291
292
  const { domain, user, tx } = context.state
292
293
 
293
294
  try {
294
- const dataSet = await tx.getRepository(DataSet).findOne({
295
- where: { domain: { id: domain.id }, id: dataSetId },
296
- relations: ['dataKeySet']
297
- })
295
+ const dataSet =
296
+ dataSetId &&
297
+ (await tx.getRepository(DataSet).findOne({
298
+ where: { domain: In([domain.id, domain.parentId].filter(Boolean)), id: dataSetId },
299
+ relations: ['dataKeySet']
300
+ }))
298
301
 
299
302
  const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []
300
303
  const dataItems = dataSet.dataItems.filter(item => item.stat)
@@ -1,9 +1,9 @@
1
1
  import moment from 'moment-timezone'
2
+ import { In } from 'typeorm'
2
3
 
3
4
  import { getQueryBuilderFromListParams, getRepository, ListParam, Sorting } from '@things-factory/shell'
4
5
 
5
6
  import { DataSet, DataSetSummaryPeriodType } from '../service/data-set/data-set'
6
-
7
7
  import { DataSummary } from '../service/data-summary/data-summary'
8
8
 
9
9
  const STAT_FUNCTION_MAP = {
@@ -63,7 +63,7 @@ export async function queryDataSummaryByPeriod(
63
63
  const { domain, user, tx } = context.state
64
64
 
65
65
  const dataSet = await getRepository(DataSet).findOne({
66
- where: { domain: { id: domain.id }, name: dataSetName },
66
+ where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name: dataSetName },
67
67
  relations: ['dataKeySet']
68
68
  })
69
69
 
package/server/routes.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { In } from 'typeorm'
2
+
1
3
  import { Domain, getDataSource } from '@things-factory/shell'
2
4
  import { User } from '@things-factory/auth-base'
3
5
  import { Activity } from '@things-factory/worklist'
@@ -100,7 +102,9 @@ process.on('bootstrap-module-global-public-route' as any, (app, globalPublicRout
100
102
  throw new Error(`domain(${domainId}) not found`)
101
103
  }
102
104
 
103
- const dataSet = await tx.getRepository(DataSet).findOne({ where: { domain: { id: domainId }, id: dataSetId } })
105
+ const dataSet = await tx
106
+ .getRepository(DataSet)
107
+ .findOne({ where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId } })
104
108
 
105
109
  const activity = (await tx.getRepository(Activity).findOneBy({
106
110
  domain: { id: domainId },
@@ -165,7 +169,9 @@ process.on('bootstrap-module-global-public-route' as any, (app, globalPublicRout
165
169
  throw new Error(`domain(${domainId}) not found`)
166
170
  }
167
171
 
168
- const dataSet = await tx.getRepository(DataSet).findOne({ where: { domain: { id: domainId }, id: dataSetId } })
172
+ const dataSet = await tx
173
+ .getRepository(DataSet)
174
+ .findOne({ where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId } })
169
175
 
170
176
  // do what you gotta do
171
177
  })
@@ -40,20 +40,20 @@ export class DataOocQuery {
40
40
 
41
41
  @FieldResolver(type => [DataItem])
42
42
  async dataItems(@Root() dataOoc: DataOoc): Promise<DataItem[]> {
43
- const dataSetHistory: DataSetHistory = await getRepository(DataSetHistory).findOne({
44
- where: {
45
- originalId: dataOoc.dataSetId,
46
- version: dataOoc.dataSetVersion
47
- }
48
- })
43
+ const dataSetHistory: DataSetHistory =
44
+ dataOoc.dataSetId &&
45
+ (await getRepository(DataSetHistory).findOne({
46
+ where: {
47
+ originalId: dataOoc.dataSetId,
48
+ version: dataOoc.dataSetVersion
49
+ }
50
+ }))
49
51
  return dataSetHistory?.dataItems || []
50
52
  }
51
53
 
52
54
  @FieldResolver(type => DataSet)
53
55
  async dataSet(@Root() dataOoc: DataOoc): Promise<DataSet> {
54
- return await getRepository(DataSet).findOneBy({
55
- id: dataOoc.dataSetId
56
- })
56
+ return dataOoc.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataOoc.dataSetId }))
57
57
  }
58
58
 
59
59
  @FieldResolver(type => User)
@@ -1,3 +1,4 @@
1
+ import { In } from 'typeorm'
1
2
  import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
3
 
3
4
  import { User } from '@things-factory/auth-base'
@@ -49,7 +50,7 @@ export class DataSampleQuery {
49
50
  const { domain } = context.state
50
51
 
51
52
  const dataSet = await getRepository(DataSet).findOne({
52
- where: { domain: { id: domain.id }, id: dataSetId },
53
+ where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId },
53
54
  relations: ['dataKeySet']
54
55
  })
55
56
 
@@ -105,18 +106,21 @@ export class DataSampleQuery {
105
106
 
106
107
  @FieldResolver(type => [DataItem])
107
108
  async dataItems(@Root() dataSample: DataSample): Promise<DataItem[]> {
108
- const dataSetHistory: DataSetHistory = await getRepository(DataSetHistory).findOne({
109
- where: {
110
- originalId: dataSample.dataSetId,
111
- version: dataSample.dataSetVersion
112
- }
113
- })
109
+ const dataSetHistory: DataSetHistory =
110
+ dataSample.dataSetId &&
111
+ (await getRepository(DataSetHistory).findOne({
112
+ where: {
113
+ originalId: dataSample.dataSetId,
114
+ version: dataSample.dataSetVersion
115
+ }
116
+ }))
117
+
114
118
  return dataSetHistory?.dataItems || []
115
119
  }
116
120
 
117
121
  @FieldResolver(type => DataSet)
118
122
  async dataSet(@Root() dataSample: DataSample): Promise<DataSet> {
119
- return await getRepository(DataSet).findOneBy({ id: dataSample.dataSetId })
123
+ return dataSample.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSample.dataSetId }))
120
124
  }
121
125
 
122
126
  @FieldResolver(type => Domain)
@@ -36,12 +36,12 @@ export class DataSensorQuery {
36
36
 
37
37
  @FieldResolver(type => Appliance)
38
38
  async appliance(@Root() dataSensor: DataSensor): Promise<Appliance> {
39
- return await getRepository(Appliance).findOneBy({ id: dataSensor.applianceId || '' })
39
+ return dataSensor.applianceId && (await getRepository(Appliance).findOneBy({ id: dataSensor.applianceId }))
40
40
  }
41
41
 
42
42
  @FieldResolver(type => Appliance)
43
43
  async dataSet(@Root() dataSensor: DataSensor): Promise<DataSet> {
44
- return await getRepository(DataSet).findOneBy({ id: dataSensor.dataSetId || '' })
44
+ return dataSensor.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSensor.dataSetId }))
45
45
  }
46
46
 
47
47
  @FieldResolver(type => Domain)
@@ -281,7 +281,7 @@ export class DataSetMutation {
281
281
  const originals = await dataSetRepo.find({
282
282
  where: {
283
283
  id: In(ids),
284
- domain: { id: domain.id }
284
+ domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }
285
285
  },
286
286
  relations: ['domain', 'supervisoryRole', 'entryRole', 'dataKeySet']
287
287
  })
@@ -1,3 +1,4 @@
1
+ import { In } from 'typeorm'
1
2
  import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'
2
3
  import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
3
4
  import { User } from '@things-factory/auth-base'
@@ -56,7 +57,7 @@ export class DataSummaryQuery {
56
57
  const { domain } = context.state
57
58
 
58
59
  const dataSet = await getRepository(DataSet).findOne({
59
- where: { domain: { id: domain.id }, name: dataSetName },
60
+ where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name: dataSetName },
60
61
  relations: ['dataKeySet']
61
62
  })
62
63
 
@@ -92,7 +93,7 @@ export class DataSummaryQuery {
92
93
  const { domain } = context.state
93
94
 
94
95
  const dataSet = await getRepository(DataSet).findOne({
95
- where: { domain: { id: domain.id }, id: dataSetId },
96
+ where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId },
96
97
  relations: ['dataKeySet']
97
98
  })
98
99
 
@@ -148,18 +149,14 @@ export class DataSummaryQuery {
148
149
 
149
150
  @FieldResolver(type => [DataItem])
150
151
  async dataItems(@Root() dataSummary: DataSummary): Promise<DataItem[]> {
151
- const dataSet = await getRepository(DataSet).findOne({
152
- where: {
153
- id: dataSummary.dataSetId
154
- }
155
- })
152
+ const dataSet = dataSummary.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId }))
156
153
 
157
154
  return dataSet?.dataItems || []
158
155
  }
159
156
 
160
157
  @FieldResolver(type => DataSet)
161
158
  async dataSet(@Root() dataSummary: DataSummary): Promise<DataSet> {
162
- return await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId })
159
+ return dataSummary.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId }))
163
160
  }
164
161
 
165
162
  @FieldResolver(type => Domain)