@things-factory/dataset 5.0.14 → 5.0.16
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/README.md +40 -16
- package/assets/data-report.jpg +0 -0
- package/assets/diagram.jpg +0 -0
- package/assets/glue-table-indices.png +0 -0
- package/client/pages/data-archive/data-archive-list-page.js +290 -0
- package/client/pages/data-archive/data-archive-request-popup.js +180 -0
- package/client/pages/data-key-set/data-key-set-list-page.js +98 -3
- package/client/pages/data-report/data-report-embed-page.js +16 -12
- package/client/pages/data-report/data-report-list-page.js +18 -15
- package/client/pages/data-report/data-report-samples-page.js +186 -0
- package/client/pages/data-set/data-set-list-page.js +9 -1
- package/client/route.js +20 -12
- package/config/config.development.js +21 -0
- package/config/config.production.js +32 -11
- package/dist-server/controllers/create-data-sample.js +3 -1
- package/dist-server/controllers/create-data-sample.js.map +1 -1
- package/dist-server/controllers/jasper-report.js +19 -14
- package/dist-server/controllers/jasper-report.js.map +1 -1
- package/dist-server/controllers/shiny-report.js +41 -0
- package/dist-server/controllers/shiny-report.js.map +1 -0
- package/dist-server/routes.js +8 -0
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/data-archive/data-archive-mutation.js +227 -0
- package/dist-server/service/data-archive/data-archive-mutation.js.map +1 -0
- package/dist-server/service/data-archive/data-archive-query.js +85 -0
- package/dist-server/service/data-archive/data-archive-query.js.map +1 -0
- package/dist-server/service/data-archive/data-archive-type.js +74 -0
- package/dist-server/service/data-archive/data-archive-type.js.map +1 -0
- package/dist-server/service/data-archive/data-archive.js +80 -0
- package/dist-server/service/data-archive/data-archive.js.map +1 -0
- package/dist-server/service/data-archive/index.js +9 -0
- package/dist-server/service/data-archive/index.js.map +1 -0
- package/dist-server/service/data-key-set/data-key-item-type.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-mutation.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-query.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-type.js +17 -0
- package/dist-server/service/data-key-set/data-key-set-type.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set.js +11 -0
- package/dist-server/service/data-key-set/data-key-set.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-mutation.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-mutation.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
- package/dist-server/service/data-sample/data-sample.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-mutation.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor.js.map +1 -1
- package/dist-server/service/data-set/data-item-type.js.map +1 -1
- package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/dist-server/service/data-set/data-set-type.js.map +1 -1
- package/dist-server/service/data-set/data-set.js +2 -0
- package/dist-server/service/data-set/data-set.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history-type.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history.js.map +1 -1
- package/dist-server/service/data-set-history/event-subscriber.js.map +1 -1
- package/dist-server/service/data-spec/data-spec-query.js.map +1 -1
- package/dist-server/service/data-spec/data-spec.js.map +1 -1
- package/dist-server/service/index.js +5 -2
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/utils/config-resolver.js +33 -0
- package/dist-server/utils/config-resolver.js.map +1 -0
- package/dist-server/utils/index.js +5 -0
- package/dist-server/utils/index.js.map +1 -0
- package/helps/dataset/data-archive.md +9 -0
- package/helps/dataset/data-entry-list.md +2 -0
- package/helps/dataset/data-key-set.md +10 -0
- package/helps/dataset/data-ooc.md +11 -0
- package/helps/dataset/data-report-list.md +4 -0
- package/helps/dataset/data-sample-search.md +2 -0
- package/helps/dataset/data-sample.md +11 -0
- package/helps/dataset/data-sensor.md +13 -0
- package/helps/dataset/data-set.md +28 -0
- package/helps/dataset/ui/data-item-list.md +19 -0
- package/helps/dataset/ui/data-key-item-list.md +2 -0
- package/package.json +7 -7
- package/server/controllers/create-data-sample.ts +4 -0
- package/server/controllers/jasper-report.ts +20 -14
- package/server/controllers/shiny-report.ts +60 -0
- package/server/routes.ts +11 -0
- package/server/service/data-archive/data-archive-mutation.ts +253 -0
- package/server/service/data-archive/data-archive-query.ts +56 -0
- package/server/service/data-archive/data-archive-type.ts +49 -0
- package/server/service/data-archive/data-archive.ts +69 -0
- package/server/service/data-archive/index.ts +6 -0
- package/server/service/data-key-set/data-key-set-type.ts +13 -0
- package/server/service/data-key-set/data-key-set.ts +9 -0
- package/server/service/data-set/data-set.ts +3 -1
- package/server/service/index.ts +5 -2
- package/server/utils/config-resolver.ts +29 -0
- package/server/utils/index.ts +1 -0
- package/things-factory.config.js +20 -12
- package/translations/en.json +18 -2
- package/translations/ko.json +16 -1
- package/translations/ms.json +2 -0
- package/translations/zh.json +2 -0
- package/dist-server/service/data-item/data-item-mutation.js +0 -69
- package/dist-server/service/data-item/data-item-mutation.js.map +0 -1
- package/dist-server/service/data-item/data-item-query.js +0 -100
- package/dist-server/service/data-item/data-item-query.js.map +0 -1
- package/dist-server/service/data-item/data-item-type.js +0 -80
- package/dist-server/service/data-item/data-item-type.js.map +0 -1
- package/dist-server/service/data-item/data-item.js +0 -136
- package/dist-server/service/data-item/data-item.js.map +0 -1
- package/dist-server/service/data-item/index.js +0 -9
- package/dist-server/service/data-item/index.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"jasper-report.js","sourceRoot":"","sources":["../../server/controllers/jasper-report.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\n\nimport { STORAGE } from '@things-factory/attachment-base'\nimport { AthenaController } from '@things-factory/aws-base'\nimport { config } from '@things-factory/env'\n\nconst dataReportConfig = config.get('dataReport')\nconst {\n jasper: {\n endpoint: { protocol: PROTOCOL, host: HOST, port: PORT },\n datasource: { database: DATABASE }\n }\n} = dataReportConfig || {\n jasper: {\n endpoint: {},\n datasource: {}\n }\n}\n\nfunction transformValuesToRows(queryResult) {\n var parseData = []\n let index = 1\n for (let i = 0; i < queryResult.Items.length; i++) {\n var j = 0\n const data = JSON.parse(queryResult.Items[i].data)\n const spec = JSON.parse(queryResult.Items[i].spec)\n\n for (let key in data) {\n if (Array.isArray(data[key])) {\n for (j = 0; j < data[key].length; j++) {\n for (let specKey in spec) {\n if (key === specKey) {\n parseData.push({\n item: spec[specKey].name,\n index: index + j,\n value: String(data[key][j])\n })\n }\n }\n }\n } else {\n parseData.push({\n item: key,\n index,\n value: String(data[key])\n })\n }\n }\n if (j !== 0) {\n index = index + j\n } else {\n index = index + 1\n }\n }\n}\n\n/** @todo considering trasformation in lambda, as massive dataset */\nfunction pivotData(rows) {\n let parsedData = []\n let index = 1\n for (let i = 0; i < rows.length; i++) {\n let j = 0\n const data = JSON.parse(rows[i].data)\n const spec = JSON.parse(rows[i].spec)\n\n for (let key in data) {\n /** @todo rule to display or not, about unspecified spec */\n const value = data[key]\n !spec[key]?.hidden &&\n parsedData.push({\n item: spec[key]?.name || key,\n index,\n value: Array.isArray(value) ? value.join(', ') : value\n })\n }\n if (j !== 0) {\n index = index + j\n } else {\n index = index + 1\n }\n }\n\n return parsedData\n}\n\nfunction parseJsonDataField(rows) {\n let parsedData = []\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i]\n const data = JSON.parse(row.data)\n for (let key in data) {\n if (Array.isArray(data[key])) {\n data[key] = data[key].toString()\n }\n }\n delete row.data\n parsedData.push({ ...row, ...data })\n }\n\n return parsedData\n}\n\nconst athenaClient = new AthenaController()\n\nasync function queryAthena(params) {\n const { table, domain, dataSetId, fromWorkDate, toWorkDate, workShift, timezone } = params\n const queryData = {\n sql: `SELECT name, description, data, spec, workdate, workshift, \n DATE_FORMAT(\n FROM_UNIXTIME(collected_at / 1000 / 1000) AT TIME ZONE '${timezone || 'UTC'}', \n '%Y-%m-%d %H:%i:%s'\n ) AS collected_at\n FROM ${table} \n WHERE domain='${domain}' \n AND datasetid = '${dataSetId}'\n AND workdate >= '${fromWorkDate}'\n AND workdate <= '${toWorkDate}'\n ${workShift ? \"AND workshift = '\" + workShift + \"'\" : ''}\n ORDER BY collected_at`,\n db: DATABASE\n }\n // and json_extract_scalar(data, '$.dauid') = 'A8032AD81730'\n\n return await athenaClient.query(queryData)\n}\n\nexport async function renderJasperReport(context: any) {\n const {\n state: { domain },\n query\n } = context\n\n const template = await STORAGE.readFile(query['template'] || 'dynamic_header_sample.jrxml', 'utf-8')\n let templateType = query['templateType'] || 'crosstab'\n let parsedData = []\n\n // @todo: get dataset timezone\n /**\n * const variables = await gql(dataSet(id:${dataSetId}) {\n * name, description, partition_keys, timezone\n * })\n */\n\n query['domain'] = domain?.subdomain\n query['timezone'] = domain?.timezone\n const queryResult = await queryAthena(query)\n const rows = queryResult.Items\n\n if (!rows.length) {\n return '<h3>Not found result.</h3>'\n } else {\n const firstRow = rows[0]\n // uses the first row values as data-set has no history data.\n const parameters = {\n name: firstRow.name,\n description: firstRow.description,\n ...query\n }\n\n if (templateType === 'crosstab') {\n parsedData = pivotData(rows)\n } else {\n parsedData = parseJsonDataField(rows)\n }\n\n const formData = new FormData()\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(parsedData))\n formData.append('parameters', JSON.stringify(parameters))\n\n const reportUrl = `${PROTOCOL || 'http'}://${HOST}:${PORT}/rest/report/show_html`\n const response = await fetch(reportUrl, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"jasper-report.js","sourceRoot":"","sources":["../../server/controllers/jasper-report.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\n\nimport { getEndpointUrl } from '../utils/config-resolver'\n\nimport { STORAGE } from '@things-factory/attachment-base'\nimport { AthenaController } from '@things-factory/aws-base'\nimport { config } from '@things-factory/env'\n\nconst dataReportConfig = config.get('dataReport')\nconst {\n jasper: {\n endpoint: ENDPOINT,\n datasource: { database: DATABASE }\n }\n} = dataReportConfig || {\n jasper: {\n endpoint: {},\n datasource: {}\n }\n}\n\nfunction transformValuesToRows(queryResult) {\n var parseData = []\n let index = 1\n for (let i = 0; i < queryResult.Items.length; i++) {\n var j = 0\n const data = JSON.parse(queryResult.Items[i].data)\n const spec = JSON.parse(queryResult.Items[i].spec)\n\n for (let key in data) {\n if (Array.isArray(data[key])) {\n for (j = 0; j < data[key].length; j++) {\n for (let specKey in spec) {\n if (key === specKey) {\n parseData.push({\n item: spec[specKey].name,\n index: index + j,\n value: String(data[key][j])\n })\n }\n }\n }\n } else {\n parseData.push({\n item: key,\n index,\n value: String(data[key])\n })\n }\n }\n if (j !== 0) {\n index = index + j\n } else {\n index = index + 1\n }\n }\n}\n\n/** @todo considering trasformation in lambda, as massive dataset */\nfunction pivotData(rows) {\n let parsedData = []\n let index = 1\n for (let i = 0; i < rows.length; i++) {\n let j = 0\n const data = JSON.parse(rows[i].data)\n const spec = JSON.parse(rows[i].spec)\n\n for (let key in data) {\n /** @todo rule to display or not, about unspecified spec */\n const value = data[key]\n !spec[key]?.hidden &&\n parsedData.push({\n item: spec[key]?.name || key,\n index,\n value: Array.isArray(value) ? value.join(', ') : value\n })\n }\n if (j !== 0) {\n index = index + j\n } else {\n index = index + 1\n }\n }\n\n return parsedData\n}\n\nfunction parseJsonDataField(rows) {\n let parsedData = []\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i]\n const data = JSON.parse(row.data)\n for (let key in data) {\n if (Array.isArray(data[key])) {\n data[key] = data[key].toString()\n }\n }\n delete row.data\n parsedData.push({ ...row, ...data })\n }\n\n return parsedData\n}\n\nconst athenaClient = new AthenaController()\n\nasync function queryAthena(params) {\n const { table, domain, datasetId, startDate, endDate, workShift, timezone } = params\n const queryData = {\n sql: `SELECT ds.name, ds.description, ds.data, dsh.data_items as spec, ds.workdate, ds.workshift,\n DATE_FORMAT(\n FROM_UNIXTIME(collected_at / 1000 / 1000) AT TIME ZONE '${timezone || 'UTC'}', \n '%Y-%m-%d %H:%i:%s'\n ) AS dscollected_at\n FROM ${table} ds\n JOIN data_set_histories dsh \n ON (ds.datasetid = dsh.original_id\n and ds.data_set_version = dsh.version)\n WHERE ds.domain='${domain}' \n AND ds.datasetid = '${datasetId}'\n AND ds.workdate >= '${startDate}'\n AND ds.workdate <= '${endDate}'\n ${workShift ? \"AND ds.workshift = '\" + workShift + \"'\" : ''}\n ORDER BY ds.collected_at`,\n db: DATABASE\n }\n // and json_extract_scalar(data, '$.dauid') = 'A8032AD81730'\n\n return await athenaClient.query(queryData)\n}\n\nexport async function renderJasperReport(context: any) {\n const {\n state: { domain },\n query\n } = context\n\n const template = await STORAGE.readFile(query['reportTemplate'] || 'dynamic_header_sample.jrxml', 'utf-8')\n let templateType = query['templateType'] || 'crosstab'\n let parsedData = []\n\n // @todo: get dataset timezone\n /**\n * const variables = await gql(dataSet(id:${dataSetId}) {\n * name, description, partition_keys, timezone\n * })\n */\n\n query['domain'] = domain?.subdomain\n query['timezone'] = domain?.timezone\n const queryResult = await queryAthena(query)\n const rows = queryResult.Items\n\n if (!rows.length) {\n return '<h3>Not found result.</h3>'\n } else {\n const firstRow = rows[0]\n // uses the first row values as data-set has no history data.\n const parameters = {\n name: firstRow.name,\n description: firstRow.description,\n ...query\n }\n\n if (templateType === 'crosstab') {\n parsedData = pivotData(rows)\n } else {\n parsedData = parseJsonDataField(rows)\n }\n\n const formData = new FormData()\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(parsedData))\n formData.append('parameters', JSON.stringify(parameters))\n\n const { reportView } = query\n const url = getEndpointUrl(ENDPOINT, reportView)\n const response = await fetch(url, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n }\n}\n"]}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.renderShinyReport = void 0;
|
4
|
+
const env_1 = require("@things-factory/env");
|
5
|
+
const config_resolver_1 = require("../utils/config-resolver");
|
6
|
+
const querystring = require('querystring');
|
7
|
+
const debug = require('debug')('things-factory:dataset:shiny-report');
|
8
|
+
const dataReportConfig = env_1.config.get('dataReport');
|
9
|
+
const { shiny: { endpoint: ENDPOINT, datasource: { database: DATABASE } } } = Object.assign({
|
10
|
+
shiny: {
|
11
|
+
endpoint: {},
|
12
|
+
datasource: {}
|
13
|
+
}
|
14
|
+
}, dataReportConfig);
|
15
|
+
async function renderShinyReport(context) {
|
16
|
+
debug('render:context', context);
|
17
|
+
try {
|
18
|
+
const { access_token: token } = querystring.parse(context.header.cookie, ';');
|
19
|
+
const { state: { domain }, query, response, } = context;
|
20
|
+
const urlParams = querystring.stringify(Object.assign(Object.assign({ token }, query), { database: DATABASE,
|
21
|
+
domain: domain === null || domain === void 0 ? void 0 : domain.subdomain }));
|
22
|
+
// const jsonParams = JSON.stringify({
|
23
|
+
// ...query,
|
24
|
+
// ...{ database: DATABASE,
|
25
|
+
// domain: domain?.subdomain }
|
26
|
+
// })
|
27
|
+
const subpath = (query === null || query === void 0 ? void 0 : query.reportView) || '';
|
28
|
+
if (!subpath) {
|
29
|
+
return context.body = '';
|
30
|
+
}
|
31
|
+
const url = (0, config_resolver_1.getEndpointUrl)(ENDPOINT, subpath);
|
32
|
+
// const reportUrl = `${protocol}${url}/?params=${jsonParams}`
|
33
|
+
const reportUrl = `${url}/?${urlParams}`;
|
34
|
+
response.redirect(reportUrl);
|
35
|
+
}
|
36
|
+
catch (ex) {
|
37
|
+
context.body = `Error: ${ex.message} || ''`;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
exports.renderShinyReport = renderShinyReport;
|
41
|
+
//# sourceMappingURL=shiny-report.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shiny-report.js","sourceRoot":"","sources":["../../server/controllers/shiny-report.ts"],"names":[],"mappings":";;;AAEA,6CAA4C;AAC5C,8DAAyD;AAEzD,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAA;AACrE,MAAM,gBAAgB,GAAG,YAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;AACjD,MAAM,EACJ,KAAK,EAAE,EACL,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACnC,EACF,GAAG,MAAM,CAAC,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;KACf;CAAC,EAAE,gBAAgB,CAAC,CAAA;AAGhB,KAAK,UAAU,iBAAiB,CAAC,OAAY;IAClD,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;IAEhC,IAAI;QACF,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC7E,MAAM,EACJ,KAAK,EAAE,EAAE,MAAM,EAAE,EACjB,KAAK,EACL,QAAQ,GACT,GAAG,OAAO,CAAA;QAEX,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,+BACrC,KAAK,IACF,KAAK,GACL,EAAE,QAAQ,EAAE,QAAQ;YACvB,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE,EAC3B,CAAA;QAEF,uCAAuC;QACvC,eAAe;QACf,+BAA+B;QAC/B,gCAAgC;QAChC,KAAK;QAEL,MAAM,OAAO,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,KAAI,EAAE,CAAA;QAEvC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,OAAO,CAAC,IAAI,GAAG,EAAE,CAAA;SACzB;QAED,MAAM,GAAG,GAAG,IAAA,gCAAc,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC7C,8DAA8D;QAC9D,MAAM,SAAS,GAAG,GAAG,GAAG,KAAK,SAAS,EAAE,CAAA;QAExC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;KAC7B;IAAC,OAAM,EAAE,EAAE;QACV,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC,OAAO,QAAQ,CAAA;KAC5C;AAEH,CAAC;AAvCD,8CAuCC","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { config } from '@things-factory/env'\nimport { getEndpointUrl } from '../utils/config-resolver'\n\nconst querystring = require('querystring')\nconst debug = require('debug')('things-factory:dataset:shiny-report')\nconst dataReportConfig = config.get('dataReport')\nconst {\n shiny: {\n endpoint: ENDPOINT,\n datasource: { database: DATABASE }\n }\n} = Object.assign({\n shiny: {\n endpoint: {},\n datasource: {}\n }}, dataReportConfig)\n\n\nexport async function renderShinyReport(context: any) {\n debug('render:context', context)\n \n try {\n const { access_token: token } = querystring.parse(context.header.cookie, ';')\n const {\n state: { domain },\n query,\n response,\n } = context\n \n const urlParams = querystring.stringify({ \n token,\n ...query, \n ...{ database: DATABASE, \n domain: domain?.subdomain }\n })\n \n // const jsonParams = JSON.stringify({ \n // ...query, \n // ...{ database: DATABASE, \n // domain: domain?.subdomain }\n // })\n \n const subpath = query?.reportView || ''\n\n if (!subpath) {\n return context.body = ''\n }\n\n const url = getEndpointUrl(ENDPOINT, subpath)\n // const reportUrl = `${protocol}${url}/?params=${jsonParams}`\n const reportUrl = `${url}/?${urlParams}`\n\n response.redirect(reportUrl)\n } catch(ex) {\n context.body = `Error: ${ex.message} || ''`\n }\n \n}\n"]}
|
package/dist-server/routes.js
CHANGED
@@ -4,6 +4,7 @@ const typeorm_1 = require("typeorm");
|
|
4
4
|
const auth_base_1 = require("@things-factory/auth-base");
|
5
5
|
const create_data_sample_1 = require("./controllers/create-data-sample");
|
6
6
|
const jasper_report_1 = require("./controllers/jasper-report");
|
7
|
+
const shiny_report_1 = require("./controllers/shiny-report");
|
7
8
|
const data_sensor_1 = require("./service/data-sensor/data-sensor");
|
8
9
|
process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
|
9
10
|
/*
|
@@ -73,5 +74,12 @@ process.on('bootstrap-module-domain-private-route', (app, domainPrivateRouter) =
|
|
73
74
|
domainPrivateRouter.get('/data-report/jasper', async (context, next) => {
|
74
75
|
context.body = await (0, jasper_report_1.renderJasperReport)(context);
|
75
76
|
});
|
77
|
+
domainPrivateRouter.get('/data-report/shiny', async (context, next) => {
|
78
|
+
await (0, shiny_report_1.renderShinyReport)(context);
|
79
|
+
});
|
80
|
+
domainPrivateRouter.get('/data-report/:reportType', async (context, next) => {
|
81
|
+
let { reportType } = context.params;
|
82
|
+
context.body = `${reportType} Not Implemented.`;
|
83
|
+
});
|
76
84
|
});
|
77
85
|
//# sourceMappingURL=routes.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import { getConnection } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\n\nimport { createDataSample } from './controllers/create-data-sample'\nimport { renderJasperReport } from './controllers/jasper-report'\nimport { renderShinyReport } from './controllers/shiny-report'\nimport { DataSensor } from './service/data-sensor/data-sensor'\n\nprocess.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {\n /*\n * can add global public routes to application (auth not required, tenancy not required)\n *\n * ex) routes.get('/path', async(context, next) => {})\n * ex) routes.post('/path', async(context, next) => {})\n */\n\n globalPublicRouter.post('/sensor-data', async (context, next) => {\n // 데이타 검증\n const { deviceId, data, rawData, timestamp = Date.now() } = context.request.body\n if (!deviceId || !data) {\n throw new Error(`deviceId(${deviceId}) and data(${JSON.stringify(data)}) properties are mandatory`)\n }\n\n // make new data-sample\n await getConnection().transaction(async tx => {\n // find sensor through deviceId\n const sensor = await tx.getRepository(DataSensor).findOne({\n where: { deviceId },\n relations: ['domain', 'appliance', 'dataSet']\n })\n\n if (!sensor) {\n throw new Error(`Sensor having given deviceId(${deviceId}) not found`)\n }\n\n if (!sensor.active) {\n throw new Error(`State of the sensor given deviceId(${deviceId}) is not active`)\n }\n\n if (!sensor.appliance) {\n throw new Error(`Appliance of the sensor given deviceId(${deviceId}) is not set up`)\n }\n\n if (!sensor.dataSet) {\n throw new Error(`DataSet of the sensor given deviceId(${deviceId}) is not set up`)\n }\n\n const domain = sensor.domain\n const dataSet = sensor.dataSet\n const user: User = await tx.getRepository(User).findOne({\n where: {\n reference: sensor.appliance.id,\n userType: 'appliance'\n }\n })\n\n return await createDataSample(\n {\n dataSet,\n data,\n rawData,\n source: deviceId,\n collectedAt: new Date(timestamp)\n },\n { state: { domain, user, tx } }\n )\n })\n\n context.status = 200\n })\n})\n\nprocess.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRouter) => {\n /*\n * can add global private routes to application (auth required, tenancy not required)\n */\n})\n\nprocess.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n /*\n * can add domain public routes to application (auth not required, tenancy required)\n */\n})\n\nprocess.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {\n /*\n * can add domain private routes to application (auth required, tenancy required)\n */\n domainPrivateRouter.get('/data-report/jasper', async (context, next) => {\n context.body = await renderJasperReport(context)\n })\n\n domainPrivateRouter.get('/data-report/shiny', async (context, next) => {\n await renderShinyReport(context)\n })\n\n domainPrivateRouter.get('/data-report/:reportType', async (context, next) => {\n let { reportType } = context.params\n context.body = `${reportType} Not Implemented.`\n })\n \n})\n"]}
|
@@ -0,0 +1,227 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DataArchiveMutation = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
6
|
+
const typeorm_1 = require("typeorm");
|
7
|
+
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
8
|
+
const i18next_1 = tslib_1.__importDefault(require("i18next"));
|
9
|
+
const data_archive_1 = require("./data-archive");
|
10
|
+
const data_archive_type_1 = require("./data-archive-type");
|
11
|
+
const config_resolver_1 = require("../../utils/config-resolver");
|
12
|
+
const { config } = require('@things-factory/env');
|
13
|
+
const crypto = require('crypto');
|
14
|
+
let DataArchiveMutation = class DataArchiveMutation {
|
15
|
+
/**
|
16
|
+
* It may use 'func-[dev]-data-set-download' in https://github.com/operatochef/serverless
|
17
|
+
* This function requests athena query and save the result as csv.gz in s3
|
18
|
+
*/
|
19
|
+
async generatePresignedUrl(patch, context) {
|
20
|
+
const { domain, user, tx, notify, lng } = context.state;
|
21
|
+
// const dataArchiveRepo = tx.getRepository(DataArchive)
|
22
|
+
const t = i18next_1.default.getFixedT(lng, 'translations');
|
23
|
+
const { dataset: { endpoint, datasource: { database } } } = config.get('dataArchive');
|
24
|
+
const body = JSON.stringify(Object.assign({ domain: domain === null || domain === void 0 ? void 0 : domain.subdomain, database }, patch === null || patch === void 0 ? void 0 : patch.requestParams));
|
25
|
+
const url = (0, config_resolver_1.getEndpointUrl)(endpoint);
|
26
|
+
const fetched = await (0, node_fetch_1.default)(`${url}`, {
|
27
|
+
method: 'POST',
|
28
|
+
headers: { 'Content-Type': 'application/json' },
|
29
|
+
body
|
30
|
+
});
|
31
|
+
const message = {
|
32
|
+
receivers: [user.email],
|
33
|
+
mode: 'in-app',
|
34
|
+
title: '',
|
35
|
+
body: '',
|
36
|
+
url: ''
|
37
|
+
};
|
38
|
+
if (fetched.ok) {
|
39
|
+
const response = await fetched.json();
|
40
|
+
patch.downloadUrl = response['presignedUrl'];
|
41
|
+
patch.status = 'done';
|
42
|
+
message['title'] = t('title.data-archive downloads ready');
|
43
|
+
message['url'] = patch.downloadUrl;
|
44
|
+
}
|
45
|
+
else {
|
46
|
+
const error = await fetched.text();
|
47
|
+
console.log(error);
|
48
|
+
patch.status = 'error';
|
49
|
+
message['title'] = t('title.data-archive request failed');
|
50
|
+
// may not user-friendly message
|
51
|
+
message['body'] = error;
|
52
|
+
}
|
53
|
+
const result = await this.updateDataArchive(patch.id, patch, context);
|
54
|
+
notify && notify(message);
|
55
|
+
return result;
|
56
|
+
}
|
57
|
+
async createDataArchive(dataArchive, context) {
|
58
|
+
const { domain, user, tx } = context.state;
|
59
|
+
const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
|
60
|
+
const result = await dataArchiveRepo.save(Object.assign(Object.assign({}, dataArchive), { domain, creator: user, updater: user }));
|
61
|
+
return result;
|
62
|
+
}
|
63
|
+
async updateDataArchive(id, patch, context) {
|
64
|
+
const { domain, user, tx } = context.state;
|
65
|
+
const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
|
66
|
+
const dataArchive = await dataArchiveRepo.findOne({
|
67
|
+
where: { domain, id },
|
68
|
+
relations: ['domain', 'creator', 'updater']
|
69
|
+
});
|
70
|
+
const result = await dataArchiveRepo.save(Object.assign(Object.assign(Object.assign({}, dataArchive), patch), { updater: user }));
|
71
|
+
return result;
|
72
|
+
}
|
73
|
+
async updateMultipleDataArchive(patches, context) {
|
74
|
+
const { domain, user, tx } = context.state;
|
75
|
+
const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
|
76
|
+
let results = [];
|
77
|
+
const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
|
78
|
+
const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
|
79
|
+
if (_createRecords.length > 0) {
|
80
|
+
const cuFlag = '+';
|
81
|
+
for (let i = 0; i < _createRecords.length; i++) {
|
82
|
+
const newRecord = _createRecords[i];
|
83
|
+
const result = await dataArchiveRepo.save(Object.assign(Object.assign({}, newRecord), { domain, creator: user, updater: user }));
|
84
|
+
results.push(Object.assign(Object.assign({}, result), { cuFlag }));
|
85
|
+
}
|
86
|
+
}
|
87
|
+
if (_updateRecords.length > 0) {
|
88
|
+
const cuFlag = 'M';
|
89
|
+
for (let i = 0; i < _updateRecords.length; i++) {
|
90
|
+
const newRecord = _updateRecords[i];
|
91
|
+
const dataArchive = await dataArchiveRepo.findOne(newRecord.id, {
|
92
|
+
relations: ['domain', 'creator', 'updater']
|
93
|
+
});
|
94
|
+
const result = await dataArchiveRepo.save(Object.assign(Object.assign(Object.assign({}, dataArchive), newRecord), { updater: user }));
|
95
|
+
results.push(Object.assign(Object.assign({}, result), { cuFlag }));
|
96
|
+
}
|
97
|
+
}
|
98
|
+
return results;
|
99
|
+
}
|
100
|
+
async deleteDataArchive(id, context) {
|
101
|
+
const { domain, tx } = context.state;
|
102
|
+
await tx.getRepository(data_archive_1.DataArchive).delete({ domain, id });
|
103
|
+
return true;
|
104
|
+
}
|
105
|
+
async deleteDataArchives(ids, context) {
|
106
|
+
const { domain, tx } = context.state;
|
107
|
+
await tx.getRepository(data_archive_1.DataArchive).delete({
|
108
|
+
domain,
|
109
|
+
id: (0, typeorm_1.In)(ids)
|
110
|
+
});
|
111
|
+
return true;
|
112
|
+
}
|
113
|
+
async importDataArchives(dataArchives, context) {
|
114
|
+
const { domain, tx } = context.state;
|
115
|
+
const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
|
116
|
+
await Promise.all(dataArchives.map(async (dataArchive) => {
|
117
|
+
const createdDataArchive = await dataArchiveRepo.save(Object.assign({ domain }, dataArchive));
|
118
|
+
}));
|
119
|
+
return true;
|
120
|
+
}
|
121
|
+
async copyDataArchives(ids, context) {
|
122
|
+
const { domain, user, tx } = context.state;
|
123
|
+
const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
|
124
|
+
const originals = await dataArchiveRepo.find({
|
125
|
+
where: {
|
126
|
+
id: (0, typeorm_1.In)(ids),
|
127
|
+
domain
|
128
|
+
},
|
129
|
+
relations: ['domain']
|
130
|
+
});
|
131
|
+
if (originals.length == 0) {
|
132
|
+
return [];
|
133
|
+
}
|
134
|
+
var newCopys = originals.map(dataArchive => {
|
135
|
+
let dataArchiveId = crypto.randomUUID();
|
136
|
+
return Object.assign(Object.assign({}, dataArchive), { id: dataArchiveId, domain, creator: user, updater: user, updatedAt: undefined, createdAt: undefined });
|
137
|
+
});
|
138
|
+
var copiedDataArchives = await dataArchiveRepo.save(newCopys);
|
139
|
+
return copiedDataArchives;
|
140
|
+
}
|
141
|
+
};
|
142
|
+
tslib_1.__decorate([
|
143
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
144
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
145
|
+
(0, type_graphql_1.Mutation)(returns => data_archive_1.DataArchive, { description: 'To create new DataArchive' }),
|
146
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('patch')),
|
147
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
148
|
+
tslib_1.__metadata("design:type", Function),
|
149
|
+
tslib_1.__metadata("design:paramtypes", [data_archive_type_1.DataArchivePatch, Object]),
|
150
|
+
tslib_1.__metadata("design:returntype", Promise)
|
151
|
+
], DataArchiveMutation.prototype, "generatePresignedUrl", null);
|
152
|
+
tslib_1.__decorate([
|
153
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
154
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
155
|
+
(0, type_graphql_1.Mutation)(returns => data_archive_1.DataArchive, { description: 'To create new DataArchive' }),
|
156
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataArchive')),
|
157
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
158
|
+
tslib_1.__metadata("design:type", Function),
|
159
|
+
tslib_1.__metadata("design:paramtypes", [data_archive_type_1.NewDataArchive, Object]),
|
160
|
+
tslib_1.__metadata("design:returntype", Promise)
|
161
|
+
], DataArchiveMutation.prototype, "createDataArchive", null);
|
162
|
+
tslib_1.__decorate([
|
163
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
164
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
165
|
+
(0, type_graphql_1.Mutation)(returns => data_archive_1.DataArchive, { description: 'To modify DataArchive information' }),
|
166
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
167
|
+
tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
|
168
|
+
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
169
|
+
tslib_1.__metadata("design:type", Function),
|
170
|
+
tslib_1.__metadata("design:paramtypes", [String, data_archive_type_1.DataArchivePatch, Object]),
|
171
|
+
tslib_1.__metadata("design:returntype", Promise)
|
172
|
+
], DataArchiveMutation.prototype, "updateDataArchive", null);
|
173
|
+
tslib_1.__decorate([
|
174
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
175
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
176
|
+
(0, type_graphql_1.Mutation)(returns => [data_archive_1.DataArchive], { description: "To modify multiple DataArchives' information" }),
|
177
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [data_archive_type_1.DataArchivePatch])),
|
178
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
179
|
+
tslib_1.__metadata("design:type", Function),
|
180
|
+
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
181
|
+
tslib_1.__metadata("design:returntype", Promise)
|
182
|
+
], DataArchiveMutation.prototype, "updateMultipleDataArchive", null);
|
183
|
+
tslib_1.__decorate([
|
184
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
185
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
186
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete DataArchive' }),
|
187
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
188
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
189
|
+
tslib_1.__metadata("design:type", Function),
|
190
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
191
|
+
tslib_1.__metadata("design:returntype", Promise)
|
192
|
+
], DataArchiveMutation.prototype, "deleteDataArchive", null);
|
193
|
+
tslib_1.__decorate([
|
194
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
195
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
196
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple dataArchives' }),
|
197
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
|
198
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
199
|
+
tslib_1.__metadata("design:type", Function),
|
200
|
+
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
201
|
+
tslib_1.__metadata("design:returntype", Promise)
|
202
|
+
], DataArchiveMutation.prototype, "deleteDataArchives", null);
|
203
|
+
tslib_1.__decorate([
|
204
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
205
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
206
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple data-archives' }),
|
207
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataArchives', type => [data_archive_type_1.DataArchivePatch])),
|
208
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
209
|
+
tslib_1.__metadata("design:type", Function),
|
210
|
+
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
211
|
+
tslib_1.__metadata("design:returntype", Promise)
|
212
|
+
], DataArchiveMutation.prototype, "importDataArchives", null);
|
213
|
+
tslib_1.__decorate([
|
214
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
215
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
216
|
+
(0, type_graphql_1.Mutation)(returns => [data_archive_1.DataArchive], { description: 'To copy multiple data-archives' }),
|
217
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
|
218
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
219
|
+
tslib_1.__metadata("design:type", Function),
|
220
|
+
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
221
|
+
tslib_1.__metadata("design:returntype", Promise)
|
222
|
+
], DataArchiveMutation.prototype, "copyDataArchives", null);
|
223
|
+
DataArchiveMutation = tslib_1.__decorate([
|
224
|
+
(0, type_graphql_1.Resolver)(data_archive_1.DataArchive)
|
225
|
+
], DataArchiveMutation);
|
226
|
+
exports.DataArchiveMutation = DataArchiveMutation;
|
227
|
+
//# sourceMappingURL=data-archive-mutation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-archive-mutation.js","sourceRoot":"","sources":["../../../server/service/data-archive/data-archive-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\nimport fetch from 'node-fetch'\nimport i18next from 'i18next'\n\nimport { DataArchive } from './data-archive'\nimport { DataArchivePatch, NewDataArchive } from './data-archive-type'\nimport { getEndpointUrl } from '../../utils/config-resolver'\n\nconst { config } = require('@things-factory/env')\nconst crypto = require('crypto')\n\n@Resolver(DataArchive)\nexport class DataArchiveMutation {\n\n /** \n * It may use 'func-[dev]-data-set-download' in https://github.com/operatochef/serverless \n * This function requests athena query and save the result as csv.gz in s3\n */\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => DataArchive, { description: 'To create new DataArchive' })\n async generatePresignedUrl(@Arg('patch') patch: DataArchivePatch, @Ctx() context: any): Promise<DataArchive> {\n const { domain, user, tx, notify, lng } = context.state\n // const dataArchiveRepo = tx.getRepository(DataArchive)\n const t = i18next.getFixedT(lng, 'translations')\n const { dataset: { endpoint, datasource: { database } }} = config.get('dataArchive')\n \n const body = JSON.stringify({ \n domain: domain?.subdomain,\n database,\n ...patch?.requestParams\n })\n\n const url = getEndpointUrl(endpoint)\n\n const fetched = await fetch(`${url}`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body\n })\n \n const message = {\n receivers: [user.email],\n mode: 'in-app',\n title: '',\n body: '',\n url: ''\n }\n\n if (fetched.ok) {\n const response = await fetched.json()\n patch.downloadUrl = response['presignedUrl']\n patch.status = 'done'\n\n message['title'] = t('title.data-archive downloads ready')\n message['url'] = patch.downloadUrl\n } else {\n const error = await fetched.text()\n console.log(error)\n patch.status = 'error'\n \n message['title'] = t('title.data-archive request failed')\n // may not user-friendly message\n message['body'] = error\n }\n\n const result = await this.updateDataArchive(patch.id, patch, context)\n\n notify && notify(message)\n\n return result\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => DataArchive, { description: 'To create new DataArchive' })\n async createDataArchive(@Arg('dataArchive') dataArchive: NewDataArchive, @Ctx() context: any): Promise<DataArchive> {\n const { domain, user, tx } = context.state\n const dataArchiveRepo = tx.getRepository(DataArchive)\n\n const result = await dataArchiveRepo.save({\n ...dataArchive,\n domain,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => DataArchive, { description: 'To modify DataArchive information' })\n async updateDataArchive(@Arg('id') id: string, @Arg('patch') patch: DataArchivePatch, @Ctx() context: any): Promise<DataArchive> {\n const { domain, user, tx } = context.state\n const dataArchiveRepo = tx.getRepository(DataArchive)\n\n const dataArchive = await dataArchiveRepo.findOne({\n where: { domain, id },\n relations: ['domain', 'creator', 'updater']\n })\n\n const result = await dataArchiveRepo.save({\n ...dataArchive,\n ...patch,\n updater: user\n })\n\n return result\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => [DataArchive], { description: \"To modify multiple DataArchives' information\" })\n async updateMultipleDataArchive(\n @Arg('patches', type => [DataArchivePatch]) patches: DataArchivePatch[],\n @Ctx() context: any\n ): Promise<DataArchive[]> {\n const { domain, user, tx } = context.state\n const dataArchiveRepo = tx.getRepository(DataArchive)\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n\n if (_createRecords.length > 0) {\n const cuFlag = '+'\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await dataArchiveRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({\n ...result,\n cuFlag\n })\n }\n }\n\n if (_updateRecords.length > 0) {\n const cuFlag = 'M'\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const dataArchive = await dataArchiveRepo.findOne(newRecord.id, {\n relations: ['domain', 'creator', 'updater']\n })\n\n const result = await dataArchiveRepo.save({\n ...dataArchive,\n ...newRecord,\n updater: user\n })\n\n results.push({\n ...result,\n cuFlag\n })\n }\n }\n\n return results\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete DataArchive' })\n async deleteDataArchive(@Arg('id') id: string, @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(DataArchive).delete({ domain, id })\n return true\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple dataArchives' })\n async deleteDataArchives(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(DataArchive).delete({\n domain,\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To import multiple data-archives' })\n async importDataArchives(\n @Arg('dataArchives', type => [DataArchivePatch]) dataArchives: DataArchive[],\n @Ctx() context: any\n ): Promise<boolean> {\n const { domain, tx } = context.state\n const dataArchiveRepo = tx.getRepository(DataArchive)\n\n await Promise.all(\n dataArchives.map(async (dataArchive: DataArchive) => {\n const createdDataArchive: DataArchive = await dataArchiveRepo.save({\n domain,\n ...dataArchive\n })\n })\n )\n\n return true\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => [DataArchive], { description: 'To copy multiple data-archives' })\n async copyDataArchives(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<DataArchive[]> {\n const { domain, user, tx } = context.state\n const dataArchiveRepo = tx.getRepository(DataArchive)\n\n const originals = await dataArchiveRepo.find({\n where: {\n id: In(ids),\n domain\n },\n relations: ['domain']\n })\n\n if (originals.length == 0) {\n return []\n }\n\n var newCopys = originals.map(dataArchive => {\n let dataArchiveId = crypto.randomUUID()\n\n return {\n ...dataArchive,\n id: dataArchiveId,\n domain,\n creator: user,\n updater: user,\n updatedAt: undefined,\n createdAt: undefined\n }\n })\n\n var copiedDataArchives = await dataArchiveRepo.save(newCopys)\n\n return copiedDataArchives\n }\n}\n"]}
|
@@ -0,0 +1,85 @@
|
|
1
|
+
"use strict";
|
2
|
+
var _a;
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.DataArchiveQuery = void 0;
|
5
|
+
const tslib_1 = require("tslib");
|
6
|
+
const type_graphql_1 = require("type-graphql");
|
7
|
+
const typeorm_1 = require("typeorm");
|
8
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
9
|
+
const shell_1 = require("@things-factory/shell");
|
10
|
+
const data_archive_1 = require("./data-archive");
|
11
|
+
const data_archive_type_1 = require("./data-archive-type");
|
12
|
+
var parser = require('cron-parser');
|
13
|
+
let DataArchiveQuery = class DataArchiveQuery {
|
14
|
+
async dataArchive(id, context) {
|
15
|
+
const { domain } = context.state;
|
16
|
+
return await (0, typeorm_1.getRepository)(data_archive_1.DataArchive).findOne({
|
17
|
+
where: { domain, id }
|
18
|
+
});
|
19
|
+
}
|
20
|
+
async dataArchives(params, context) {
|
21
|
+
const { domain } = context.state;
|
22
|
+
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
23
|
+
repository: (0, typeorm_1.getRepository)(data_archive_1.DataArchive),
|
24
|
+
params,
|
25
|
+
domain,
|
26
|
+
alias: 'dataArchive',
|
27
|
+
searchables: []
|
28
|
+
});
|
29
|
+
const [items, total] = await queryBuilder.getManyAndCount();
|
30
|
+
return { items, total };
|
31
|
+
}
|
32
|
+
async domain(dataArchive) {
|
33
|
+
return await (0, typeorm_1.getRepository)(shell_1.Domain).findOne(dataArchive.domainId);
|
34
|
+
}
|
35
|
+
async updater(dataArchive) {
|
36
|
+
return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(dataArchive.updaterId);
|
37
|
+
}
|
38
|
+
async creator(dataArchive) {
|
39
|
+
return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(dataArchive.creatorId);
|
40
|
+
}
|
41
|
+
};
|
42
|
+
tslib_1.__decorate([
|
43
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "query", domainOwnerGranted: true)'),
|
44
|
+
(0, type_graphql_1.Query)(returns => data_archive_1.DataArchive, { description: 'To fetch a DataArchive' }),
|
45
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
46
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
47
|
+
tslib_1.__metadata("design:type", Function),
|
48
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
49
|
+
tslib_1.__metadata("design:returntype", Promise)
|
50
|
+
], DataArchiveQuery.prototype, "dataArchive", null);
|
51
|
+
tslib_1.__decorate([
|
52
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "query", domainOwnerGranted: true)'),
|
53
|
+
(0, type_graphql_1.Query)(returns => data_archive_type_1.DataArchiveList, { description: 'To fetch multiple DataArchives' }),
|
54
|
+
tslib_1.__param(0, (0, type_graphql_1.Args)()),
|
55
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
56
|
+
tslib_1.__metadata("design:type", Function),
|
57
|
+
tslib_1.__metadata("design:paramtypes", [typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object, Object]),
|
58
|
+
tslib_1.__metadata("design:returntype", Promise)
|
59
|
+
], DataArchiveQuery.prototype, "dataArchives", null);
|
60
|
+
tslib_1.__decorate([
|
61
|
+
(0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
|
62
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
63
|
+
tslib_1.__metadata("design:type", Function),
|
64
|
+
tslib_1.__metadata("design:paramtypes", [data_archive_1.DataArchive]),
|
65
|
+
tslib_1.__metadata("design:returntype", Promise)
|
66
|
+
], DataArchiveQuery.prototype, "domain", null);
|
67
|
+
tslib_1.__decorate([
|
68
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
69
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
70
|
+
tslib_1.__metadata("design:type", Function),
|
71
|
+
tslib_1.__metadata("design:paramtypes", [data_archive_1.DataArchive]),
|
72
|
+
tslib_1.__metadata("design:returntype", Promise)
|
73
|
+
], DataArchiveQuery.prototype, "updater", null);
|
74
|
+
tslib_1.__decorate([
|
75
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
76
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
77
|
+
tslib_1.__metadata("design:type", Function),
|
78
|
+
tslib_1.__metadata("design:paramtypes", [data_archive_1.DataArchive]),
|
79
|
+
tslib_1.__metadata("design:returntype", Promise)
|
80
|
+
], DataArchiveQuery.prototype, "creator", null);
|
81
|
+
DataArchiveQuery = tslib_1.__decorate([
|
82
|
+
(0, type_graphql_1.Resolver)(data_archive_1.DataArchive)
|
83
|
+
], DataArchiveQuery);
|
84
|
+
exports.DataArchiveQuery = DataArchiveQuery;
|
85
|
+
//# sourceMappingURL=data-archive-query.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-archive-query.js","sourceRoot":"","sources":["../../../server/service/data-archive/data-archive-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { getRepository } from 'typeorm'\n\nimport { Role, User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'\n\nimport { DataArchive } from './data-archive'\nimport { DataArchiveList } from './data-archive-type'\n\nvar parser = require('cron-parser')\n\n@Resolver(DataArchive)\nexport class DataArchiveQuery {\n @Directive('@privilege(category: \"data-archive\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataArchive, { description: 'To fetch a DataArchive' })\n async dataArchive(@Arg('id') id: string, @Ctx() context: any): Promise<DataArchive> {\n const { domain } = context.state\n\n return await getRepository(DataArchive).findOne({\n where: { domain, id }\n })\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataArchiveList, { description: 'To fetch multiple DataArchives' })\n async dataArchives(@Args() params: ListParam, @Ctx() context: any): Promise<DataArchiveList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataArchive),\n params,\n domain,\n alias: 'dataArchive',\n searchables: []\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() dataArchive: DataArchive): Promise<Domain> {\n return await getRepository(Domain).findOne(dataArchive.domainId)\n }\n\n @FieldResolver(type => User)\n async updater(@Root() dataArchive: DataArchive): Promise<User> {\n return await getRepository(User).findOne(dataArchive.updaterId)\n }\n\n @FieldResolver(type => User)\n async creator(@Root() dataArchive: DataArchive): Promise<User> {\n return await getRepository(User).findOne(dataArchive.creatorId)\n }\n}\n"]}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DataArchiveList = exports.DataArchivePatch = exports.NewDataArchive = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
6
|
+
const data_archive_1 = require("./data-archive");
|
7
|
+
const shell_1 = require("@things-factory/shell");
|
8
|
+
let NewDataArchive = class NewDataArchive {
|
9
|
+
};
|
10
|
+
tslib_1.__decorate([
|
11
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
12
|
+
tslib_1.__metadata("design:type", String)
|
13
|
+
], NewDataArchive.prototype, "type", void 0);
|
14
|
+
tslib_1.__decorate([
|
15
|
+
(0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
|
16
|
+
tslib_1.__metadata("design:type", Object)
|
17
|
+
], NewDataArchive.prototype, "requestParams", void 0);
|
18
|
+
tslib_1.__decorate([
|
19
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
20
|
+
tslib_1.__metadata("design:type", String)
|
21
|
+
], NewDataArchive.prototype, "downloadUrl", void 0);
|
22
|
+
tslib_1.__decorate([
|
23
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
24
|
+
tslib_1.__metadata("design:type", String)
|
25
|
+
], NewDataArchive.prototype, "status", void 0);
|
26
|
+
NewDataArchive = tslib_1.__decorate([
|
27
|
+
(0, type_graphql_1.InputType)()
|
28
|
+
], NewDataArchive);
|
29
|
+
exports.NewDataArchive = NewDataArchive;
|
30
|
+
let DataArchivePatch = class DataArchivePatch {
|
31
|
+
};
|
32
|
+
tslib_1.__decorate([
|
33
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
|
34
|
+
tslib_1.__metadata("design:type", String)
|
35
|
+
], DataArchivePatch.prototype, "id", void 0);
|
36
|
+
tslib_1.__decorate([
|
37
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
38
|
+
tslib_1.__metadata("design:type", String)
|
39
|
+
], DataArchivePatch.prototype, "type", void 0);
|
40
|
+
tslib_1.__decorate([
|
41
|
+
(0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
|
42
|
+
tslib_1.__metadata("design:type", Object)
|
43
|
+
], DataArchivePatch.prototype, "requestParams", void 0);
|
44
|
+
tslib_1.__decorate([
|
45
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
46
|
+
tslib_1.__metadata("design:type", String)
|
47
|
+
], DataArchivePatch.prototype, "downloadUrl", void 0);
|
48
|
+
tslib_1.__decorate([
|
49
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
50
|
+
tslib_1.__metadata("design:type", String)
|
51
|
+
], DataArchivePatch.prototype, "status", void 0);
|
52
|
+
tslib_1.__decorate([
|
53
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
54
|
+
tslib_1.__metadata("design:type", String)
|
55
|
+
], DataArchivePatch.prototype, "cuFlag", void 0);
|
56
|
+
DataArchivePatch = tslib_1.__decorate([
|
57
|
+
(0, type_graphql_1.InputType)()
|
58
|
+
], DataArchivePatch);
|
59
|
+
exports.DataArchivePatch = DataArchivePatch;
|
60
|
+
let DataArchiveList = class DataArchiveList {
|
61
|
+
};
|
62
|
+
tslib_1.__decorate([
|
63
|
+
(0, type_graphql_1.Field)(type => [data_archive_1.DataArchive]),
|
64
|
+
tslib_1.__metadata("design:type", Array)
|
65
|
+
], DataArchiveList.prototype, "items", void 0);
|
66
|
+
tslib_1.__decorate([
|
67
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int),
|
68
|
+
tslib_1.__metadata("design:type", Number)
|
69
|
+
], DataArchiveList.prototype, "total", void 0);
|
70
|
+
DataArchiveList = tslib_1.__decorate([
|
71
|
+
(0, type_graphql_1.ObjectType)()
|
72
|
+
], DataArchiveList);
|
73
|
+
exports.DataArchiveList = DataArchiveList;
|
74
|
+
//# sourceMappingURL=data-archive-type.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-archive-type.js","sourceRoot":"","sources":["../../../server/service/data-archive/data-archive-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,iDAA4C;AAC5C,iDAA+D;AAGxD,IAAM,cAAc,GAApB,MAAM,cAAc;CAa1B,CAAA;AAZC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACY;AAEtC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACV;AAEtC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACX;AAXJ,cAAc;IAD1B,IAAA,wBAAS,GAAE;GACC,cAAc,CAa1B;AAbY,wCAAc;AAgBpB,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAkB5B,CAAA;AAjBC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACY;AAEtC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACV;AAEtC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACX;AAEf;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACZ;AAjBH,gBAAgB;IAD5B,IAAA,wBAAS,GAAE;GACC,gBAAgB,CAkB5B;AAlBY,4CAAgB;AAqBtB,IAAM,eAAe,GAArB,MAAM,eAAe;CAM3B,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,0BAAW,CAAC,CAAC;;8CACT;AAEpB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;8CACN;AALF,eAAe;IAD3B,IAAA,yBAAU,GAAE;GACA,eAAe,CAM3B;AANY,0CAAe","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\nimport { DataArchive } from './data-archive'\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\n@InputType()\nexport class NewDataArchive {\n @Field({ nullable: true })\n type?: 'manual' | 'automatic' | string\n \n @Field(type => ScalarObject, { nullable: true })\n requestParams?: { [key: string]: any }\n\n @Field({ nullable: true })\n downloadUrl?: string\n\n @Field({ nullable: true })\n status?: string\n\n}\n\n@InputType()\nexport class DataArchivePatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n type?: 'manual' | 'automatic' | string\n\n @Field(type => ScalarObject, { nullable: true })\n requestParams?: { [key: string]: any }\n\n @Field({ nullable: true })\n downloadUrl?: string\n\n @Field({ nullable: true })\n status?: string\n\n @Field({ nullable: true })\n cuFlag: string\n}\n\n@ObjectType()\nexport class DataArchiveList {\n @Field(type => [DataArchive])\n items: DataArchive[]\n\n @Field(type => Int)\n total: number\n}\n"]}
|