@things-factory/dataset 5.0.0-alpha.35 → 5.0.0-alpha.38
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.
- package/client/bootstrap.js +5 -2
- package/client/pages/data-report/data-report-list-page.js +2 -1
- package/client/pages/data-set/data-set-list-page.js +10 -9
- package/dist-server/service/data-item/data-item-query.js +7 -2
- package/dist-server/service/data-item/data-item-query.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js +7 -2
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-query.js +7 -2
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-query.js +7 -2
- package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
- package/dist-server/service/data-set/data-set-query.js +41 -24
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/dist-server/service/data-set/data-set-type.js +4 -0
- package/dist-server/service/data-set/data-set-type.js.map +1 -1
- package/package.json +16 -16
- package/server/service/data-item/data-item-query.ts +9 -3
- package/server/service/data-ooc/data-ooc-query.ts +9 -3
- package/server/service/data-sample/data-sample-query.ts +9 -3
- package/server/service/data-sensor/data-sensor-query.ts +9 -3
- package/server/service/data-set/data-set-query.ts +48 -28
- package/server/service/data-set/data-set-type.ts +3 -0
- package/yarn-error.log +0 -23244
@@ -1,9 +1,9 @@
|
|
1
1
|
import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
2
|
-
import {
|
2
|
+
import { getRepository } from 'typeorm'
|
3
3
|
|
4
4
|
import { Role, User } from '@things-factory/auth-base'
|
5
5
|
import { Board } from '@things-factory/board-service'
|
6
|
-
import {
|
6
|
+
import { Domain, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'
|
7
7
|
|
8
8
|
import { DataItem } from '../data-item/data-item'
|
9
9
|
import { DataSample } from '../data-sample/data-sample'
|
@@ -29,47 +29,67 @@ export class DataSetQuery {
|
|
29
29
|
async dataSets(@Args() params: ListParam, @Ctx() context: any): Promise<DataSetList> {
|
30
30
|
const { domain } = context.state
|
31
31
|
|
32
|
-
const
|
33
|
-
|
32
|
+
const queryBuilder = getQueryBuilderFromListParams({
|
33
|
+
repository: getRepository(DataSet),
|
34
|
+
params,
|
35
|
+
domain,
|
36
|
+
alias: 'dataset'
|
37
|
+
})
|
38
|
+
|
39
|
+
const [items, total] = await queryBuilder.getManyAndCount()
|
34
40
|
|
35
41
|
return { items, total }
|
36
42
|
}
|
37
43
|
|
38
44
|
@Query(returns => DataSetList, { description: 'To fetch multiple DataSets for data entry manually' })
|
39
45
|
async dataSetsForEntry(@Args() params: ListParam, @Ctx() context: any): Promise<DataSetList> {
|
40
|
-
|
46
|
+
var { domain, user } = context.state
|
41
47
|
|
42
|
-
/*
|
43
|
-
|
44
|
-
|
45
|
-
|
48
|
+
/* 조회한 사용자가 entry-role을 가진 data-set 리스트만 반환 */
|
49
|
+
user = await getRepository(User).findOne({
|
50
|
+
where: { id: user.id },
|
51
|
+
relations: ['roles']
|
52
|
+
})
|
53
|
+
const roles = user.roles.filter(role => role.domainId === domain.id).map(role => role.id)
|
46
54
|
|
47
|
-
const
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
55
|
+
const queryBuilder = getQueryBuilderFromListParams({
|
56
|
+
repository: getRepository(DataSet),
|
57
|
+
params,
|
58
|
+
domain,
|
59
|
+
alias: 'dataset'
|
52
60
|
})
|
53
61
|
|
62
|
+
queryBuilder.andWhere(`dataset.active = :active`, { active: true })
|
63
|
+
queryBuilder.andWhere(`dataset.entry_role_id IN (:...roles)`, { roles })
|
64
|
+
|
65
|
+
const [items, total] = await queryBuilder.getManyAndCount()
|
66
|
+
|
54
67
|
return { items, total }
|
55
68
|
}
|
56
69
|
|
57
70
|
@Query(returns => DataSetList, { description: 'To fetch multiple DataSets to see data report' })
|
58
71
|
async dataSetsForReport(@Args() params: ListParam, @Ctx() context: any): Promise<DataSetList> {
|
59
|
-
|
60
|
-
|
61
|
-
/* TODO. 조회한 사용자가 supervisory 역할을 가진 data-set 리스트만 반환 */
|
72
|
+
var { domain, user } = context.state
|
62
73
|
|
63
|
-
|
64
|
-
|
74
|
+
/* 조회한 사용자가 supervisory 역할을 가진 data-set 리스트만 반환 */
|
75
|
+
user = await getRepository(User).findOne({
|
76
|
+
where: { id: user.id },
|
77
|
+
relations: ['roles']
|
78
|
+
})
|
79
|
+
const roles = user.roles.filter(role => role.domainId === domain.id).map(role => role.id)
|
65
80
|
|
66
|
-
const
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
81
|
+
const queryBuilder = getQueryBuilderFromListParams({
|
82
|
+
repository: getRepository(DataSet),
|
83
|
+
params,
|
84
|
+
domain,
|
85
|
+
alias: 'dataset'
|
71
86
|
})
|
72
87
|
|
88
|
+
queryBuilder.andWhere(`dataset.active = :active`, { active: true })
|
89
|
+
queryBuilder.andWhere(`dataset.supervisory_role_id IN (:...roles)`, { roles })
|
90
|
+
|
91
|
+
const [items, total] = await queryBuilder.getManyAndCount()
|
92
|
+
|
73
93
|
return { items, total }
|
74
94
|
}
|
75
95
|
|
@@ -136,14 +156,14 @@ export class DataSetQuery {
|
|
136
156
|
|
137
157
|
@FieldResolver(type => Date, { nullable: true })
|
138
158
|
async nextSchedule(@Root() dataSet: DataSet): Promise<Date> {
|
139
|
-
const {
|
159
|
+
const { domainId, schedule, timezone } = dataSet
|
140
160
|
|
141
161
|
if (!schedule) {
|
142
162
|
return
|
143
163
|
}
|
144
164
|
|
145
165
|
var interval = parser.parseExpression(schedule, {
|
146
|
-
tz: timezone ||
|
166
|
+
tz: timezone || ((await getRepository(Domain).findOne(domainId)) as Domain).timezone || 'UTC'
|
147
167
|
})
|
148
168
|
|
149
169
|
return interval.next().toDate()
|
@@ -151,14 +171,14 @@ export class DataSetQuery {
|
|
151
171
|
|
152
172
|
@FieldResolver(type => Date, { nullable: true })
|
153
173
|
async prevSchedule(@Root() dataSet: DataSet): Promise<Date> {
|
154
|
-
const {
|
174
|
+
const { domainId, schedule, timezone } = dataSet
|
155
175
|
|
156
176
|
if (!schedule) {
|
157
177
|
return
|
158
178
|
}
|
159
179
|
|
160
180
|
var interval = parser.parseExpression(schedule, {
|
161
|
-
tz: timezone ||
|
181
|
+
tz: timezone || ((await getRepository(Domain).findOne(domainId)) as Domain).timezone || 'UTC'
|
162
182
|
})
|
163
183
|
|
164
184
|
return interval.prev().toDate()
|