@things-factory/dataset 5.0.0-zeta.20 → 5.0.0-zeta.23
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/dist-server/controllers/jasper-report.js +14 -9
- package/dist-server/controllers/jasper-report.js.map +1 -1
- package/dist-server/service/data-set/data-set-type.js +12 -9
- package/dist-server/service/data-set/data-set-type.js.map +1 -1
- package/package.json +18 -18
- package/server/controllers/jasper-report.ts +58 -48
- package/server/service/data-set/data-set-type.ts +2 -1
@@ -10,8 +10,12 @@ const attachment_base_1 = require("@things-factory/attachment-base");
|
|
10
10
|
const aws_base_1 = require("@things-factory/aws-base");
|
11
11
|
const env_1 = require("@things-factory/env");
|
12
12
|
const dataReportConfig = env_1.config.get('dataReport');
|
13
|
-
const { jasper: { endpoint: { protocol: PROTOCOL, host: HOST, port: PORT }, datasource: { database: DATABASE } } } = dataReportConfig
|
14
|
-
|
13
|
+
const { jasper: { endpoint: { protocol: PROTOCOL, host: HOST, port: PORT }, datasource: { database: DATABASE } } } = dataReportConfig || {
|
14
|
+
jasper: {
|
15
|
+
endpoint: {},
|
16
|
+
datasource: {}
|
17
|
+
}
|
18
|
+
};
|
15
19
|
function transformValuesToRows(queryResult) {
|
16
20
|
var parseData = [];
|
17
21
|
let index = 1;
|
@@ -61,11 +65,12 @@ function pivotData(rows) {
|
|
61
65
|
for (let key in data) {
|
62
66
|
/** @todo rule to display or not, about unspecified spec */
|
63
67
|
const value = data[key];
|
64
|
-
!((_a = spec[key]) === null || _a === void 0 ? void 0 : _a.hidden) &&
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
68
|
+
!((_a = spec[key]) === null || _a === void 0 ? void 0 : _a.hidden) &&
|
69
|
+
parsedData.push({
|
70
|
+
item: ((_b = spec[key]) === null || _b === void 0 ? void 0 : _b.name) || key,
|
71
|
+
index,
|
72
|
+
value: Array.isArray(value) ? value.join(', ') : value
|
73
|
+
});
|
69
74
|
}
|
70
75
|
if (j !== 0) {
|
71
76
|
index = index + j;
|
@@ -105,7 +110,7 @@ async function queryAthena(params) {
|
|
105
110
|
AND datasetid = '${dataSetId}'
|
106
111
|
AND workdate >= '${fromWorkDate}'
|
107
112
|
AND workdate <= '${toWorkDate}'
|
108
|
-
${workShift ?
|
113
|
+
${workShift ? "AND workshift = '" + workShift + "'" : ''}
|
109
114
|
ORDER BY collected_at`,
|
110
115
|
db: DATABASE
|
111
116
|
};
|
@@ -122,7 +127,7 @@ async function renderJasperReport(context) {
|
|
122
127
|
* const variables = await gql(dataSet(id:${dataSetId}) {
|
123
128
|
* name, description, partition_keys, timezone
|
124
129
|
* })
|
125
|
-
|
130
|
+
*/
|
126
131
|
query['domain'] = domain === null || domain === void 0 ? void 0 : domain.subdomain;
|
127
132
|
query['timezone'] = domain === null || domain === void 0 ? void 0 : domain.timezone;
|
128
133
|
const queryResult = await queryAthena(query);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"jasper-report.js","sourceRoot":"","sources":["../../server/controllers/jasper-report.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAgC;AAChC,4DAA8B;AAE9B,qEAAyD;AACzD,uDAA2D;AAC3D,6CAA4C;AAE5C,MAAM,gBAAgB,GAAG,YAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;AACjD,MAAM,
|
1
|
+
{"version":3,"file":"jasper-report.js","sourceRoot":"","sources":["../../server/controllers/jasper-report.ts"],"names":[],"mappings":"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"}
|
@@ -8,10 +8,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
10
|
};
|
11
|
-
var
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
14
|
+
var _a, _b, _c, _d, _e, _f;
|
12
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
13
16
|
exports.DataSetList = exports.DataSetPatch = exports.NewDataSet = void 0;
|
14
|
-
const
|
17
|
+
const GraphQLUpload_js_1 = __importDefault(require("graphql-upload/GraphQLUpload.js"));
|
15
18
|
const type_graphql_1 = require("type-graphql");
|
16
19
|
const shell_1 = require("@things-factory/shell");
|
17
20
|
const data_item_type_1 = require("./data-item-type");
|
@@ -87,8 +90,8 @@ __decorate([
|
|
87
90
|
__metadata("design:type", String)
|
88
91
|
], NewDataSet.prototype, "reportView", void 0);
|
89
92
|
__decorate([
|
90
|
-
(0, type_graphql_1.Field)(type =>
|
91
|
-
__metadata("design:type",
|
93
|
+
(0, type_graphql_1.Field)(type => GraphQLUpload_js_1.default, { nullable: true }),
|
94
|
+
__metadata("design:type", Object)
|
92
95
|
], NewDataSet.prototype, "reportTemplate", void 0);
|
93
96
|
NewDataSet = __decorate([
|
94
97
|
(0, type_graphql_1.InputType)()
|
@@ -110,11 +113,11 @@ __decorate([
|
|
110
113
|
], DataSetPatch.prototype, "description", void 0);
|
111
114
|
__decorate([
|
112
115
|
(0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
|
113
|
-
__metadata("design:type", typeof (
|
116
|
+
__metadata("design:type", typeof (_d = typeof shell_1.ObjectRef !== "undefined" && shell_1.ObjectRef) === "function" ? _d : Object)
|
114
117
|
], DataSetPatch.prototype, "supervisoryRole", void 0);
|
115
118
|
__decorate([
|
116
119
|
(0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
|
117
|
-
__metadata("design:type", typeof (
|
120
|
+
__metadata("design:type", typeof (_e = typeof shell_1.ObjectRef !== "undefined" && shell_1.ObjectRef) === "function" ? _e : Object)
|
118
121
|
], DataSetPatch.prototype, "entryRole", void 0);
|
119
122
|
__decorate([
|
120
123
|
(0, type_graphql_1.Field)({ nullable: true }),
|
@@ -130,7 +133,7 @@ __decorate([
|
|
130
133
|
], DataSetPatch.prototype, "useCase", void 0);
|
131
134
|
__decorate([
|
132
135
|
(0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
|
133
|
-
__metadata("design:type", typeof (
|
136
|
+
__metadata("design:type", typeof (_f = typeof shell_1.ScalarObject !== "undefined" && shell_1.ScalarObject) === "function" ? _f : Object)
|
134
137
|
], DataSetPatch.prototype, "partitionKeys", void 0);
|
135
138
|
__decorate([
|
136
139
|
(0, type_graphql_1.Field)(type => [data_item_type_1.DataItemPatch], { nullable: true }),
|
@@ -169,8 +172,8 @@ __decorate([
|
|
169
172
|
__metadata("design:type", String)
|
170
173
|
], DataSetPatch.prototype, "reportView", void 0);
|
171
174
|
__decorate([
|
172
|
-
(0, type_graphql_1.Field)(type =>
|
173
|
-
__metadata("design:type",
|
175
|
+
(0, type_graphql_1.Field)(type => GraphQLUpload_js_1.default, { nullable: true }),
|
176
|
+
__metadata("design:type", Object)
|
174
177
|
], DataSetPatch.prototype, "reportTemplate", void 0);
|
175
178
|
__decorate([
|
176
179
|
(0, type_graphql_1.Field)(),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-set-type.js","sourceRoot":"","sources":["../../../server/service/data-set/data-set-type.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"data-set-type.js","sourceRoot":"","sources":["../../../server/service/data-set/data-set-type.ts"],"names":[],"mappings":"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"}
|
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.23",
|
4
4
|
"main": "dist-server/index.js",
|
5
5
|
"browser": "client/index.js",
|
6
6
|
"things-factory": true,
|
@@ -24,24 +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/grist-editor": "^1.0.0-beta.
|
32
|
-
"@operato/i18n": "^1.0.0-beta.
|
33
|
-
"@operato/layout": "^1.0.0-beta.
|
34
|
-
"@operato/shell": "^1.0.0-beta.
|
35
|
-
"@operato/styles": "^1.0.0-beta.
|
36
|
-
"@operato/utils": "^1.0.0-beta.
|
37
|
-
"@things-factory/auth-base": "^5.0.0-zeta.
|
38
|
-
"@things-factory/aws-base": "^5.0.0-zeta.
|
39
|
-
"@things-factory/board-service": "^5.0.0-zeta.
|
40
|
-
"@things-factory/env": "^5.0.0-zeta.
|
41
|
-
"@things-factory/shell": "^5.0.0-zeta.
|
42
|
-
"@things-factory/work-shift": "^5.0.0-zeta.
|
27
|
+
"@operato/app": "^1.0.0-beta.49",
|
28
|
+
"@operato/data-grist": "^1.0.0-beta.49",
|
29
|
+
"@operato/dataset": "^1.0.0-beta.49",
|
30
|
+
"@operato/graphql": "^1.0.0-beta.49",
|
31
|
+
"@operato/grist-editor": "^1.0.0-beta.49",
|
32
|
+
"@operato/i18n": "^1.0.0-beta.49",
|
33
|
+
"@operato/layout": "^1.0.0-beta.49",
|
34
|
+
"@operato/shell": "^1.0.0-beta.49",
|
35
|
+
"@operato/styles": "^1.0.0-beta.49",
|
36
|
+
"@operato/utils": "^1.0.0-beta.49",
|
37
|
+
"@things-factory/auth-base": "^5.0.0-zeta.23",
|
38
|
+
"@things-factory/aws-base": "^5.0.0-zeta.23",
|
39
|
+
"@things-factory/board-service": "^5.0.0-zeta.23",
|
40
|
+
"@things-factory/env": "^5.0.0-zeta.23",
|
41
|
+
"@things-factory/shell": "^5.0.0-zeta.23",
|
42
|
+
"@things-factory/work-shift": "^5.0.0-zeta.23",
|
43
43
|
"cron-parser": "^4.3.0",
|
44
44
|
"moment-timezone": "^0.5.34"
|
45
45
|
},
|
46
|
-
"gitHead": "
|
46
|
+
"gitHead": "a77e5b8804e88e81b81bbc78c43663f4246e48b0"
|
47
47
|
}
|
@@ -6,47 +6,53 @@ import { AthenaController } from '@things-factory/aws-base'
|
|
6
6
|
import { config } from '@things-factory/env'
|
7
7
|
|
8
8
|
const dataReportConfig = config.get('dataReport')
|
9
|
-
const {
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
const {
|
10
|
+
jasper: {
|
11
|
+
endpoint: { protocol: PROTOCOL, host: HOST, port: PORT },
|
12
|
+
datasource: { database: DATABASE }
|
13
|
+
}
|
14
|
+
} = dataReportConfig || {
|
15
|
+
jasper: {
|
16
|
+
endpoint: {},
|
17
|
+
datasource: {}
|
18
|
+
}
|
19
|
+
}
|
13
20
|
|
14
|
-
/** author: ywnam123 */
|
15
21
|
function transformValuesToRows(queryResult) {
|
16
22
|
var parseData = []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
}
|
23
|
+
let index = 1
|
24
|
+
for (let i = 0; i < queryResult.Items.length; i++) {
|
25
|
+
var j = 0
|
26
|
+
const data = JSON.parse(queryResult.Items[i].data)
|
27
|
+
const spec = JSON.parse(queryResult.Items[i].spec)
|
28
|
+
|
29
|
+
for (let key in data) {
|
30
|
+
if (Array.isArray(data[key])) {
|
31
|
+
for (j = 0; j < data[key].length; j++) {
|
32
|
+
for (let specKey in spec) {
|
33
|
+
if (key === specKey) {
|
34
|
+
parseData.push({
|
35
|
+
item: spec[specKey].name,
|
36
|
+
index: index + j,
|
37
|
+
value: String(data[key][j])
|
38
|
+
})
|
34
39
|
}
|
35
40
|
}
|
36
|
-
} else {
|
37
|
-
parseData.push({
|
38
|
-
item: key,
|
39
|
-
index,
|
40
|
-
value: String(data[key])
|
41
|
-
})
|
42
41
|
}
|
43
|
-
}
|
44
|
-
if (j !== 0) {
|
45
|
-
index = index + j
|
46
42
|
} else {
|
47
|
-
|
43
|
+
parseData.push({
|
44
|
+
item: key,
|
45
|
+
index,
|
46
|
+
value: String(data[key])
|
47
|
+
})
|
48
48
|
}
|
49
49
|
}
|
50
|
+
if (j !== 0) {
|
51
|
+
index = index + j
|
52
|
+
} else {
|
53
|
+
index = index + 1
|
54
|
+
}
|
55
|
+
}
|
50
56
|
}
|
51
57
|
|
52
58
|
/** @todo considering trasformation in lambda, as massive dataset */
|
@@ -61,11 +67,12 @@ function pivotData(rows) {
|
|
61
67
|
for (let key in data) {
|
62
68
|
/** @todo rule to display or not, about unspecified spec */
|
63
69
|
const value = data[key]
|
64
|
-
!
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
70
|
+
!spec[key]?.hidden &&
|
71
|
+
parsedData.push({
|
72
|
+
item: spec[key]?.name || key,
|
73
|
+
index,
|
74
|
+
value: Array.isArray(value) ? value.join(', ') : value
|
75
|
+
})
|
69
76
|
}
|
70
77
|
if (j !== 0) {
|
71
78
|
index = index + j
|
@@ -95,6 +102,7 @@ function parseJsonDataField(rows) {
|
|
95
102
|
}
|
96
103
|
|
97
104
|
const athenaClient = new AthenaController()
|
105
|
+
|
98
106
|
async function queryAthena(params) {
|
99
107
|
const { table, domain, dataSetId, fromWorkDate, toWorkDate, workShift, timezone } = params
|
100
108
|
const queryData = {
|
@@ -108,7 +116,7 @@ async function queryAthena(params) {
|
|
108
116
|
AND datasetid = '${dataSetId}'
|
109
117
|
AND workdate >= '${fromWorkDate}'
|
110
118
|
AND workdate <= '${toWorkDate}'
|
111
|
-
${workShift ?
|
119
|
+
${workShift ? "AND workshift = '" + workShift + "'" : ''}
|
112
120
|
ORDER BY collected_at`,
|
113
121
|
db: DATABASE
|
114
122
|
}
|
@@ -116,19 +124,23 @@ async function queryAthena(params) {
|
|
116
124
|
|
117
125
|
return await athenaClient.query(queryData)
|
118
126
|
}
|
119
|
-
|
120
|
-
|
127
|
+
|
128
|
+
export async function renderJasperReport(context: any) {
|
129
|
+
const {
|
130
|
+
state: { domain },
|
131
|
+
query
|
132
|
+
} = context
|
121
133
|
|
122
134
|
const template = await STORAGE.readFile(query['template'] || 'dynamic_header_sample.jrxml', 'utf-8')
|
123
135
|
let templateType = query['templateType'] || 'crosstab'
|
124
136
|
let parsedData = []
|
125
137
|
|
126
138
|
// @todo: get dataset timezone
|
127
|
-
/**
|
139
|
+
/**
|
128
140
|
* const variables = await gql(dataSet(id:${dataSetId}) {
|
129
141
|
* name, description, partition_keys, timezone
|
130
142
|
* })
|
131
|
-
|
143
|
+
*/
|
132
144
|
|
133
145
|
query['domain'] = domain?.subdomain
|
134
146
|
query['timezone'] = domain?.timezone
|
@@ -137,8 +149,7 @@ export async function renderJasperReport(context: any) {
|
|
137
149
|
|
138
150
|
if (!rows.length) {
|
139
151
|
return '<h3>Not found result.</h3>'
|
140
|
-
}
|
141
|
-
else {
|
152
|
+
} else {
|
142
153
|
const firstRow = rows[0]
|
143
154
|
// uses the first row values as data-set has no history data.
|
144
155
|
const parameters = {
|
@@ -146,18 +157,18 @@ export async function renderJasperReport(context: any) {
|
|
146
157
|
description: firstRow.description,
|
147
158
|
...query
|
148
159
|
}
|
149
|
-
|
160
|
+
|
150
161
|
if (templateType === 'crosstab') {
|
151
162
|
parsedData = pivotData(rows)
|
152
163
|
} else {
|
153
164
|
parsedData = parseJsonDataField(rows)
|
154
165
|
}
|
155
|
-
|
166
|
+
|
156
167
|
const formData = new FormData()
|
157
168
|
formData.append('template', template)
|
158
169
|
formData.append('jsonString', JSON.stringify(parsedData))
|
159
170
|
formData.append('parameters', JSON.stringify(parameters))
|
160
|
-
|
171
|
+
|
161
172
|
const reportUrl = `${PROTOCOL || 'http'}://${HOST}:${PORT}/rest/report/show_html`
|
162
173
|
const response = await fetch(reportUrl, {
|
163
174
|
method: 'POST',
|
@@ -166,5 +177,4 @@ export async function renderJasperReport(context: any) {
|
|
166
177
|
|
167
178
|
return await response.text()
|
168
179
|
}
|
169
|
-
|
170
180
|
}
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import { FileUpload
|
1
|
+
import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'
|
2
|
+
import GraphQLUpload from 'graphql-upload/GraphQLUpload.js'
|
2
3
|
import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
|
3
4
|
|
4
5
|
import { ObjectRef, ScalarObject } from '@things-factory/shell'
|