@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.
Files changed (90) hide show
  1. package/client/bootstrap.js +2 -3
  2. package/client/{pages/data-entry → components}/data-entry-form.js +1 -1
  3. package/client/index.js +1 -0
  4. package/client/pages/data-entry/data-entry-list-page.js +2 -3
  5. package/client/pages/data-ooc/data-ooc-list-page.js +13 -18
  6. package/client/pages/data-ooc/data-ooc-view.js +19 -14
  7. package/client/pages/data-report/data-report-list-page.js +1 -2
  8. package/client/pages/data-sample/data-sample-list-page.js +12 -13
  9. package/client/pages/data-sample/data-sample-view.js +3 -2
  10. package/client/pages/data-sensor/data-sensor-list-page.js +1 -1
  11. package/client/pages/data-set/data-item-list.js +32 -98
  12. package/client/pages/data-set/data-set-list-page.js +2 -3
  13. package/config/config.development.js +1 -1
  14. package/config/config.production.js +13 -1
  15. package/dist-server/controllers/create-data-sample.js +10 -44
  16. package/dist-server/controllers/create-data-sample.js.map +1 -1
  17. package/dist-server/controllers/data-use-case.js +11 -5
  18. package/dist-server/controllers/data-use-case.js.map +1 -1
  19. package/dist-server/controllers/index.js +1 -1
  20. package/dist-server/controllers/index.js.map +1 -1
  21. package/dist-server/service/data-item/index.js +1 -4
  22. package/dist-server/service/data-item/index.js.map +1 -1
  23. package/dist-server/service/data-ooc/data-ooc-query.js +15 -10
  24. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  25. package/dist-server/service/data-ooc/data-ooc-type.js +4 -0
  26. package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -1
  27. package/dist-server/service/data-ooc/data-ooc.js +11 -14
  28. package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
  29. package/dist-server/service/data-sample/data-sample-query.js +18 -0
  30. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  31. package/dist-server/service/data-sample/data-sample-type.js +4 -0
  32. package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
  33. package/dist-server/service/data-sample/data-sample.js +12 -3
  34. package/dist-server/service/data-sample/data-sample.js.map +1 -1
  35. package/dist-server/service/{data-item → data-set}/data-item-type.js +60 -33
  36. package/dist-server/service/data-set/data-item-type.js.map +1 -0
  37. package/dist-server/service/data-set/data-set-mutation.js +21 -61
  38. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  39. package/dist-server/service/data-set/data-set-query.js +4 -0
  40. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  41. package/dist-server/service/data-set/data-set-type.js +10 -1
  42. package/dist-server/service/data-set/data-set-type.js.map +1 -1
  43. package/dist-server/service/data-set/data-set.js +11 -3
  44. package/dist-server/service/data-set/data-set.js.map +1 -1
  45. package/dist-server/service/data-set-history/data-set-history-query.js +173 -0
  46. package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -0
  47. package/dist-server/service/data-set-history/data-set-history-type.js +29 -0
  48. package/dist-server/service/data-set-history/data-set-history-type.js.map +1 -0
  49. package/dist-server/service/data-set-history/data-set-history.js +196 -0
  50. package/dist-server/service/data-set-history/data-set-history.js.map +1 -0
  51. package/dist-server/service/data-set-history/event-subscriber.js +26 -0
  52. package/dist-server/service/data-set-history/event-subscriber.js.map +1 -0
  53. package/dist-server/service/data-set-history/index.js +10 -0
  54. package/dist-server/service/data-set-history/index.js.map +1 -0
  55. package/dist-server/service/index.js +11 -4
  56. package/dist-server/service/index.js.map +1 -1
  57. package/package.json +18 -17
  58. package/server/controllers/create-data-sample.ts +13 -50
  59. package/server/controllers/data-use-case.ts +19 -7
  60. package/server/controllers/index.ts +1 -1
  61. package/server/service/data-item/index.ts +0 -3
  62. package/server/service/data-ooc/data-ooc-query.ts +13 -8
  63. package/server/service/data-ooc/data-ooc-type.ts +3 -0
  64. package/server/service/data-ooc/data-ooc.ts +9 -14
  65. package/server/service/data-sample/data-sample-query.ts +14 -1
  66. package/server/service/data-sample/data-sample-type.ts +3 -0
  67. package/server/service/data-sample/data-sample.ts +10 -3
  68. package/server/service/data-set/data-item-type.ts +82 -0
  69. package/server/service/data-set/data-set-mutation.ts +33 -60
  70. package/server/service/data-set/data-set-query.ts +5 -0
  71. package/server/service/data-set/data-set-type.ts +8 -1
  72. package/server/service/data-set/data-set.ts +8 -4
  73. package/server/service/data-set-history/data-set-history-query.ts +110 -0
  74. package/server/service/data-set-history/data-set-history-type.ts +12 -0
  75. package/server/service/data-set-history/data-set-history.ts +161 -0
  76. package/server/service/data-set-history/event-subscriber.ts +17 -0
  77. package/server/service/data-set-history/index.ts +7 -0
  78. package/server/service/index.ts +16 -4
  79. package/translations/en.json +5 -5
  80. package/translations/ko.json +10 -10
  81. package/translations/ms.json +5 -5
  82. package/translations/zh.json +5 -5
  83. package/dist-server/service/data-item/data-item-mutation.js +0 -73
  84. package/dist-server/service/data-item/data-item-mutation.js.map +0 -1
  85. package/dist-server/service/data-item/data-item-query.js +0 -104
  86. package/dist-server/service/data-item/data-item-query.js.map +0 -1
  87. package/dist-server/service/data-item/data-item-type.js.map +0 -1
  88. package/server/service/data-item/data-item-mutation.ts +0 -61
  89. package/server/service/data-item/data-item-query.ts +0 -58
  90. 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,2CAA0F;AAC1F,mCAAmC;AACnC,yCAAuF;AACvF,+CAAgG;AAChG,+CAAgG;AAChG,yCAAuF;AACvF,2CAA0F;AAE1F,yBAAyB;AACzB,sDAAmC;AACnC,4DAAyC;AACzC,4DAAyC;AACzC,wDAAqC;AACrC,sDAAmC;AACnC,wDAAqC;AAExB,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,mBAAe;IAClB,GAAG,sBAAkB;IACrB,GAAG,sBAAkB;IACrB,GAAG,oBAAgB;IACnB,GAAG,mBAAe;IAClB,GAAG,oBAAgB;CACpB,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,oBAAgB;QACnB,GAAG,uBAAmB;QACtB,GAAG,uBAAmB;QACtB,GAAG,qBAAiB;QACpB,GAAG,oBAAgB;QACnB,GAAG,qBAAiB;KACrB;CACF,CAAA"}
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.2",
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.30",
28
- "@operato/data-grist": "1.0.0-beta.30",
29
- "@operato/dataset": "1.0.0-beta.30",
30
- "@operato/graphql": "1.0.0-beta.30",
31
- "@operato/i18n": "1.0.0-beta.30",
32
- "@operato/layout": "1.0.0-beta.30",
33
- "@operato/shell": "1.0.0-beta.30",
34
- "@operato/styles": "1.0.0-beta.30",
35
- "@operato/utils": "1.0.0-beta.30",
36
- "@things-factory/auth-base": "^5.0.0-zeta.2",
37
- "@things-factory/aws-base": "^5.0.0-zeta.2",
38
- "@things-factory/board-service": "^5.0.0-zeta.2",
39
- "@things-factory/env": "^5.0.0-zeta.2",
40
- "@things-factory/shell": "^5.0.0-zeta.2",
41
- "@things-factory/work-shift": "^5.0.0-zeta.2",
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": "fe921b76f32ac48ceddf3c290110509bdb5750d6"
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 = await tx.getRepository(DataItem).find({
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, /* It should not be 'data_set_id' as column name duplicated for Glue */
94
- date: localDateTz.format(format), /* local time date */
95
- workdate: workDate, /* working date */
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
- name: dataSet.name,
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, DataSet } from 'server/service'
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 = { oos: boolean; ooc: boolean }
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 (typeof values === 'undefined') {
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
- // if (ooc && oos) {
76
- // return { ooc, oos }
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
@@ -1,2 +1,2 @@
1
- export * from './data-use-case'
2
1
  export * from './create-data-sample'
2
+ export * from './data-use-case'
@@ -1,6 +1,3 @@
1
1
  import { DataItem } from './data-item'
2
- import { DataItemQuery } from './data-item-query'
3
- import { DataItemMutation } from './data-item-mutation'
4
2
 
5
3
  export const entities = [DataItem]
6
- export const resolvers = [DataItemQuery, DataItemMutation]
@@ -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 { DataSample } from '../data-sample/data-sample'
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)
@@ -15,6 +15,9 @@ export class NewDataOoc {
15
15
  @Field(type => ObjectRef, { nullable: true })
16
16
  dataSet?: ObjectRef
17
17
 
18
+ @Field({ nullable: true })
19
+ dataSetVersion?: number
20
+
18
21
  @Field(type => ObjectRef, { nullable: true })
19
22
  dataSample?: ObjectRef
20
23