@things-factory/dataset 5.0.0-zeta.2 → 5.0.0-zeta.20
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 +2 -3
- package/client/{pages/data-entry → components}/data-entry-form.js +1 -1
- package/client/index.js +1 -0
- package/client/pages/data-entry/data-entry-list-page.js +2 -3
- package/client/pages/data-ooc/data-ooc-list-page.js +13 -18
- package/client/pages/data-ooc/data-ooc-view.js +19 -14
- package/client/pages/data-report/data-report-list-page.js +1 -2
- package/client/pages/data-sample/data-sample-list-page.js +12 -13
- package/client/pages/data-sample/data-sample-view.js +3 -2
- package/client/pages/data-sensor/data-sensor-list-page.js +1 -1
- package/client/pages/data-set/data-item-list.js +32 -98
- package/client/pages/data-set/data-set-list-page.js +2 -3
- package/config/config.development.js +1 -1
- package/config/config.production.js +13 -1
- package/dist-server/controllers/create-data-sample.js +10 -44
- package/dist-server/controllers/create-data-sample.js.map +1 -1
- package/dist-server/controllers/data-use-case.js +11 -5
- package/dist-server/controllers/data-use-case.js.map +1 -1
- package/dist-server/controllers/index.js +1 -1
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/service/data-item/index.js +1 -4
- package/dist-server/service/data-item/index.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js +15 -10
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-type.js +4 -0
- package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc.js +11 -14
- package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-query.js +18 -0
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-type.js +4 -0
- package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
- package/dist-server/service/data-sample/data-sample.js +12 -3
- package/dist-server/service/data-sample/data-sample.js.map +1 -1
- package/dist-server/service/{data-item → data-set}/data-item-type.js +60 -33
- package/dist-server/service/data-set/data-item-type.js.map +1 -0
- package/dist-server/service/data-set/data-set-mutation.js +21 -61
- package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
- package/dist-server/service/data-set/data-set-query.js +4 -0
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/dist-server/service/data-set/data-set-type.js +10 -1
- package/dist-server/service/data-set/data-set-type.js.map +1 -1
- package/dist-server/service/data-set/data-set.js +11 -3
- package/dist-server/service/data-set/data-set.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history-query.js +173 -0
- package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -0
- package/dist-server/service/data-set-history/data-set-history-type.js +29 -0
- package/dist-server/service/data-set-history/data-set-history-type.js.map +1 -0
- package/dist-server/service/data-set-history/data-set-history.js +196 -0
- package/dist-server/service/data-set-history/data-set-history.js.map +1 -0
- package/dist-server/service/data-set-history/event-subscriber.js +26 -0
- package/dist-server/service/data-set-history/event-subscriber.js.map +1 -0
- package/dist-server/service/data-set-history/index.js +10 -0
- package/dist-server/service/data-set-history/index.js.map +1 -0
- package/dist-server/service/index.js +11 -4
- package/dist-server/service/index.js.map +1 -1
- package/package.json +18 -17
- package/server/controllers/create-data-sample.ts +13 -50
- package/server/controllers/data-use-case.ts +19 -7
- package/server/controllers/index.ts +1 -1
- package/server/service/data-item/index.ts +0 -3
- package/server/service/data-ooc/data-ooc-query.ts +13 -8
- package/server/service/data-ooc/data-ooc-type.ts +3 -0
- package/server/service/data-ooc/data-ooc.ts +9 -14
- package/server/service/data-sample/data-sample-query.ts +14 -1
- package/server/service/data-sample/data-sample-type.ts +3 -0
- package/server/service/data-sample/data-sample.ts +10 -3
- package/server/service/data-set/data-item-type.ts +82 -0
- package/server/service/data-set/data-set-mutation.ts +33 -60
- package/server/service/data-set/data-set-query.ts +5 -0
- package/server/service/data-set/data-set-type.ts +8 -1
- package/server/service/data-set/data-set.ts +8 -4
- package/server/service/data-set-history/data-set-history-query.ts +110 -0
- package/server/service/data-set-history/data-set-history-type.ts +12 -0
- package/server/service/data-set-history/data-set-history.ts +161 -0
- package/server/service/data-set-history/event-subscriber.ts +17 -0
- package/server/service/data-set-history/index.ts +7 -0
- package/server/service/index.ts +16 -4
- package/translations/en.json +5 -5
- package/translations/ko.json +10 -10
- package/translations/ms.json +5 -5
- package/translations/zh.json +5 -5
- package/dist-server/service/data-item/data-item-mutation.js +0 -73
- package/dist-server/service/data-item/data-item-mutation.js.map +0 -1
- package/dist-server/service/data-item/data-item-query.js +0 -104
- package/dist-server/service/data-item/data-item-query.js.map +0 -1
- package/dist-server/service/data-item/data-item-type.js.map +0 -1
- package/server/service/data-item/data-item-mutation.ts +0 -61
- package/server/service/data-item/data-item-query.ts +0 -58
- package/server/service/data-item/data-item-type.ts +0 -57
@@ -0,0 +1,196 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
|
+
};
|
11
|
+
var _a, _b, _c, _d, _e, _f;
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
13
|
+
exports.DataSetHistory = void 0;
|
14
|
+
const type_graphql_1 = require("type-graphql");
|
15
|
+
const typeorm_1 = require("typeorm");
|
16
|
+
const typeorm_history_1 = require("@anchan828/typeorm-history");
|
17
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
18
|
+
const env_1 = require("@things-factory/env");
|
19
|
+
const shell_1 = require("@things-factory/shell");
|
20
|
+
const data_item_type_1 = require("../data-set/data-item-type");
|
21
|
+
const data_set_1 = require("../data-set/data-set");
|
22
|
+
const ORMCONFIG = env_1.config.get('ormconfig', {});
|
23
|
+
const DATABASE_TYPE = ORMCONFIG.type;
|
24
|
+
let DataSetHistory = class DataSetHistory {
|
25
|
+
constructor() {
|
26
|
+
this.version = 1;
|
27
|
+
}
|
28
|
+
};
|
29
|
+
__decorate([
|
30
|
+
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
31
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.ID),
|
32
|
+
__metadata("design:type", String)
|
33
|
+
], DataSetHistory.prototype, "id", void 0);
|
34
|
+
__decorate([
|
35
|
+
(0, typeorm_1.Column)({ default: 1 }),
|
36
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
37
|
+
__metadata("design:type", Number)
|
38
|
+
], DataSetHistory.prototype, "version", void 0);
|
39
|
+
__decorate([
|
40
|
+
(0, typeorm_1.ManyToOne)(type => shell_1.Domain),
|
41
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
42
|
+
__metadata("design:type", typeof (_a = typeof shell_1.Domain !== "undefined" && shell_1.Domain) === "function" ? _a : Object)
|
43
|
+
], DataSetHistory.prototype, "domain", void 0);
|
44
|
+
__decorate([
|
45
|
+
(0, typeorm_1.RelationId)((dataSetHistory) => dataSetHistory.domain),
|
46
|
+
__metadata("design:type", String)
|
47
|
+
], DataSetHistory.prototype, "domainId", void 0);
|
48
|
+
__decorate([
|
49
|
+
(0, typeorm_1.Column)(),
|
50
|
+
(0, type_graphql_1.Field)(),
|
51
|
+
__metadata("design:type", String)
|
52
|
+
], DataSetHistory.prototype, "name", void 0);
|
53
|
+
__decorate([
|
54
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
55
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
56
|
+
__metadata("design:type", String)
|
57
|
+
], DataSetHistory.prototype, "description", void 0);
|
58
|
+
__decorate([
|
59
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
60
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
61
|
+
__metadata("design:type", Boolean)
|
62
|
+
], DataSetHistory.prototype, "active", void 0);
|
63
|
+
__decorate([
|
64
|
+
(0, typeorm_1.ManyToOne)(type => auth_base_1.Role, { nullable: true }),
|
65
|
+
(0, type_graphql_1.Field)(type => auth_base_1.Role, { nullable: true }),
|
66
|
+
__metadata("design:type", typeof (_b = typeof auth_base_1.Role !== "undefined" && auth_base_1.Role) === "function" ? _b : Object)
|
67
|
+
], DataSetHistory.prototype, "entryRole", void 0);
|
68
|
+
__decorate([
|
69
|
+
(0, typeorm_1.RelationId)((dataSetHistory) => dataSetHistory.entryRole),
|
70
|
+
__metadata("design:type", String)
|
71
|
+
], DataSetHistory.prototype, "entryRoleId", void 0);
|
72
|
+
__decorate([
|
73
|
+
(0, typeorm_1.ManyToOne)(type => auth_base_1.Role, { nullable: true }),
|
74
|
+
(0, type_graphql_1.Field)(type => auth_base_1.Role, { nullable: true }),
|
75
|
+
__metadata("design:type", typeof (_c = typeof auth_base_1.Role !== "undefined" && auth_base_1.Role) === "function" ? _c : Object)
|
76
|
+
], DataSetHistory.prototype, "supervisoryRole", void 0);
|
77
|
+
__decorate([
|
78
|
+
(0, typeorm_1.RelationId)((dataSetHistory) => dataSetHistory.supervisoryRole),
|
79
|
+
__metadata("design:type", String)
|
80
|
+
], DataSetHistory.prototype, "supervisoryRoleId", void 0);
|
81
|
+
__decorate([
|
82
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
83
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
84
|
+
__metadata("design:type", String)
|
85
|
+
], DataSetHistory.prototype, "type", void 0);
|
86
|
+
__decorate([
|
87
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
88
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
89
|
+
__metadata("design:type", String)
|
90
|
+
], DataSetHistory.prototype, "entryType", void 0);
|
91
|
+
__decorate([
|
92
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
93
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
94
|
+
__metadata("design:type", String)
|
95
|
+
], DataSetHistory.prototype, "entryView", void 0);
|
96
|
+
__decorate([
|
97
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
98
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
99
|
+
__metadata("design:type", String)
|
100
|
+
], DataSetHistory.prototype, "monitorType", void 0);
|
101
|
+
__decorate([
|
102
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
103
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
104
|
+
__metadata("design:type", String)
|
105
|
+
], DataSetHistory.prototype, "monitorView", void 0);
|
106
|
+
__decorate([
|
107
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
108
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
109
|
+
__metadata("design:type", String)
|
110
|
+
], DataSetHistory.prototype, "reportType", void 0);
|
111
|
+
__decorate([
|
112
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
113
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
114
|
+
__metadata("design:type", String)
|
115
|
+
], DataSetHistory.prototype, "reportView", void 0);
|
116
|
+
__decorate([
|
117
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
118
|
+
__metadata("design:type", String)
|
119
|
+
], DataSetHistory.prototype, "reportTemplate", void 0);
|
120
|
+
__decorate([
|
121
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
122
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
123
|
+
__metadata("design:type", String)
|
124
|
+
], DataSetHistory.prototype, "useCase", void 0);
|
125
|
+
__decorate([
|
126
|
+
(0, typeorm_1.Column)('simple-json', { nullable: true }),
|
127
|
+
(0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
|
128
|
+
__metadata("design:type", typeof (_d = typeof shell_1.ScalarObject !== "undefined" && shell_1.ScalarObject) === "function" ? _d : Object)
|
129
|
+
], DataSetHistory.prototype, "partitionKeys", void 0);
|
130
|
+
__decorate([
|
131
|
+
(0, typeorm_1.Column)('simple-json', { nullable: true }),
|
132
|
+
(0, type_graphql_1.Field)(type => [data_item_type_1.DataItem], { nullable: true }),
|
133
|
+
__metadata("design:type", Array)
|
134
|
+
], DataSetHistory.prototype, "dataItems", void 0);
|
135
|
+
__decorate([
|
136
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
137
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
138
|
+
__metadata("design:type", String)
|
139
|
+
], DataSetHistory.prototype, "schedule", void 0);
|
140
|
+
__decorate([
|
141
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
142
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
143
|
+
__metadata("design:type", String)
|
144
|
+
], DataSetHistory.prototype, "timezone", void 0);
|
145
|
+
__decorate([
|
146
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
147
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
148
|
+
__metadata("design:type", Date)
|
149
|
+
], DataSetHistory.prototype, "createdAt", void 0);
|
150
|
+
__decorate([
|
151
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
152
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
153
|
+
__metadata("design:type", Date)
|
154
|
+
], DataSetHistory.prototype, "updatedAt", void 0);
|
155
|
+
__decorate([
|
156
|
+
(0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
|
157
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
158
|
+
__metadata("design:type", typeof (_e = typeof auth_base_1.User !== "undefined" && auth_base_1.User) === "function" ? _e : Object)
|
159
|
+
], DataSetHistory.prototype, "creator", void 0);
|
160
|
+
__decorate([
|
161
|
+
(0, typeorm_1.RelationId)((dataSetHistory) => dataSetHistory.creator),
|
162
|
+
__metadata("design:type", String)
|
163
|
+
], DataSetHistory.prototype, "creatorId", void 0);
|
164
|
+
__decorate([
|
165
|
+
(0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
|
166
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
167
|
+
__metadata("design:type", typeof (_f = typeof auth_base_1.User !== "undefined" && auth_base_1.User) === "function" ? _f : Object)
|
168
|
+
], DataSetHistory.prototype, "updater", void 0);
|
169
|
+
__decorate([
|
170
|
+
(0, typeorm_1.RelationId)((dataSetHistory) => dataSetHistory.creator),
|
171
|
+
__metadata("design:type", String)
|
172
|
+
], DataSetHistory.prototype, "updaterId", void 0);
|
173
|
+
__decorate([
|
174
|
+
(0, typeorm_history_1.HistoryOriginalIdColumn)({ nullable: true }),
|
175
|
+
__metadata("design:type", String)
|
176
|
+
], DataSetHistory.prototype, "originalId", void 0);
|
177
|
+
__decorate([
|
178
|
+
(0, typeorm_history_1.HistoryActionColumn)({
|
179
|
+
nullable: false,
|
180
|
+
type: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
|
181
|
+
? 'enum'
|
182
|
+
: DATABASE_TYPE == 'oracle'
|
183
|
+
? 'varchar2'
|
184
|
+
: 'smallint',
|
185
|
+
enum: typeorm_history_1.HistoryActionType
|
186
|
+
}),
|
187
|
+
__metadata("design:type", String)
|
188
|
+
], DataSetHistory.prototype, "action", void 0);
|
189
|
+
DataSetHistory = __decorate([
|
190
|
+
(0, typeorm_1.Entity)(),
|
191
|
+
(0, typeorm_1.Index)('ix_data_set_history_0', (dataSetHistory) => [dataSetHistory.originalId, dataSetHistory.version], { unique: true }),
|
192
|
+
(0, typeorm_1.Index)('ix_data_set_history_1', (dataSetHistory) => [dataSetHistory.domain, dataSetHistory.originalId, dataSetHistory.version], { unique: true }),
|
193
|
+
(0, type_graphql_1.ObjectType)({ description: 'Entity for DataSetHistory' })
|
194
|
+
], DataSetHistory);
|
195
|
+
exports.DataSetHistory = DataSetHistory;
|
196
|
+
//# sourceMappingURL=data-set-history.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-set-history.js","sourceRoot":"","sources":["../../../server/service/data-set-history/data-set-history.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
9
|
+
exports.DataSetHistoryEntitySubscriber = void 0;
|
10
|
+
const typeorm_1 = require("typeorm");
|
11
|
+
const typeorm_history_1 = require("@anchan828/typeorm-history");
|
12
|
+
const data_set_1 = require("../data-set/data-set");
|
13
|
+
const data_set_history_1 = require("./data-set-history");
|
14
|
+
let DataSetHistoryEntitySubscriber = class DataSetHistoryEntitySubscriber extends typeorm_history_1.HistoryEntitySubscriber {
|
15
|
+
get entity() {
|
16
|
+
return data_set_1.DataSet;
|
17
|
+
}
|
18
|
+
get historyEntity() {
|
19
|
+
return data_set_history_1.DataSetHistory;
|
20
|
+
}
|
21
|
+
};
|
22
|
+
DataSetHistoryEntitySubscriber = __decorate([
|
23
|
+
(0, typeorm_1.EventSubscriber)()
|
24
|
+
], DataSetHistoryEntitySubscriber);
|
25
|
+
exports.DataSetHistoryEntitySubscriber = DataSetHistoryEntitySubscriber;
|
26
|
+
//# sourceMappingURL=event-subscriber.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"event-subscriber.js","sourceRoot":"","sources":["../../../server/service/data-set-history/event-subscriber.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qCAAyC;AAEzC,gEAAoE;AAEpE,mDAA8C;AAC9C,yDAAmD;AAGnD,IAAa,8BAA8B,GAA3C,MAAa,8BAA+B,SAAQ,yCAAgD;IAClG,IAAW,MAAM;QACf,OAAO,kBAAO,CAAA;IAChB,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,iCAAc,CAAA;IACvB,CAAC;CACF,CAAA;AARY,8BAA8B;IAD1C,IAAA,yBAAe,GAAE;GACL,8BAA8B,CAQ1C;AARY,wEAA8B"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.subscribers = exports.resolvers = exports.entities = void 0;
|
4
|
+
const data_set_history_1 = require("./data-set-history");
|
5
|
+
const data_set_history_query_1 = require("./data-set-history-query");
|
6
|
+
const event_subscriber_1 = require("./event-subscriber");
|
7
|
+
exports.entities = [data_set_history_1.DataSetHistory];
|
8
|
+
exports.resolvers = [data_set_history_query_1.DataSetHistoryQuery];
|
9
|
+
exports.subscribers = [event_subscriber_1.DataSetHistoryEntitySubscriber];
|
10
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/data-set-history/index.ts"],"names":[],"mappings":";;;AAAA,yDAAmD;AACnD,qEAA8D;AAC9D,yDAAmE;AAEtD,QAAA,QAAQ,GAAG,CAAC,iCAAc,CAAC,CAAA;AAC3B,QAAA,SAAS,GAAG,CAAC,4CAAmB,CAAC,CAAA;AACjC,QAAA,WAAW,GAAG,CAAC,iDAA8B,CAAC,CAAA"}
|
@@ -14,38 +14,45 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
exports.schema = exports.entities = void 0;
|
17
|
+
exports.schema = exports.subscribers = exports.entities = void 0;
|
18
18
|
const data_item_1 = require("./data-item");
|
19
19
|
/* IMPORT ENTITIES AND RESOLVERS */
|
20
20
|
const data_ooc_1 = require("./data-ooc");
|
21
21
|
const data_sample_1 = require("./data-sample");
|
22
22
|
const data_sensor_1 = require("./data-sensor");
|
23
23
|
const data_set_1 = require("./data-set");
|
24
|
+
const data_set_history_1 = require("./data-set-history");
|
24
25
|
const data_spec_1 = require("./data-spec");
|
25
26
|
/* EXPORT ENTITY TYPES */
|
26
27
|
__exportStar(require("./data-ooc/data-ooc"), exports);
|
27
28
|
__exportStar(require("./data-sensor/data-sensor"), exports);
|
28
29
|
__exportStar(require("./data-sample/data-sample"), exports);
|
29
|
-
__exportStar(require("./data-item/data-item"), exports);
|
30
30
|
__exportStar(require("./data-set/data-set"), exports);
|
31
|
+
__exportStar(require("./data-set-history/data-set-history"), exports);
|
32
|
+
__exportStar(require("./data-set/data-item-type"), exports);
|
31
33
|
__exportStar(require("./data-spec/data-spec"), exports);
|
32
34
|
exports.entities = [
|
33
35
|
/* ENTITIES */
|
36
|
+
...data_item_1.entities,
|
34
37
|
...data_ooc_1.entities,
|
35
38
|
...data_sensor_1.entities,
|
36
39
|
...data_sample_1.entities,
|
37
|
-
...data_item_1.entities,
|
38
40
|
...data_set_1.entities,
|
41
|
+
...data_set_history_1.entities,
|
39
42
|
...data_spec_1.entities
|
40
43
|
];
|
44
|
+
exports.subscribers = [
|
45
|
+
/* SUBSCRIBERS */
|
46
|
+
...data_set_history_1.subscribers
|
47
|
+
];
|
41
48
|
exports.schema = {
|
42
49
|
resolverClasses: [
|
43
50
|
/* RESOLVER CLASSES */
|
44
51
|
...data_ooc_1.resolvers,
|
45
52
|
...data_sensor_1.resolvers,
|
46
53
|
...data_sample_1.resolvers,
|
47
|
-
...data_item_1.resolvers,
|
48
54
|
...data_set_1.resolvers,
|
55
|
+
...data_set_history_1.resolvers,
|
49
56
|
...data_spec_1.resolvers
|
50
57
|
]
|
51
58
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAA0D;AAC1D,mCAAmC;AACnC,yCAAuF;AACvF,+CAAgG;AAChG,+CAAgG;AAChG,yCAAuF;AACvF,yDAI2B;AAC3B,2CAA0F;AAE1F,yBAAyB;AACzB,sDAAmC;AACnC,4DAAyC;AACzC,4DAAyC;AACzC,sDAAmC;AACnC,sEAAmD;AACnD,4DAAyC;AACzC,wDAAqC;AAExB,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,oBAAgB;IACnB,GAAG,mBAAe;IAClB,GAAG,sBAAkB;IACrB,GAAG,sBAAkB;IACrB,GAAG,mBAAe;IAClB,GAAG,2BAAsB;IACzB,GAAG,oBAAgB;CACpB,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,iBAAiB;IACjB,GAAG,8BAAyB;CAC7B,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,oBAAgB;QACnB,GAAG,uBAAmB;QACtB,GAAG,uBAAmB;QACtB,GAAG,oBAAgB;QACnB,GAAG,4BAAuB;QAC1B,GAAG,qBAAiB;KACrB;CACF,CAAA"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@things-factory/dataset",
|
3
|
-
"version": "5.0.0-zeta.
|
3
|
+
"version": "5.0.0-zeta.20",
|
4
4
|
"main": "dist-server/index.js",
|
5
5
|
"browser": "client/index.js",
|
6
6
|
"things-factory": true,
|
@@ -24,23 +24,24 @@
|
|
24
24
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
25
25
|
},
|
26
26
|
"dependencies": {
|
27
|
-
"@operato/app": "1.0.0-beta.
|
28
|
-
"@operato/data-grist": "1.0.0-beta.
|
29
|
-
"@operato/dataset": "1.0.0-beta.
|
30
|
-
"@operato/graphql": "1.0.0-beta.
|
31
|
-
"@operato/
|
32
|
-
"@operato/
|
33
|
-
"@operato/
|
34
|
-
"@operato/
|
35
|
-
"@operato/
|
36
|
-
"@
|
37
|
-
"@things-factory/
|
38
|
-
"@things-factory/
|
39
|
-
"@things-factory/
|
40
|
-
"@things-factory/
|
41
|
-
"@things-factory/
|
27
|
+
"@operato/app": "^1.0.0-beta.47",
|
28
|
+
"@operato/data-grist": "^1.0.0-beta.47",
|
29
|
+
"@operato/dataset": "^1.0.0-beta.47",
|
30
|
+
"@operato/graphql": "^1.0.0-beta.47",
|
31
|
+
"@operato/grist-editor": "^1.0.0-beta.47",
|
32
|
+
"@operato/i18n": "^1.0.0-beta.47",
|
33
|
+
"@operato/layout": "^1.0.0-beta.47",
|
34
|
+
"@operato/shell": "^1.0.0-beta.47",
|
35
|
+
"@operato/styles": "^1.0.0-beta.47",
|
36
|
+
"@operato/utils": "^1.0.0-beta.47",
|
37
|
+
"@things-factory/auth-base": "^5.0.0-zeta.20",
|
38
|
+
"@things-factory/aws-base": "^5.0.0-zeta.20",
|
39
|
+
"@things-factory/board-service": "^5.0.0-zeta.20",
|
40
|
+
"@things-factory/env": "^5.0.0-zeta.20",
|
41
|
+
"@things-factory/shell": "^5.0.0-zeta.20",
|
42
|
+
"@things-factory/work-shift": "^5.0.0-zeta.20",
|
42
43
|
"cron-parser": "^4.3.0",
|
43
44
|
"moment-timezone": "^0.5.34"
|
44
45
|
},
|
45
|
-
"gitHead": "
|
46
|
+
"gitHead": "34981af408c52ca2472fdbd70ea3b5fbe0ab4073"
|
46
47
|
}
|
@@ -3,15 +3,13 @@ import { EntityManager } from 'typeorm'
|
|
3
3
|
|
4
4
|
import { User } from '@things-factory/auth-base'
|
5
5
|
import { Domain, getRedirectSubdomainPath, pubsub } from '@things-factory/shell'
|
6
|
+
import { getWorkDateAndShift } from '@things-factory/work-shift'
|
6
7
|
|
7
|
-
import { DataItem } from '../service/data-item/data-item'
|
8
8
|
import { DataOoc, DataOocStatus } from '../service/data-ooc/data-ooc'
|
9
9
|
import { DataSample } from '../service/data-sample/data-sample'
|
10
10
|
import { NewDataSample } from '../service/data-sample/data-sample-type'
|
11
11
|
import { DataSet } from '../service/data-set/data-set'
|
12
12
|
import { DataUseCase } from './data-use-case'
|
13
|
-
import { getWorkDateAndShift } from '@things-factory/work-shift'
|
14
|
-
|
15
13
|
|
16
14
|
const debug = require('debug')('things-factory:dataset:controller/save-data-sample')
|
17
15
|
|
@@ -56,26 +54,7 @@ export async function createDataSample(
|
|
56
54
|
where: { id: dataSample.dataSet.id }
|
57
55
|
})
|
58
56
|
|
59
|
-
const dataItems =
|
60
|
-
where: {
|
61
|
-
domain,
|
62
|
-
dataSet
|
63
|
-
},
|
64
|
-
order: {
|
65
|
-
sequence: 'DESC'
|
66
|
-
}
|
67
|
-
})
|
68
|
-
|
69
|
-
const spec = dataItems.reduce((spec, dataItem) => {
|
70
|
-
spec[dataItem.tag] = {
|
71
|
-
...dataItem.spec,
|
72
|
-
name: dataItem.name, /* do we need ? */
|
73
|
-
hidden: dataItem.hidden
|
74
|
-
}
|
75
|
-
|
76
|
-
return spec
|
77
|
-
}, {})
|
78
|
-
|
57
|
+
const dataItems = dataSet.dataItems
|
79
58
|
const collectedAt = dataSample.collectedAt || new Date()
|
80
59
|
|
81
60
|
const timezone = dataSet.timezone || domain.timezone || 'UTC'
|
@@ -83,16 +62,15 @@ export async function createDataSample(
|
|
83
62
|
|
84
63
|
// workDate ex) 2022-04-04
|
85
64
|
const { workDate, workShift } = await getWorkDateAndShift(domain, collectedAt, { timezone, format })
|
86
|
-
|
65
|
+
|
87
66
|
// local time dataSet timezone or domain timezone or default 'UTC'
|
88
|
-
|
89
|
-
// const collectedAt = dataSample.collectedAt || new Date()
|
67
|
+
|
90
68
|
const localDateTz = moment(collectedAt).tz(timezone)
|
91
69
|
const defaultPartitionKeys = {
|
92
70
|
domain: domain.subdomain,
|
93
|
-
datasetid: dataSample.dataSet.id
|
94
|
-
date: localDateTz.format(format)
|
95
|
-
workdate: workDate
|
71
|
+
datasetid: dataSample.dataSet.id /* It should not be 'data_set_id' as column name duplicated for Glue */,
|
72
|
+
date: localDateTz.format(format) /* local time date */,
|
73
|
+
workdate: workDate /* working date */,
|
96
74
|
workshift: workShift
|
97
75
|
}
|
98
76
|
|
@@ -106,17 +84,18 @@ export async function createDataSample(
|
|
106
84
|
...dataSample.data
|
107
85
|
})
|
108
86
|
|
109
|
-
const { ooc, oos } = DataUseCase.evaluate(dataSet, dataItems, dataSample.data) || {}
|
87
|
+
const { ooc, oos, judgment } = DataUseCase.evaluate(dataSet, dataItems, dataSample.data) || {}
|
110
88
|
const result = await tx.getRepository(DataSample).save({
|
111
89
|
name: dataSet.name,
|
112
90
|
description: dataSet.description,
|
113
91
|
useCase: dataSet.useCase,
|
114
92
|
...dataSample,
|
93
|
+
dataSetVersion: dataSet.version,
|
115
94
|
domain,
|
116
95
|
partitionKeys,
|
117
|
-
spec,
|
118
96
|
ooc,
|
119
97
|
oos,
|
98
|
+
judgment,
|
120
99
|
collectedAt,
|
121
100
|
workDate,
|
122
101
|
workShift,
|
@@ -126,18 +105,7 @@ export async function createDataSample(
|
|
126
105
|
|
127
106
|
if (ooc || oos) {
|
128
107
|
const dataOoc = await tx.getRepository(DataOoc).save({
|
129
|
-
|
130
|
-
description: dataSet.description,
|
131
|
-
useCase: dataSet.useCase,
|
132
|
-
dataSet,
|
133
|
-
dataSample: result,
|
134
|
-
data: dataSample.data,
|
135
|
-
rawData: dataSample.rawData,
|
136
|
-
domain,
|
137
|
-
partitionKeys,
|
138
|
-
spec,
|
139
|
-
ooc,
|
140
|
-
oos,
|
108
|
+
...result,
|
141
109
|
history: [
|
142
110
|
{
|
143
111
|
user: {
|
@@ -148,12 +116,7 @@ export async function createDataSample(
|
|
148
116
|
timestamp: Date.now()
|
149
117
|
}
|
150
118
|
],
|
151
|
-
state: DataOocStatus.CREATED
|
152
|
-
workDate,
|
153
|
-
workShift,
|
154
|
-
collectedAt,
|
155
|
-
creator: user,
|
156
|
-
updater: user
|
119
|
+
state: DataOocStatus.CREATED
|
157
120
|
})
|
158
121
|
|
159
122
|
pubsub.publish('data-ooc', {
|
@@ -174,4 +137,4 @@ export async function createDataSample(
|
|
174
137
|
}
|
175
138
|
|
176
139
|
return result
|
177
|
-
}
|
140
|
+
}
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import { DataItem
|
1
|
+
import { DataItem } from '../service/data-set/data-item-type'
|
2
|
+
import { DataSet } from '../service/data-set/data-set'
|
2
3
|
|
3
4
|
export type DataItemSpec = {
|
4
5
|
type: string
|
@@ -13,7 +14,11 @@ export type DataItemSpecSet = {
|
|
13
14
|
specs: DataItemSpec[]
|
14
15
|
}
|
15
16
|
|
16
|
-
export type EvaluationResult = {
|
17
|
+
export type EvaluationResult = {
|
18
|
+
oos: boolean
|
19
|
+
ooc: boolean
|
20
|
+
judgment?: { [tag: string]: { ooc: boolean; oos: boolean } }
|
21
|
+
}
|
17
22
|
|
18
23
|
export abstract class DataUseCase {
|
19
24
|
static registry: { [name: string]: DataUseCase } = {}
|
@@ -33,6 +38,7 @@ export abstract class DataUseCase {
|
|
33
38
|
public static evaluate(dataSet: DataSet, dataItems: DataItem[], data: any): EvaluationResult {
|
34
39
|
var ooc = false
|
35
40
|
var oos = false
|
41
|
+
var judgment: { [tag: string]: { ooc: boolean; oos: boolean } } = {}
|
36
42
|
|
37
43
|
if (!dataSet.useCase) {
|
38
44
|
return { ooc, oos }
|
@@ -49,7 +55,7 @@ export abstract class DataUseCase {
|
|
49
55
|
}
|
50
56
|
|
51
57
|
let values: any | any[] = data[tag]
|
52
|
-
if (
|
58
|
+
if (values == null) {
|
53
59
|
continue // TODO what if in case no value ?
|
54
60
|
}
|
55
61
|
|
@@ -57,6 +63,9 @@ export abstract class DataUseCase {
|
|
57
63
|
values = [values]
|
58
64
|
}
|
59
65
|
|
66
|
+
let oocForTag = false
|
67
|
+
let oosForTag = false
|
68
|
+
|
60
69
|
for (let j = 0; j < useCases.length; j++) {
|
61
70
|
const useCase = useCases[j]
|
62
71
|
|
@@ -68,17 +77,20 @@ export abstract class DataUseCase {
|
|
68
77
|
const result = useCase.evaluate(specs, values)
|
69
78
|
|
70
79
|
if (result) {
|
80
|
+
oocForTag ||= result.ooc
|
81
|
+
oosForTag ||= result.oos
|
71
82
|
ooc ||= result.ooc
|
72
83
|
oos ||= result.oos
|
73
84
|
}
|
85
|
+
}
|
74
86
|
|
75
|
-
|
76
|
-
|
77
|
-
|
87
|
+
judgment[tag] = {
|
88
|
+
ooc: oocForTag,
|
89
|
+
oos: oosForTag
|
78
90
|
}
|
79
91
|
}
|
80
92
|
|
81
|
-
return { ooc, oos }
|
93
|
+
return { ooc, oos, judgment }
|
82
94
|
}
|
83
95
|
|
84
96
|
public abstract evaluate(specs: any, values: any[]): EvaluationResult
|
@@ -4,7 +4,8 @@ import { getRepository } from 'typeorm'
|
|
4
4
|
import { User } from '@things-factory/auth-base'
|
5
5
|
import { Domain, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'
|
6
6
|
|
7
|
-
import {
|
7
|
+
import { DataSetHistory } from '../data-set-history/data-set-history'
|
8
|
+
import { DataItem } from '../data-set/data-item-type'
|
8
9
|
import { DataSet } from '../data-set/data-set'
|
9
10
|
import { DataOoc } from './data-ooc'
|
10
11
|
import { DataOocList } from './data-ooc-type'
|
@@ -38,6 +39,17 @@ export class DataOocQuery {
|
|
38
39
|
return { items, total }
|
39
40
|
}
|
40
41
|
|
42
|
+
@FieldResolver(type => [DataItem])
|
43
|
+
async dataItems(@Root() dataOoc: DataOoc): Promise<DataItem[]> {
|
44
|
+
const dataSetHistory: DataSetHistory = await getRepository(DataSetHistory).findOne({
|
45
|
+
where: {
|
46
|
+
originalId: dataOoc.dataSetId,
|
47
|
+
version: dataOoc.dataSetVersion
|
48
|
+
}
|
49
|
+
})
|
50
|
+
return dataSetHistory?.dataItems || []
|
51
|
+
}
|
52
|
+
|
41
53
|
@FieldResolver(type => DataSet)
|
42
54
|
async dataSet(@Root() dataOoc: DataOoc): Promise<DataSet> {
|
43
55
|
return await getRepository(DataSet).findOne({
|
@@ -45,13 +57,6 @@ export class DataOocQuery {
|
|
45
57
|
})
|
46
58
|
}
|
47
59
|
|
48
|
-
@FieldResolver(type => DataSample)
|
49
|
-
async dataSample(@Root() dataOoc: DataOoc): Promise<DataSample> {
|
50
|
-
return await getRepository(DataSample).findOne({
|
51
|
-
id: dataOoc.dataSampleId
|
52
|
-
})
|
53
|
-
}
|
54
|
-
|
55
60
|
@FieldResolver(type => Domain)
|
56
61
|
async domain(@Root() dataOoc: DataOoc): Promise<Domain> {
|
57
62
|
return await getRepository(Domain).findOne(dataOoc.domainId)
|