@things-factory/dataset 9.0.0-beta.5 → 9.0.0-beta.52

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 (250) hide show
  1. package/dist-client/activities/activity-data-collect-edit.d.ts +8 -1
  2. package/dist-client/activities/activity-data-collect-edit.js +62 -9
  3. package/dist-client/activities/activity-data-collect-edit.js.map +1 -1
  4. package/dist-client/activities/activity-data-review-edit.d.ts +2 -0
  5. package/dist-client/activities/activity-data-review-edit.js +43 -14
  6. package/dist-client/activities/activity-data-review-edit.js.map +1 -1
  7. package/dist-client/activities/activity-data-review-view.d.ts +2 -0
  8. package/dist-client/activities/activity-data-review-view.js +106 -4
  9. package/dist-client/activities/activity-data-review-view.js.map +1 -1
  10. package/dist-client/activities/activity-ooc-resolve-edit.js +7 -0
  11. package/dist-client/activities/activity-ooc-resolve-edit.js.map +1 -1
  12. package/dist-client/activities/activity-ooc-resolve-view.js +7 -0
  13. package/dist-client/activities/activity-ooc-resolve-view.js.map +1 -1
  14. package/dist-client/activities/activity-ooc-review-edit.d.ts +1 -0
  15. package/dist-client/activities/activity-ooc-review-edit.js +28 -4
  16. package/dist-client/activities/activity-ooc-review-edit.js.map +1 -1
  17. package/dist-client/activities/activity-ooc-review-view.js +7 -0
  18. package/dist-client/activities/activity-ooc-review-view.js.map +1 -1
  19. package/dist-client/bootstrap.d.ts +8 -8
  20. package/dist-client/bootstrap.js +8 -8
  21. package/dist-client/bootstrap.js.map +1 -1
  22. package/dist-client/components/checklist-entry-form.d.ts +21 -0
  23. package/dist-client/components/checklist-entry-form.js +108 -0
  24. package/dist-client/components/checklist-entry-form.js.map +1 -0
  25. package/dist-client/components/data-entry-form.d.ts +3 -2
  26. package/dist-client/components/data-entry-form.js +2 -2
  27. package/dist-client/components/data-entry-form.js.map +1 -1
  28. package/dist-client/pages/data-archive/data-archive-list-page.d.ts +1 -1
  29. package/dist-client/pages/data-archive/data-archive-list-page.js +1 -1
  30. package/dist-client/pages/data-archive/data-archive-list-page.js.map +1 -1
  31. package/dist-client/pages/data-entry/data-entry-list-page.d.ts +1 -0
  32. package/dist-client/pages/data-entry/data-entry-list-page.js +12 -2
  33. package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
  34. package/dist-client/pages/data-key-set/data-key-set-list-page.d.ts +1 -1
  35. package/dist-client/pages/data-key-set/data-key-set-list-page.js +1 -1
  36. package/dist-client/pages/data-key-set/data-key-set-list-page.js.map +1 -1
  37. package/dist-client/pages/data-ooc/data-ooc-list-page.js +2 -2
  38. package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +1 -1
  39. package/dist-client/pages/data-ooc/data-ooc-page.js +3 -0
  40. package/dist-client/pages/data-ooc/data-ooc-page.js.map +1 -1
  41. package/dist-client/pages/data-ooc/data-ooc-view.js +3 -0
  42. package/dist-client/pages/data-ooc/data-ooc-view.js.map +1 -1
  43. package/dist-client/pages/data-report/data-report-list-page.js +1 -1
  44. package/dist-client/pages/data-report/data-report-list-page.js.map +1 -1
  45. package/dist-client/pages/data-sample/data-sample-view.d.ts +2 -0
  46. package/dist-client/pages/data-sample/data-sample-view.js +27 -1
  47. package/dist-client/pages/data-sample/data-sample-view.js.map +1 -1
  48. package/dist-client/pages/data-sensor/data-sensor-list-page.js +24 -0
  49. package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +1 -1
  50. package/dist-client/pages/data-set/data-item-list.js +9 -0
  51. package/dist-client/pages/data-set/data-item-list.js.map +1 -1
  52. package/dist-client/pages/data-set/data-set-list-page.d.ts +2 -0
  53. package/dist-client/pages/data-set/data-set-list-page.js +59 -10
  54. package/dist-client/pages/data-set/data-set-list-page.js.map +1 -1
  55. package/dist-client/pages/data-summary/data-summary-period-page.js +53 -37
  56. package/dist-client/pages/data-summary/data-summary-period-page.js.map +1 -1
  57. package/dist-client/tsconfig.tsbuildinfo +1 -1
  58. package/dist-server/activities/activity-data-review.js +9 -9
  59. package/dist-server/activities/activity-data-review.js.map +1 -1
  60. package/dist-server/activities/activity-ooc-resolve.js +3 -3
  61. package/dist-server/activities/activity-ooc-resolve.js.map +1 -1
  62. package/dist-server/activities/activity-ooc-review.js +5 -5
  63. package/dist-server/activities/activity-ooc-review.js.map +1 -1
  64. package/dist-server/activities/index.js +5 -5
  65. package/dist-server/activities/index.js.map +1 -1
  66. package/dist-server/controllers/create-data-ooc.d.ts +3 -3
  67. package/dist-server/controllers/create-data-ooc.js +4 -4
  68. package/dist-server/controllers/create-data-ooc.js.map +1 -1
  69. package/dist-server/controllers/create-data-sample.d.ts +2 -2
  70. package/dist-server/controllers/create-data-sample.js +20 -20
  71. package/dist-server/controllers/create-data-sample.js.map +1 -1
  72. package/dist-server/controllers/data-use-case.d.ts +2 -2
  73. package/dist-server/controllers/data-use-case.js.map +1 -1
  74. package/dist-server/controllers/finalize-data-collection.d.ts +1 -1
  75. package/dist-server/controllers/finalize-data-collection.js +21 -21
  76. package/dist-server/controllers/finalize-data-collection.js.map +1 -1
  77. package/dist-server/controllers/index.d.ts +6 -6
  78. package/dist-server/controllers/index.js +6 -6
  79. package/dist-server/controllers/index.js.map +1 -1
  80. package/dist-server/controllers/issue-data-collection-task.js +3 -3
  81. package/dist-server/controllers/issue-data-collection-task.js.map +1 -1
  82. package/dist-server/controllers/issue-ooc-review.d.ts +2 -2
  83. package/dist-server/controllers/issue-ooc-review.js +2 -2
  84. package/dist-server/controllers/issue-ooc-review.js.map +1 -1
  85. package/dist-server/controllers/jasper-report.js +2 -2
  86. package/dist-server/controllers/jasper-report.js.map +1 -1
  87. package/dist-server/controllers/query-data-summary-by-period.d.ts +2 -2
  88. package/dist-server/controllers/query-data-summary-by-period.js +23 -17
  89. package/dist-server/controllers/query-data-summary-by-period.js.map +1 -1
  90. package/dist-server/controllers/shiny-report.js +2 -2
  91. package/dist-server/controllers/shiny-report.js.map +1 -1
  92. package/dist-server/engine/index.d.ts +1 -1
  93. package/dist-server/engine/index.js +1 -1
  94. package/dist-server/engine/index.js.map +1 -1
  95. package/dist-server/engine/task/create-data-sample.js +4 -4
  96. package/dist-server/engine/task/create-data-sample.js.map +1 -1
  97. package/dist-server/engine/task/index.d.ts +2 -2
  98. package/dist-server/engine/task/index.js +2 -2
  99. package/dist-server/engine/task/index.js.map +1 -1
  100. package/dist-server/engine/task/issue-collect-data.js +2 -2
  101. package/dist-server/engine/task/issue-collect-data.js.map +1 -1
  102. package/dist-server/index.d.ts +6 -6
  103. package/dist-server/index.js +6 -6
  104. package/dist-server/index.js.map +1 -1
  105. package/dist-server/routes.js +12 -12
  106. package/dist-server/routes.js.map +1 -1
  107. package/dist-server/service/data-archive/data-archive-mutation.d.ts +2 -2
  108. package/dist-server/service/data-archive/data-archive-mutation.js +22 -22
  109. package/dist-server/service/data-archive/data-archive-mutation.js.map +1 -1
  110. package/dist-server/service/data-archive/data-archive-query.d.ts +2 -2
  111. package/dist-server/service/data-archive/data-archive-query.js +10 -10
  112. package/dist-server/service/data-archive/data-archive-query.js.map +1 -1
  113. package/dist-server/service/data-archive/data-archive-type.d.ts +1 -1
  114. package/dist-server/service/data-archive/data-archive-type.js +2 -2
  115. package/dist-server/service/data-archive/data-archive-type.js.map +1 -1
  116. package/dist-server/service/data-archive/index.d.ts +3 -3
  117. package/dist-server/service/data-archive/index.js +5 -5
  118. package/dist-server/service/data-archive/index.js.map +1 -1
  119. package/dist-server/service/data-key-set/data-key-set-mutation.d.ts +2 -2
  120. package/dist-server/service/data-key-set/data-key-set-mutation.js +20 -20
  121. package/dist-server/service/data-key-set/data-key-set-mutation.js.map +1 -1
  122. package/dist-server/service/data-key-set/data-key-set-query.d.ts +2 -2
  123. package/dist-server/service/data-key-set/data-key-set-query.js +12 -12
  124. package/dist-server/service/data-key-set/data-key-set-query.js.map +1 -1
  125. package/dist-server/service/data-key-set/data-key-set-type.d.ts +3 -3
  126. package/dist-server/service/data-key-set/data-key-set-type.js +6 -6
  127. package/dist-server/service/data-key-set/data-key-set-type.js.map +1 -1
  128. package/dist-server/service/data-key-set/data-key-set.d.ts +2 -2
  129. package/dist-server/service/data-key-set/data-key-set.js +3 -3
  130. package/dist-server/service/data-key-set/data-key-set.js.map +1 -1
  131. package/dist-server/service/data-key-set/index.d.ts +3 -3
  132. package/dist-server/service/data-key-set/index.js +5 -5
  133. package/dist-server/service/data-key-set/index.js.map +1 -1
  134. package/dist-server/service/data-ooc/data-ooc-mutation.d.ts +2 -2
  135. package/dist-server/service/data-ooc/data-ooc-mutation.js +11 -11
  136. package/dist-server/service/data-ooc/data-ooc-mutation.js.map +1 -1
  137. package/dist-server/service/data-ooc/data-ooc-query.d.ts +5 -5
  138. package/dist-server/service/data-ooc/data-ooc-query.js +27 -27
  139. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  140. package/dist-server/service/data-ooc/data-ooc-subscription.d.ts +1 -1
  141. package/dist-server/service/data-ooc/data-ooc-subscription.js +3 -3
  142. package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -1
  143. package/dist-server/service/data-ooc/data-ooc-type.d.ts +1 -1
  144. package/dist-server/service/data-ooc/data-ooc-type.js +4 -4
  145. package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -1
  146. package/dist-server/service/data-ooc/data-ooc.d.ts +3 -3
  147. package/dist-server/service/data-ooc/data-ooc.js +10 -10
  148. package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
  149. package/dist-server/service/data-ooc/index.d.ts +4 -4
  150. package/dist-server/service/data-ooc/index.js +6 -6
  151. package/dist-server/service/data-ooc/index.js.map +1 -1
  152. package/dist-server/service/data-sample/data-sample-mutation.d.ts +2 -2
  153. package/dist-server/service/data-sample/data-sample-mutation.js +7 -7
  154. package/dist-server/service/data-sample/data-sample-mutation.js.map +1 -1
  155. package/dist-server/service/data-sample/data-sample-query.d.ts +6 -6
  156. package/dist-server/service/data-sample/data-sample-query.js +42 -35
  157. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  158. package/dist-server/service/data-sample/data-sample-type.d.ts +1 -1
  159. package/dist-server/service/data-sample/data-sample-type.js +2 -2
  160. package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
  161. package/dist-server/service/data-sample/data-sample.d.ts +3 -3
  162. package/dist-server/service/data-sample/data-sample.js +10 -10
  163. package/dist-server/service/data-sample/data-sample.js.map +1 -1
  164. package/dist-server/service/data-sample/index.d.ts +3 -3
  165. package/dist-server/service/data-sample/index.js +5 -5
  166. package/dist-server/service/data-sample/index.js.map +1 -1
  167. package/dist-server/service/data-sensor/data-sensor-mutation.d.ts +2 -2
  168. package/dist-server/service/data-sensor/data-sensor-mutation.js +14 -14
  169. package/dist-server/service/data-sensor/data-sensor-mutation.js.map +1 -1
  170. package/dist-server/service/data-sensor/data-sensor-query.d.ts +3 -3
  171. package/dist-server/service/data-sensor/data-sensor-query.js +16 -16
  172. package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
  173. package/dist-server/service/data-sensor/data-sensor-type.d.ts +5 -1
  174. package/dist-server/service/data-sensor/data-sensor-type.js +18 -2
  175. package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -1
  176. package/dist-server/service/data-sensor/data-sensor.d.ts +3 -1
  177. package/dist-server/service/data-sensor/data-sensor.js +13 -3
  178. package/dist-server/service/data-sensor/data-sensor.js.map +1 -1
  179. package/dist-server/service/data-sensor/index.d.ts +3 -3
  180. package/dist-server/service/data-sensor/index.js +5 -5
  181. package/dist-server/service/data-sensor/index.js.map +1 -1
  182. package/dist-server/service/data-set/data-item-type.d.ts +2 -0
  183. package/dist-server/service/data-set/data-item-type.js +14 -0
  184. package/dist-server/service/data-set/data-item-type.js.map +1 -1
  185. package/dist-server/service/data-set/data-set-mutation.d.ts +2 -2
  186. package/dist-server/service/data-set/data-set-mutation.js +32 -32
  187. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  188. package/dist-server/service/data-set/data-set-query.d.ts +4 -4
  189. package/dist-server/service/data-set/data-set-query.js +44 -44
  190. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  191. package/dist-server/service/data-set/data-set-type.d.ts +2 -2
  192. package/dist-server/service/data-set/data-set-type.js +5 -5
  193. package/dist-server/service/data-set/data-set-type.js.map +1 -1
  194. package/dist-server/service/data-set/data-set.d.ts +3 -2
  195. package/dist-server/service/data-set/data-set.js +11 -6
  196. package/dist-server/service/data-set/data-set.js.map +1 -1
  197. package/dist-server/service/data-set/index.d.ts +3 -3
  198. package/dist-server/service/data-set/index.js +5 -5
  199. package/dist-server/service/data-set/index.js.map +1 -1
  200. package/dist-server/service/data-set-history/data-set-history-query.d.ts +4 -4
  201. package/dist-server/service/data-set-history/data-set-history-query.js +22 -22
  202. package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -1
  203. package/dist-server/service/data-set-history/data-set-history-type.d.ts +1 -1
  204. package/dist-server/service/data-set-history/data-set-history-type.js +2 -2
  205. package/dist-server/service/data-set-history/data-set-history-type.js.map +1 -1
  206. package/dist-server/service/data-set-history/data-set-history.d.ts +2 -2
  207. package/dist-server/service/data-set-history/data-set-history.js +3 -3
  208. package/dist-server/service/data-set-history/data-set-history.js.map +1 -1
  209. package/dist-server/service/data-set-history/event-subscriber.d.ts +2 -2
  210. package/dist-server/service/data-set-history/event-subscriber.js +4 -4
  211. package/dist-server/service/data-set-history/event-subscriber.js.map +1 -1
  212. package/dist-server/service/data-set-history/index.d.ts +3 -3
  213. package/dist-server/service/data-set-history/index.js +6 -6
  214. package/dist-server/service/data-set-history/index.js.map +1 -1
  215. package/dist-server/service/data-spec/data-spec-manager.d.ts +1 -1
  216. package/dist-server/service/data-spec/data-spec-manager.js.map +1 -1
  217. package/dist-server/service/data-spec/data-spec-query.d.ts +1 -1
  218. package/dist-server/service/data-spec/data-spec-query.js +9 -9
  219. package/dist-server/service/data-spec/data-spec-query.js.map +1 -1
  220. package/dist-server/service/data-spec/index.d.ts +2 -2
  221. package/dist-server/service/data-spec/index.js +4 -4
  222. package/dist-server/service/data-spec/index.js.map +1 -1
  223. package/dist-server/service/data-summary/data-summary-mutation.js +11 -8
  224. package/dist-server/service/data-summary/data-summary-mutation.js.map +1 -1
  225. package/dist-server/service/data-summary/data-summary-query.d.ts +5 -5
  226. package/dist-server/service/data-summary/data-summary-query.js +31 -31
  227. package/dist-server/service/data-summary/data-summary-query.js.map +1 -1
  228. package/dist-server/service/data-summary/data-summary-type.d.ts +1 -1
  229. package/dist-server/service/data-summary/data-summary-type.js +2 -2
  230. package/dist-server/service/data-summary/data-summary-type.js.map +1 -1
  231. package/dist-server/service/data-summary/data-summary.d.ts +2 -2
  232. package/dist-server/service/data-summary/data-summary.js +6 -6
  233. package/dist-server/service/data-summary/data-summary.js.map +1 -1
  234. package/dist-server/service/data-summary/index.d.ts +3 -3
  235. package/dist-server/service/data-summary/index.js +5 -5
  236. package/dist-server/service/data-summary/index.js.map +1 -1
  237. package/dist-server/service/index.d.ts +12 -12
  238. package/dist-server/service/index.js +37 -37
  239. package/dist-server/service/index.js.map +1 -1
  240. package/dist-server/tsconfig.tsbuildinfo +1 -1
  241. package/dist-server/utils/index.d.ts +1 -1
  242. package/dist-server/utils/index.js +1 -1
  243. package/dist-server/utils/index.js.map +1 -1
  244. package/package.json +13 -13
  245. package/things-factory.config.js +4 -0
  246. package/translations/en.json +3 -0
  247. package/translations/ja.json +3 -0
  248. package/translations/ko.json +3 -0
  249. package/translations/ms.json +3 -0
  250. package/translations/zh.json +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"query-data-summary-by-period.js","sourceRoot":"","sources":["../../server/controllers/query-data-summary-by-period.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\n\nimport { getQueryBuilderFromListParams, getRepository, getTimesForPeriod, ListParam, Sorting } from '@things-factory/shell'\n\nimport { DataSet, DataSetSummaryPeriodType } from '../service/data-set/data-set'\nimport { DataSummary } from '../service/data-summary/data-summary'\n\nconst STAT_FUNCTION_MAP = {\n sum: 'sum',\n mean: 'mean',\n stddev: 'standardDeviation',\n variance: 'variance',\n min: 'min',\n max: 'max',\n range: 'range',\n median: 'median',\n mode: 'mode'\n}\n\nexport async function queryDataSummaryByPeriod(\n period: 'today' | 'this month' | '30 days' | 'this year' | '12 months',\n dataSetName: string,\n dataKeys: string[] | null,\n params: ListParam,\n context: ResolverContext\n): Promise<DataSummary[]> {\n const { domain, user, tx } = context.state\n const { t } = context\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name: dataSetName },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(t('error.dataset not found', { dataSetName }))\n }\n\n // limitations\n const summaryPeriodType = dataSet.summaryPeriod\n if ((summaryPeriodType == DataSetSummaryPeriodType.Day || summaryPeriodType == DataSetSummaryPeriodType.WorkDate) && period == 'today') {\n throw new Error(t('error.summary not supported', { dataSetName, period: t(`label.period-${period}`) }))\n }\n\n // dataKeys 가 설정되지 않았다면, dataSet의 dataKeySet을 그대로 적용한다는 의미임.\n // dataKeys == [] 라면, dataKeySet을 적용하지 않는다는 의미임.\n // dataKeys에는 dataKeySet의 dataKey 값을 따라야 한다.\n const dataKeyItems = !dataSet.dataKeySet?.dataKeyItems\n ? []\n : dataKeys\n ? dataKeys\n .map(dataKey => {\n return dataSet.dataKeySet.dataKeyItems.find(item => item.dataKey == dataKey)\n })\n .filter(Boolean)\n : dataSet.dataKeySet.dataKeyItems\n\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n const dataItems = dataSet.dataItems.filter(item => item.agg)\n\n const { from, to } = await getTimesForPeriod(period, context)\n\n const selectPeriod = queryBuilder => {\n if (period == 'today') {\n queryBuilder.addSelect('summary.date', 'date').addSelect('summary.period', 'period')\n } else if (['this year', '12 months'].includes(period)) {\n queryBuilder.addSelect('SUBSTRING(summary.date, 1, 7) AS month')\n } else {\n queryBuilder.addSelect('summary.date', 'date')\n }\n\n return queryBuilder\n }\n const selectKeys = dataKeyItems.map((item, index) => {\n const aliasName = `key0${index + 1}`\n const columnName = `summary.${aliasName}`\n\n return `${columnName} as ${aliasName}`\n }) as string[]\n const selectData = dataItems.map((item, index) => {\n const aliasName = `data0${index + 1}`\n const columnName = `summary.${aliasName}`\n\n switch (item.agg) {\n case STAT_FUNCTION_MAP.sum:\n return `SUM(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.mean:\n // 일차 mean 된 값들을 다시 계산하므로, 무의미할 수 있다.\n return `AVG(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.stddev:\n // 일차 stddev 된 값들을 다시 계산하므로, 무의미할 수 있다.\n return `STDDEV(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.variance:\n // 일차 variance 된 값들을 다시 계산하므로, 무의미할 수 있다.\n return `VARIANCE(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.min:\n return `MIN(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.max:\n return `MAX(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.range:\n // 일차 range 값들을 다시 계산하므로, 무의미할 수 있다.\n return `MAX(${columnName}) - MIN(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.mode:\n // not guaranteed\n return `MODE() WITHIN GROUP (ORDER BY ${columnName})`\n default:\n return `AVG(${columnName}) as ${aliasName}`\n }\n })\n\n const groupByPeriod =\n period == 'today' ? 'summary.date, summary.period' : ['this year', '12 months'].includes(period) ? 'SUBSTRING(summary.date, 1, 7)' : 'summary.date'\n const groupByKeys = dataKeyItems\n .map((item, index) => {\n return `summary.key0${index + 1}`\n })\n .join(', ')\n\n const desc = false\n var orderByPeriod: Sorting[] =\n period == 'today'\n ? [\n {\n name: 'date',\n desc\n },\n {\n name: 'period',\n desc\n }\n ]\n : ['this year', '12 months'].includes(period)\n ? [{ name: 'month', desc }]\n : [{ name: 'date', desc }]\n\n if (params?.sortings && params.sortings.length > 0) {\n orderByPeriod = params.sortings\n }\n\n var queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params: {\n ...params,\n sortings: []\n },\n domain,\n alias: 'summary',\n searchables: searchables\n })\n .select('summary.dataSet')\n .addSelect(selectData)\n .addSelect('SUM(summary.count)', 'count')\n .addSelect('SUM(summary.countOoc)', 'countOoc')\n .addSelect('SUM(summary.countOos)', 'countOos')\n\n queryBuilder = selectPeriod(queryBuilder)\n .innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetName', {\n dataSetName: dataSet.id\n })\n .andWhere('summary.domain = :domain', { domain: domain.id })\n .andWhere('summary.date >= :from', { from })\n .andWhere('summary.date < :to', { to })\n .addGroupBy('summary.dataSet')\n .addGroupBy(groupByPeriod)\n\n if (dataKeyItems.length > 0) {\n queryBuilder.addSelect(selectKeys).addGroupBy(groupByKeys)\n }\n\n orderByPeriod.map(orderBy => {\n const { name: sort, desc } = orderBy\n queryBuilder.addOrderBy(sort, desc ? 'DESC' : 'ASC')\n })\n\n const items = await queryBuilder.getRawMany()\n\n return items\n}\n"]}
1
+ {"version":3,"file":"query-data-summary-by-period.js","sourceRoot":"","sources":["../../server/controllers/query-data-summary-by-period.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\n\nimport {\n getQueryBuilderFromListParams,\n getRepository,\n getTimesForPeriod,\n ListParam,\n Sorting\n} from '@things-factory/shell'\n\nimport { DataSet, DataSetSummaryPeriodType } from '../service/data-set/data-set.js'\nimport { DataSummary } from '../service/data-summary/data-summary.js'\n\nconst STAT_FUNCTION_MAP = {\n sum: 'sum',\n mean: 'mean',\n stddev: 'standardDeviation',\n variance: 'variance',\n min: 'min',\n max: 'max',\n range: 'range',\n median: 'median',\n mode: 'mode'\n}\n\nexport async function queryDataSummaryByPeriod(\n period: 'today' | 'this month' | '30 days' | 'this year' | '12 months' | 'date range' | 'month',\n dataSetName: string,\n dataKeys: string[] | null,\n params: ListParam,\n context: ResolverContext\n): Promise<DataSummary[]> {\n const { domain, user, tx } = context.state\n const { t } = context\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name: dataSetName },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(t('error.dataset not found', { dataSetName }))\n }\n\n // limitations\n const summaryPeriodType = dataSet.summaryPeriod\n if (\n (summaryPeriodType == DataSetSummaryPeriodType.Day || summaryPeriodType == DataSetSummaryPeriodType.WorkDate) &&\n period == 'today'\n ) {\n throw new Error(t('error.summary not supported', { dataSetName, period: t(`label.period-${period}`) }))\n }\n\n // dataKeys 가 설정되지 않았다면, dataSet의 dataKeySet을 그대로 적용한다는 의미임.\n // dataKeys == [] 라면, dataKeySet을 적용하지 않는다는 의미임.\n // dataKeys에는 dataKeySet의 dataKey 값을 따라야 한다.\n const dataKeyItems = !dataSet.dataKeySet?.dataKeyItems\n ? []\n : dataKeys\n ? dataKeys\n .map(dataKey => {\n return dataSet.dataKeySet.dataKeyItems.find(item => item.dataKey == dataKey)\n })\n .filter(Boolean)\n : dataSet.dataKeySet.dataKeyItems\n\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n const dataItems = dataSet.dataItems.filter(item => item.agg)\n\n const { date, month } = params.filters.reduce(\n (acc, filter) => {\n if (filter.name === 'date') acc.date = filter.value\n if (filter.name === 'month') acc.month = filter.value\n return acc\n },\n { date: null, month: null }\n )\n\n const { from, to } = await getTimesForPeriod(period, { date, month }, context)\n\n const selectPeriod = queryBuilder => {\n if (period == 'today') {\n queryBuilder.addSelect('summary.date', 'date').addSelect('summary.period', 'period')\n } else if (['this year', '12 months'].includes(period)) {\n queryBuilder.addSelect('SUBSTRING(summary.date, 1, 7) AS month')\n } else {\n queryBuilder.addSelect('summary.date', 'date')\n }\n\n return queryBuilder\n }\n const selectKeys = dataKeyItems.map((item, index) => {\n const aliasName = `key0${index + 1}`\n const columnName = `summary.${aliasName}`\n\n return `${columnName} as ${aliasName}`\n }) as string[]\n const selectData = dataItems.map((item, index) => {\n const aliasName = `data0${index + 1}`\n const columnName = `summary.${aliasName}`\n\n switch (item.agg) {\n case STAT_FUNCTION_MAP.sum:\n return `SUM(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.mean:\n // 일차 mean 된 값들을 다시 계산하므로, 무의미할 수 있다.\n return `AVG(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.stddev:\n // 일차 stddev 된 값들을 다시 계산하므로, 무의미할 수 있다.\n return `STDDEV(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.variance:\n // 일차 variance 된 값들을 다시 계산하므로, 무의미할 수 있다.\n return `VARIANCE(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.min:\n return `MIN(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.max:\n return `MAX(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.range:\n // 일차 range 값들을 다시 계산하므로, 무의미할 수 있다.\n return `MAX(${columnName}) - MIN(${columnName}) as ${aliasName}`\n case STAT_FUNCTION_MAP.mode:\n // not guaranteed\n return `MODE() WITHIN GROUP (ORDER BY ${columnName})`\n default:\n return `AVG(${columnName}) as ${aliasName}`\n }\n })\n\n const groupByPeriod =\n period == 'today'\n ? 'summary.date, summary.period'\n : ['this year', '12 months'].includes(period)\n ? 'SUBSTRING(summary.date, 1, 7)'\n : 'summary.date'\n const groupByKeys = dataKeyItems\n .map((item, index) => {\n return `summary.key0${index + 1}`\n })\n .join(', ')\n\n const desc = false\n var orderByPeriod: Sorting[] =\n period == 'today'\n ? [\n { name: 'date', desc },\n { name: 'period', desc }\n ]\n : ['this year', '12 months'].includes(period)\n ? [{ name: 'month', desc }]\n : [{ name: 'date', desc }]\n\n if (params?.sortings && params.sortings.length > 0) {\n orderByPeriod = params.sortings\n }\n\n var queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params: {\n ...params,\n filters: params?.filters?.filter(({ name }) => name !== 'date' && name !== 'month') || [],\n sortings: []\n },\n domain,\n alias: 'summary',\n searchables: searchables\n })\n .select('summary.dataSet')\n .addSelect(selectData)\n .addSelect('SUM(summary.count)', 'count')\n .addSelect('SUM(summary.countOoc)', 'countOoc')\n .addSelect('SUM(summary.countOos)', 'countOos')\n\n queryBuilder = selectPeriod(queryBuilder)\n .innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetName', {\n dataSetName: dataSet.id\n })\n .andWhere('summary.domain = :domain', { domain: domain.id })\n .andWhere('summary.date >= :from', { from })\n .andWhere('summary.date < :to', { to })\n .addGroupBy('summary.dataSet')\n .addGroupBy(groupByPeriod)\n\n if (dataKeyItems.length > 0) {\n queryBuilder.addSelect(selectKeys).addGroupBy(groupByKeys)\n }\n\n orderByPeriod.map(orderBy => {\n const { name: sort, desc } = orderBy\n queryBuilder.addOrderBy(sort, desc ? 'DESC' : 'ASC')\n })\n\n const items = await queryBuilder.getRawMany()\n\n return items\n}\n"]}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderShinyReport = renderShinyReport;
4
4
  const tslib_1 = require("tslib");
5
5
  const env_1 = require("@things-factory/env");
6
- const config_resolver_1 = require("../utils/config-resolver");
6
+ const config_resolver_js_1 = require("../utils/config-resolver.js");
7
7
  const debug_1 = tslib_1.__importDefault(require("debug"));
8
8
  const debug = (0, debug_1.default)('things-factory:dataset:shiny-report');
9
9
  const dataReportConfig = env_1.config.get('dataReport');
@@ -24,7 +24,7 @@ async function renderShinyReport(context) {
24
24
  if (!subpath) {
25
25
  return (context.body = '');
26
26
  }
27
- const url = (0, config_resolver_1.getEndpointUrl)(ENDPOINT, subpath);
27
+ const url = (0, config_resolver_js_1.getEndpointUrl)(ENDPOINT, subpath);
28
28
  const reportUrl = `${url}/?${urlParams}`;
29
29
  response.redirect(reportUrl);
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shiny-report.js","sourceRoot":"","sources":["../../server/controllers/shiny-report.ts"],"names":[],"mappings":";;AAqBA,8CAgCC;;AArDD,6CAA4C;AAC5C,8DAAyD;AAEzD,0DAA4B;AAC5B,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,qCAAqC,CAAC,CAAA;AAC7D,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,CACf;IACE,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;KACf;CACF,EACD,gBAAgB,CACjB,CAAA;AAEM,KAAK,UAAU,iBAAiB,CAAC,OAAY;IAClD,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;IAEhC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;QAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QACzC,MAAM,EACJ,KAAK,EAAE,EAAE,MAAM,EAAE,EACjB,KAAK,EACL,QAAQ,EACT,GAAG,OAAO,CAAA;QAEX,MAAM,SAAS,GAAG,IAAI,eAAe,+BACnC,KAAK,IACF,KAAK,KACR,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,IACzB,CAAC,QAAQ,EAAE,CAAA;QAEb,MAAM,OAAO,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,KAAI,EAAE,CAAA;QAEvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;QAC5B,CAAC;QAED,MAAM,GAAG,GAAG,IAAA,gCAAc,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,GAAG,GAAG,KAAK,SAAS,EAAE,CAAA;QAExC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC,OAAO,QAAQ,CAAA;IAC7C,CAAC;AACH,CAAC","sourcesContent":["import { config } from '@things-factory/env'\nimport { getEndpointUrl } from '../utils/config-resolver'\n\nimport debugLib from 'debug'\nconst debug = debugLib('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 {\n shiny: {\n endpoint: {},\n datasource: {}\n }\n },\n dataReportConfig\n)\n\nexport async function renderShinyReport(context: any) {\n debug('render:context', context)\n\n try {\n const cookies = new URLSearchParams(context.header.cookie.replace(/; /g, '&'))\n const token = cookies.get('access_token')\n const {\n state: { domain },\n query,\n response\n } = context\n\n const urlParams = new URLSearchParams({\n token,\n ...query,\n database: DATABASE,\n domain: domain?.subdomain\n }).toString()\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 = `${url}/?${urlParams}`\n\n response.redirect(reportUrl)\n } catch (ex) {\n context.body = `Error: ${ex.message} || ''`\n }\n}\n"]}
1
+ {"version":3,"file":"shiny-report.js","sourceRoot":"","sources":["../../server/controllers/shiny-report.ts"],"names":[],"mappings":";;AAqBA,8CAgCC;;AArDD,6CAA4C;AAC5C,oEAA4D;AAE5D,0DAA4B;AAC5B,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,qCAAqC,CAAC,CAAA;AAC7D,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,CACf;IACE,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;KACf;CACF,EACD,gBAAgB,CACjB,CAAA;AAEM,KAAK,UAAU,iBAAiB,CAAC,OAAY;IAClD,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;IAEhC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;QAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QACzC,MAAM,EACJ,KAAK,EAAE,EAAE,MAAM,EAAE,EACjB,KAAK,EACL,QAAQ,EACT,GAAG,OAAO,CAAA;QAEX,MAAM,SAAS,GAAG,IAAI,eAAe,+BACnC,KAAK,IACF,KAAK,KACR,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,IACzB,CAAC,QAAQ,EAAE,CAAA;QAEb,MAAM,OAAO,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,KAAI,EAAE,CAAA;QAEvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;QAC5B,CAAC;QAED,MAAM,GAAG,GAAG,IAAA,mCAAc,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,GAAG,GAAG,KAAK,SAAS,EAAE,CAAA;QAExC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC,OAAO,QAAQ,CAAA;IAC7C,CAAC;AACH,CAAC","sourcesContent":["import { config } from '@things-factory/env'\nimport { getEndpointUrl } from '../utils/config-resolver.js'\n\nimport debugLib from 'debug'\nconst debug = debugLib('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 {\n shiny: {\n endpoint: {},\n datasource: {}\n }\n },\n dataReportConfig\n)\n\nexport async function renderShinyReport(context: any) {\n debug('render:context', context)\n\n try {\n const cookies = new URLSearchParams(context.header.cookie.replace(/; /g, '&'))\n const token = cookies.get('access_token')\n const {\n state: { domain },\n query,\n response\n } = context\n\n const urlParams = new URLSearchParams({\n token,\n ...query,\n database: DATABASE,\n domain: domain?.subdomain\n }).toString()\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 = `${url}/?${urlParams}`\n\n response.redirect(reportUrl)\n } catch (ex) {\n context.body = `Error: ${ex.message} || ''`\n }\n}\n"]}
@@ -1 +1 @@
1
- import './task';
1
+ import './task/index.js';
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- require("./task");
3
+ require("./task/index.js");
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/engine/index.ts"],"names":[],"mappings":";;AAAA,kBAAe","sourcesContent":["import './task'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/engine/index.ts"],"names":[],"mappings":";;AAAA,2BAAwB","sourcesContent":["import './task/index.js'\n"]}
@@ -5,8 +5,8 @@ const integration_base_1 = require("@things-factory/integration-base");
5
5
  const shell_1 = require("@things-factory/shell");
6
6
  const utils_1 = require("@things-factory/utils");
7
7
  const i18next_1 = tslib_1.__importDefault(require("i18next"));
8
- const data_set_1 = require("../../service/data-set/data-set");
9
- const create_data_sample_1 = require("../../controllers/create-data-sample");
8
+ const data_set_js_1 = require("../../service/data-set/data-set.js");
9
+ const create_data_sample_js_1 = require("../../controllers/create-data-sample.js");
10
10
  async function CreateDataSample(step, context) {
11
11
  const { data, domain, user, lng } = context;
12
12
  var { params: { dataset: dataSetId, source: sourceAccessor, rawData: rawDataAccessor, data: dataAccessor, timestamp: timestampAccessor } } = step;
@@ -15,7 +15,7 @@ async function CreateDataSample(step, context) {
15
15
  }
16
16
  // make new data-sample
17
17
  return await (0, shell_1.getDataSource)().transaction(async (tx) => {
18
- const dataSet = await tx.getRepository(data_set_1.DataSet).findOne({
18
+ const dataSet = await tx.getRepository(data_set_js_1.DataSet).findOne({
19
19
  where: {
20
20
  id: dataSetId
21
21
  }
@@ -24,7 +24,7 @@ async function CreateDataSample(step, context) {
24
24
  var extractedData = await (0, utils_1.access)(dataAccessor, data);
25
25
  var extractedRawData = rawDataAccessor && (await (0, utils_1.access)(rawDataAccessor, data));
26
26
  var timestamp = timestampAccessor && (await (0, utils_1.access)(timestampAccessor, data));
27
- const dataSample = await (0, create_data_sample_1.createDataSample)({
27
+ const dataSample = await (0, create_data_sample_js_1.createDataSample)({
28
28
  dataSet,
29
29
  data: extractedData,
30
30
  rawData: extractedRawData,
@@ -1 +1 @@
1
- {"version":3,"file":"create-data-sample.js","sourceRoot":"","sources":["../../../server/engine/task/create-data-sample.ts"],"names":[],"mappings":";;;AAAA,uEAAmF;AACnF,iDAAqD;AACrD,iDAA8C;AAC9C,8DAA6B;AAE7B,8DAAyD;AAEzD,6EAAuE;AAGvE,KAAK,UAAU,gBAAgB,CAAC,IAAe,EAAE,OAAgB;IAC/D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAC3C,IAAI,EACF,MAAM,EAAE,EACN,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,iBAAiB,EAC7B,EACF,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,uBAAuB;IACvB,OAAO,MAAM,IAAA,qBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;QAClD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,kBAAO,CAAC,CAAC,OAAO,CAAC;YACtD,KAAK,EAAE;gBACL,EAAE,EAAE,SAAS;aACd;SACF,CAAC,CAAA;QAEF,IAAI,MAAM,GAAG,MAAM,IAAA,cAAM,EAAC,cAAc,EAAE,IAAI,CAAC,CAAA;QAC/C,IAAI,aAAa,GAAG,MAAM,IAAA,cAAM,EAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QACpD,IAAI,gBAAgB,GAAG,eAAe,IAAI,CAAC,MAAM,IAAA,cAAM,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAA;QAC/E,IAAI,SAAS,GAAG,iBAAiB,IAAI,CAAC,MAAM,IAAA,cAAM,EAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAA;QAE5E,MAAM,UAAU,GAAG,MAAM,IAAA,qCAAgB,EACvC;YACE,OAAO;YACP,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,gBAAgB;YACzB,MAAM;YACN,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;SAC/C,EACD;YACE,CAAC,EAAE,iBAAO,CAAC,CAAC;YACZ,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;gBACJ,GAAG;gBACH,EAAE;aACH;SACF,CACF,CAAA;QAED,OAAO;YACL,IAAI,EAAE,UAAU;SACjB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,gBAAgB,CAAC,aAAa,GAAG;IAC/B;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE;YACR,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,IAAI;SACf;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAA;AACrC,gBAAgB,CAAC,IAAI,GAAG,iCAAiC,CAAA;AAEzD,+BAAY,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,gBAA+B,CAAC,CAAA","sourcesContent":["import { TaskRegistry, InputStep, Context } from '@things-factory/integration-base'\nimport { getDataSource } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\nimport i18next from 'i18next'\n\nimport { DataSet } from '../../service/data-set/data-set'\n\nimport { createDataSample } from '../../controllers/create-data-sample'\nimport { TaskHandler } from '@things-factory/integration-base/dist-server/engine/types'\n\nasync function CreateDataSample(step: InputStep, context: Context) {\n const { data, domain, user, lng } = context\n var {\n params: {\n dataset: dataSetId,\n source: sourceAccessor,\n rawData: rawDataAccessor,\n data: dataAccessor,\n timestamp: timestampAccessor\n }\n } = step\n\n if (!dataSetId) {\n throw new Error(`no dataset found`)\n }\n\n // make new data-sample\n return await getDataSource().transaction(async tx => {\n const dataSet = await tx.getRepository(DataSet).findOne({\n where: {\n id: dataSetId\n }\n })\n\n var source = await access(sourceAccessor, data)\n var extractedData = await access(dataAccessor, data)\n var extractedRawData = rawDataAccessor && (await access(rawDataAccessor, data))\n var timestamp = timestampAccessor && (await access(timestampAccessor, data))\n\n const dataSample = await createDataSample(\n {\n dataSet,\n data: extractedData,\n rawData: extractedRawData,\n source,\n collectedAt: new Date(timestamp || new Date())\n },\n {\n t: i18next.t,\n state: {\n domain,\n user,\n lng,\n tx\n }\n }\n )\n\n return {\n data: dataSample\n }\n })\n}\n\nCreateDataSample.parameterSpec = [\n {\n type: 'entity-selector',\n name: 'dataset',\n label: 'data-set',\n property: {\n queryName: 'dataSets',\n valueKey: 'id'\n }\n },\n {\n type: 'string',\n name: 'source',\n label: 'source'\n },\n {\n type: 'string',\n name: 'rawData',\n label: 'raw-data'\n },\n {\n type: 'string',\n name: 'data',\n label: 'data'\n },\n {\n type: 'string',\n name: 'timestamp',\n label: 'timestamp'\n }\n]\n\nCreateDataSample.connectorFree = true\nCreateDataSample.help = 'dataset/task/create-data-sample'\n\nTaskRegistry.registerTaskHandler('create-data-sample', CreateDataSample as TaskHandler)\n"]}
1
+ {"version":3,"file":"create-data-sample.js","sourceRoot":"","sources":["../../../server/engine/task/create-data-sample.ts"],"names":[],"mappings":";;;AAAA,uEAAmF;AACnF,iDAAqD;AACrD,iDAA8C;AAC9C,8DAA6B;AAE7B,oEAA4D;AAC5D,mFAA0E;AAE1E,KAAK,UAAU,gBAAgB,CAAC,IAAe,EAAE,OAAgB;IAC/D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAC3C,IAAI,EACF,MAAM,EAAE,EACN,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,iBAAiB,EAC7B,EACF,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,uBAAuB;IACvB,OAAO,MAAM,IAAA,qBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;QAClD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,qBAAO,CAAC,CAAC,OAAO,CAAC;YACtD,KAAK,EAAE;gBACL,EAAE,EAAE,SAAS;aACd;SACF,CAAC,CAAA;QAEF,IAAI,MAAM,GAAG,MAAM,IAAA,cAAM,EAAC,cAAc,EAAE,IAAI,CAAC,CAAA;QAC/C,IAAI,aAAa,GAAG,MAAM,IAAA,cAAM,EAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QACpD,IAAI,gBAAgB,GAAG,eAAe,IAAI,CAAC,MAAM,IAAA,cAAM,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAA;QAC/E,IAAI,SAAS,GAAG,iBAAiB,IAAI,CAAC,MAAM,IAAA,cAAM,EAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAA;QAE5E,MAAM,UAAU,GAAG,MAAM,IAAA,wCAAgB,EACvC;YACE,OAAO;YACP,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,gBAAgB;YACzB,MAAM;YACN,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;SAC/C,EACD;YACE,CAAC,EAAE,iBAAO,CAAC,CAAC;YACZ,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;gBACJ,GAAG;gBACH,EAAE;aACH;SACF,CACF,CAAA;QAED,OAAO;YACL,IAAI,EAAE,UAAU;SACjB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,gBAAgB,CAAC,aAAa,GAAG;IAC/B;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE;YACR,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,IAAI;SACf;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAA;AACrC,gBAAgB,CAAC,IAAI,GAAG,iCAAiC,CAAA;AAEzD,+BAAY,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA","sourcesContent":["import { TaskRegistry, InputStep, Context } from '@things-factory/integration-base'\nimport { getDataSource } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\nimport i18next from 'i18next'\n\nimport { DataSet } from '../../service/data-set/data-set.js'\nimport { createDataSample } from '../../controllers/create-data-sample.js'\n\nasync function CreateDataSample(step: InputStep, context: Context) {\n const { data, domain, user, lng } = context\n var {\n params: {\n dataset: dataSetId,\n source: sourceAccessor,\n rawData: rawDataAccessor,\n data: dataAccessor,\n timestamp: timestampAccessor\n }\n } = step\n\n if (!dataSetId) {\n throw new Error(`no dataset found`)\n }\n\n // make new data-sample\n return await getDataSource().transaction(async tx => {\n const dataSet = await tx.getRepository(DataSet).findOne({\n where: {\n id: dataSetId\n }\n })\n\n var source = await access(sourceAccessor, data)\n var extractedData = await access(dataAccessor, data)\n var extractedRawData = rawDataAccessor && (await access(rawDataAccessor, data))\n var timestamp = timestampAccessor && (await access(timestampAccessor, data))\n\n const dataSample = await createDataSample(\n {\n dataSet,\n data: extractedData,\n rawData: extractedRawData,\n source,\n collectedAt: new Date(timestamp || new Date())\n },\n {\n t: i18next.t,\n state: {\n domain,\n user,\n lng,\n tx\n }\n }\n )\n\n return {\n data: dataSample\n }\n })\n}\n\nCreateDataSample.parameterSpec = [\n {\n type: 'entity-selector',\n name: 'dataset',\n label: 'data-set',\n property: {\n queryName: 'dataSets',\n valueKey: 'id'\n }\n },\n {\n type: 'string',\n name: 'source',\n label: 'source'\n },\n {\n type: 'string',\n name: 'rawData',\n label: 'raw-data'\n },\n {\n type: 'string',\n name: 'data',\n label: 'data'\n },\n {\n type: 'string',\n name: 'timestamp',\n label: 'timestamp'\n }\n]\n\nCreateDataSample.connectorFree = true\nCreateDataSample.help = 'dataset/task/create-data-sample'\n\nTaskRegistry.registerTaskHandler('create-data-sample', CreateDataSample)\n"]}
@@ -1,2 +1,2 @@
1
- import './create-data-sample';
2
- import './issue-collect-data';
1
+ import './create-data-sample.js';
2
+ import './issue-collect-data.js';
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- require("./create-data-sample");
4
- require("./issue-collect-data");
3
+ require("./create-data-sample.js");
4
+ require("./issue-collect-data.js");
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/engine/task/index.ts"],"names":[],"mappings":";;AAAA,gCAA6B;AAC7B,gCAA6B","sourcesContent":["import './create-data-sample'\nimport './issue-collect-data'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/engine/task/index.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAChC,mCAAgC","sourcesContent":["import './create-data-sample.js'\nimport './issue-collect-data.js'\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const integration_base_1 = require("@things-factory/integration-base");
5
- const issue_data_collection_task_1 = require("../../controllers/issue-data-collection-task");
5
+ const issue_data_collection_task_js_1 = require("../../controllers/issue-data-collection-task.js");
6
6
  const i18next_1 = tslib_1.__importDefault(require("i18next"));
7
7
  async function IssueCollectData(step, context) {
8
8
  const { logger, data, domain, user, lng } = context;
@@ -10,7 +10,7 @@ async function IssueCollectData(step, context) {
10
10
  if (!dataSetId) {
11
11
  throw new Error(`no dataset found`);
12
12
  }
13
- const activityInstance = await (0, issue_data_collection_task_1.issueDataCollectionTask)(domain.id, dataSetId, {
13
+ const activityInstance = await (0, issue_data_collection_task_js_1.issueDataCollectionTask)(domain.id, dataSetId, {
14
14
  t: i18next_1.default.t,
15
15
  state: {
16
16
  domain,
@@ -1 +1 @@
1
- {"version":3,"file":"issue-collect-data.js","sourceRoot":"","sources":["../../../server/engine/task/issue-collect-data.ts"],"names":[],"mappings":";;;AAAA,uEAAmF;AACnF,6FAAsF;AACtF,8DAA6B;AAE7B,KAAK,UAAU,gBAAgB,CAAC,IAAe,EAAE,OAAgB;IAC/D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IACnD,IAAI,EACF,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAC/B,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,oDAAuB,EAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE;QAC3E,CAAC,EAAE,iBAAO,CAAC,CAAC;QACZ,KAAK,EAAE;YACL,MAAM;YACN,IAAI;YACJ,GAAG;YACH,EAAE,EAAE,SAAS;SACd;KACF,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,gBAAgB;KACvB,CAAA;AACH,CAAC;AAED,gBAAgB,CAAC,aAAa,GAAG;IAC/B;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE;YACR,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAA;AAED,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAA;AACrC,gBAAgB,CAAC,IAAI,GAAG,iCAAiC,CAAA;AAEzD,+BAAY,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA","sourcesContent":["import { TaskRegistry, InputStep, Context } from '@things-factory/integration-base'\nimport { issueDataCollectionTask } from '../../controllers/issue-data-collection-task'\nimport i18next from 'i18next'\n\nasync function IssueCollectData(step: InputStep, context: Context) {\n const { logger, data, domain, user, lng } = context\n var {\n params: { dataset: dataSetId }\n } = step\n\n if (!dataSetId) {\n throw new Error(`no dataset found`)\n }\n\n const activityInstance = await issueDataCollectionTask(domain.id, dataSetId, {\n t: i18next.t,\n state: {\n domain,\n user,\n lng,\n tx: undefined\n }\n })\n\n return {\n data: activityInstance\n }\n}\n\nIssueCollectData.parameterSpec = [\n {\n type: 'entity-selector',\n name: 'dataset',\n label: 'data-set',\n property: {\n queryName: 'dataSets',\n valueKey: 'id'\n }\n }\n]\n\nIssueCollectData.connectorFree = true\nIssueCollectData.help = 'dataset/task/issue-collect-data'\n\nTaskRegistry.registerTaskHandler('issue-collect-data', IssueCollectData)\n"]}
1
+ {"version":3,"file":"issue-collect-data.js","sourceRoot":"","sources":["../../../server/engine/task/issue-collect-data.ts"],"names":[],"mappings":";;;AAAA,uEAAmF;AACnF,mGAAyF;AACzF,8DAA6B;AAE7B,KAAK,UAAU,gBAAgB,CAAC,IAAe,EAAE,OAAgB;IAC/D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IACnD,IAAI,EACF,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAC/B,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,uDAAuB,EAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE;QAC3E,CAAC,EAAE,iBAAO,CAAC,CAAC;QACZ,KAAK,EAAE;YACL,MAAM;YACN,IAAI;YACJ,GAAG;YACH,EAAE,EAAE,SAAS;SACd;KACF,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,gBAAgB;KACvB,CAAA;AACH,CAAC;AAED,gBAAgB,CAAC,aAAa,GAAG;IAC/B;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE;YACR,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAA;AAED,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAA;AACrC,gBAAgB,CAAC,IAAI,GAAG,iCAAiC,CAAA;AAEzD,+BAAY,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA","sourcesContent":["import { TaskRegistry, InputStep, Context } from '@things-factory/integration-base'\nimport { issueDataCollectionTask } from '../../controllers/issue-data-collection-task.js'\nimport i18next from 'i18next'\n\nasync function IssueCollectData(step: InputStep, context: Context) {\n const { logger, data, domain, user, lng } = context\n var {\n params: { dataset: dataSetId }\n } = step\n\n if (!dataSetId) {\n throw new Error(`no dataset found`)\n }\n\n const activityInstance = await issueDataCollectionTask(domain.id, dataSetId, {\n t: i18next.t,\n state: {\n domain,\n user,\n lng,\n tx: undefined\n }\n })\n\n return {\n data: activityInstance\n }\n}\n\nIssueCollectData.parameterSpec = [\n {\n type: 'entity-selector',\n name: 'dataset',\n label: 'data-set',\n property: {\n queryName: 'dataSets',\n valueKey: 'id'\n }\n }\n]\n\nIssueCollectData.connectorFree = true\nIssueCollectData.help = 'dataset/task/issue-collect-data'\n\nTaskRegistry.registerTaskHandler('issue-collect-data', IssueCollectData)\n"]}
@@ -1,6 +1,6 @@
1
- import './routes';
2
- import './activities';
3
- import './engine';
4
- export * from './controllers';
5
- export * from './service';
6
- export * from './service/data-spec/data-spec-manager';
1
+ import './routes.js';
2
+ import './activities/index.js';
3
+ import './engine/index.js';
4
+ export * from './controllers/index.js';
5
+ export * from './service/index.js';
6
+ export * from './service/data-spec/data-spec-manager.js';
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- require("./routes");
5
- require("./activities");
6
- require("./engine");
7
- tslib_1.__exportStar(require("./controllers"), exports);
8
- tslib_1.__exportStar(require("./service"), exports);
9
- tslib_1.__exportStar(require("./service/data-spec/data-spec-manager"), exports);
4
+ require("./routes.js");
5
+ require("./activities/index.js");
6
+ require("./engine/index.js");
7
+ tslib_1.__exportStar(require("./controllers/index.js"), exports);
8
+ tslib_1.__exportStar(require("./service/index.js"), exports);
9
+ tslib_1.__exportStar(require("./service/data-spec/data-spec-manager.js"), exports);
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;AAAA,oBAAiB;AACjB,wBAAqB;AACrB,oBAAiB;AAEjB,wDAA6B;AAC7B,oDAAyB;AAEzB,gFAAqD","sourcesContent":["import './routes'\nimport './activities'\nimport './engine'\n\nexport * from './controllers'\nexport * from './service'\n\nexport * from './service/data-spec/data-spec-manager'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;AAAA,uBAAoB;AACpB,iCAA8B;AAC9B,6BAA0B;AAE1B,iEAAsC;AACtC,6DAAkC;AAElC,mFAAwD","sourcesContent":["import './routes.js'\nimport './activities/index.js'\nimport './engine/index.js'\n\nexport * from './controllers/index.js'\nexport * from './service/index.js'\n\nexport * from './service/data-spec/data-spec-manager.js'\n"]}
@@ -4,12 +4,12 @@ const typeorm_1 = require("typeorm");
4
4
  const shell_1 = require("@things-factory/shell");
5
5
  const auth_base_1 = require("@things-factory/auth-base");
6
6
  const integration_base_1 = require("@things-factory/integration-base");
7
- const create_data_sample_1 = require("./controllers/create-data-sample");
8
- const jasper_report_1 = require("./controllers/jasper-report");
9
- const shiny_report_1 = require("./controllers/shiny-report");
10
- const issue_data_collection_task_1 = require("./controllers/issue-data-collection-task");
11
- const data_sensor_1 = require("./service/data-sensor/data-sensor");
12
- const data_set_1 = require("./service/data-set/data-set");
7
+ const create_data_sample_js_1 = require("./controllers/create-data-sample.js");
8
+ const jasper_report_js_1 = require("./controllers/jasper-report.js");
9
+ const shiny_report_js_1 = require("./controllers/shiny-report.js");
10
+ const issue_data_collection_task_js_1 = require("./controllers/issue-data-collection-task.js");
11
+ const data_sensor_js_1 = require("./service/data-sensor/data-sensor.js");
12
+ const data_set_js_1 = require("./service/data-set/data-set.js");
13
13
  process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
14
14
  /*
15
15
  * can add global public routes to application (auth not required, tenancy not required)
@@ -27,7 +27,7 @@ process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) =>
27
27
  await (0, shell_1.getDataSource)().transaction(async (tx) => {
28
28
  var _a;
29
29
  // find sensor through deviceId
30
- const sensor = await tx.getRepository(data_sensor_1.DataSensor).findOne({
30
+ const sensor = await tx.getRepository(data_sensor_js_1.DataSensor).findOne({
31
31
  where: { deviceId },
32
32
  relations: ['domain', 'appliance', 'dataSet', 'decoder']
33
33
  });
@@ -68,7 +68,7 @@ process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) =>
68
68
  decoded = (_a = (await (0, integration_base_1.runScenario)(null, scenarioName, variables, context))) === null || _a === void 0 ? void 0 : _a.result;
69
69
  }
70
70
  if (dataSet) {
71
- await (0, create_data_sample_1.createDataSample)(Object.assign({ dataSet,
71
+ await (0, create_data_sample_js_1.createDataSample)(Object.assign({ dataSet,
72
72
  data,
73
73
  rawData, source: deviceId, collectedAt: new Date(timestamp) }, decoded), context);
74
74
  }
@@ -86,7 +86,7 @@ process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) =>
86
86
  if (!domainId || !dataSetId) {
87
87
  throw new Error(`group(${domainId}) and key(${dataSetId}) properties should not be empty`);
88
88
  }
89
- await (0, issue_data_collection_task_1.issueDataCollectionTask)(domainId, dataSetId, context);
89
+ await (0, issue_data_collection_task_js_1.issueDataCollectionTask)(domainId, dataSetId, context);
90
90
  context.status = 200;
91
91
  });
92
92
  /* When a callback occurs from the scheduler when a scheduled summary is on schedule, data summary procedure for the dataset should be executed. */
@@ -105,7 +105,7 @@ process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) =>
105
105
  throw new Error(`domain(${domainId}) not found`);
106
106
  }
107
107
  const dataSet = await tx
108
- .getRepository(data_set_1.DataSet)
108
+ .getRepository(data_set_js_1.DataSet)
109
109
  .findOne({ where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId } });
110
110
  // do what you gotta do
111
111
  });
@@ -127,10 +127,10 @@ process.on('bootstrap-module-domain-private-route', (app, domainPrivateRouter) =
127
127
  * can add domain private routes to application (auth required, tenancy required)
128
128
  */
129
129
  domainPrivateRouter.get('/data-report/jasper', async (context, next) => {
130
- context.body = await (0, jasper_report_1.renderJasperReport)(context);
130
+ context.body = await (0, jasper_report_js_1.renderJasperReport)(context);
131
131
  });
132
132
  domainPrivateRouter.get('/data-report/shiny', async (context, next) => {
133
- await (0, shiny_report_1.renderShinyReport)(context);
133
+ await (0, shiny_report_js_1.renderShinyReport)(context);
134
134
  });
135
135
  domainPrivateRouter.get('/data-report/:reportType', async (context, next) => {
136
136
  let { reportType } = context.params;
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\n\nimport { Domain, getDataSource } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { runScenario } from '@things-factory/integration-base'\nimport { ScheduleRegisterRequest } from '@things-factory/scheduler-client'\n\nimport { createDataSample } from './controllers/create-data-sample'\nimport { renderJasperReport } from './controllers/jasper-report'\nimport { renderShinyReport } from './controllers/shiny-report'\nimport { issueDataCollectionTask } from './controllers/issue-data-collection-task'\nimport { DataSensor } from './service/data-sensor/data-sensor'\nimport { DataSet } from './service/data-set/data-set'\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) {\n throw new Error(`The deviceId(${deviceId}) property are mandatory`)\n }\n\n // make new data-sample\n await getDataSource().transaction(async tx => {\n // find sensor through deviceId\n const sensor = await tx.getRepository(DataSensor).findOne({\n where: { deviceId },\n relations: ['domain', 'appliance', 'dataSet', 'decoder']\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 const domain = sensor.domain\n const dataSet = sensor.dataSet\n\n /* \n 원칙적으로 user 인증정보를 가지고 요청해야 하지만, 인증정보를 보낼 수 없는 상황이라고 전제하여 처리한다.\n 앞으로, 보완되어야 한다.\n */\n const user: User =\n context.user ||\n (await tx.getRepository(User).findOne({\n where: {\n reference: sensor.appliance.id,\n userType: 'appliance'\n }\n }))\n\n context.state = {\n user,\n ...context.state,\n domain,\n tx\n }\n\n var decoded\n if (sensor.decoder) {\n const { name: scenarioName } = sensor.decoder\n const variables = {\n dataSensor: sensor,\n source: deviceId,\n data,\n rawData,\n timestamp\n }\n\n decoded = (await runScenario(null, scenarioName, variables, context))?.result\n }\n\n if (dataSet) {\n await createDataSample(\n {\n dataSet,\n data,\n rawData,\n source: deviceId,\n collectedAt: new Date(timestamp),\n ...decoded\n },\n context\n )\n }\n\n context.status = 200\n context.body = {\n data,\n ...decoded\n }\n })\n })\n\n /* When a callback occurs from the scheduler when a scheduled dataset is on schedule, data collection task for the dataset should be issued. */\n globalPublicRouter.post('/callback-schedule-for-dataset', async (context, next) => {\n const { client } = context.request.body as ScheduleRegisterRequest\n\n if (!client || typeof client !== 'object') {\n throw new Error('client property should be a part of callback body.')\n }\n\n const { group: domainId, key: dataSetId } = client\n\n if (!domainId || !dataSetId) {\n throw new Error(`group(${domainId}) and key(${dataSetId}) properties should not be empty`)\n }\n\n await issueDataCollectionTask(domainId, dataSetId, context)\n\n context.status = 200\n })\n\n /* When a callback occurs from the scheduler when a scheduled summary is on schedule, data summary procedure for the dataset should be executed. */\n globalPublicRouter.post('/callback-schedule-for-data-summary', async (context, next) => {\n const { client } = context.request.body as ScheduleRegisterRequest\n\n if (!client || typeof client !== 'object') {\n throw new Error('client property should be a part of callback body.')\n }\n\n const { group: domainId, key: dataSetId } = client\n\n if (!domainId || !dataSetId) {\n throw new Error(`group(${domainId}) and key(${dataSetId}) properties should not be empty`)\n }\n\n await getDataSource().transaction(async tx => {\n const domain = await tx.getRepository(Domain).findOneBy({ id: domainId })\n\n if (!domain) {\n throw new Error(`domain(${domainId}) not found`)\n }\n\n const dataSet = await tx\n .getRepository(DataSet)\n .findOne({ where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId } })\n\n // do what you gotta do\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"]}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;AAAA,qCAA4B;AAE5B,iDAA6D;AAC7D,yDAAgD;AAChD,uEAA8D;AAG9D,+EAAsE;AACtE,qEAAmE;AACnE,mEAAiE;AACjE,+FAAqF;AACrF,yEAAiE;AACjE,gEAAwD;AAExD,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;;;;OAKG;IAEH,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9D,SAAS;QACT,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;QAChF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,0BAA0B,CAAC,CAAA;QACrE,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAA,qBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;;YAC3C,+BAA+B;YAC/B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,2BAAU,CAAC,CAAC,OAAO,CAAC;gBACxD,KAAK,EAAE,EAAE,QAAQ,EAAE;gBACnB,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;aACzD,CAAC,CAAA;YAEF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,aAAa,CAAC,CAAA;YACxE,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,iBAAiB,CAAC,CAAA;YAClF,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,iBAAiB,CAAC,CAAA;YACtF,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;YAE9B;;;cAGE;YACF,MAAM,IAAI,GACR,OAAO,CAAC,IAAI;gBACZ,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;oBACpC,KAAK,EAAE;wBACL,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;wBAC9B,QAAQ,EAAE,WAAW;qBACtB;iBACF,CAAC,CAAC,CAAA;YAEL,OAAO,CAAC,KAAK,iCACX,IAAI,IACD,OAAO,CAAC,KAAK,KAChB,MAAM;gBACN,EAAE,GACH,CAAA;YAED,IAAI,OAAO,CAAA;YACX,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,OAAO,CAAA;gBAC7C,MAAM,SAAS,GAAG;oBAChB,UAAU,EAAE,MAAM;oBAClB,MAAM,EAAE,QAAQ;oBAChB,IAAI;oBACJ,OAAO;oBACP,SAAS;iBACV,CAAA;gBAED,OAAO,GAAG,MAAA,CAAC,MAAM,IAAA,8BAAW,EAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,0CAAE,MAAM,CAAA;YAC/E,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAA,wCAAgB,kBAElB,OAAO;oBACP,IAAI;oBACJ,OAAO,EACP,MAAM,EAAE,QAAQ,EAChB,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,IAC7B,OAAO,GAEZ,OAAO,CACR,CAAA;YACH,CAAC;YAED,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;YACpB,OAAO,CAAC,IAAI,mBACV,IAAI,IACD,OAAO,CACX,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,+IAA+I;IAC/I,kBAAkB,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAChF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAA+B,CAAA;QAElE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;QAElD,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,aAAa,SAAS,kCAAkC,CAAC,CAAA;QAC5F,CAAC;QAED,MAAM,IAAA,uDAAuB,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QAE3D,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,mJAAmJ;IACnJ,kBAAkB,CAAC,IAAI,CAAC,qCAAqC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACrF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAA+B,CAAA;QAElE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;QAElD,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,aAAa,SAAS,kCAAkC,CAAC,CAAA;QAC5F,CAAC;QAED,MAAM,IAAA,qBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;YAEzE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,aAAa,CAAC,CAAA;YAClD,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,EAAE;iBACrB,aAAa,CAAC,qBAAO,CAAC;iBACtB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;YAE1G,uBAAuB;QACzB,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;IACH,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACrE,OAAO,CAAC,IAAI,GAAG,MAAM,IAAA,qCAAkB,EAAC,OAAO,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,mBAAmB,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACpE,MAAM,IAAA,mCAAiB,EAAC,OAAO,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,mBAAmB,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC1E,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QACnC,OAAO,CAAC,IAAI,GAAG,GAAG,UAAU,mBAAmB,CAAA;IACjD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { In } from 'typeorm'\n\nimport { Domain, getDataSource } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { runScenario } from '@things-factory/integration-base'\nimport { ScheduleRegisterRequest } from '@things-factory/scheduler-client'\n\nimport { createDataSample } from './controllers/create-data-sample.js'\nimport { renderJasperReport } from './controllers/jasper-report.js'\nimport { renderShinyReport } from './controllers/shiny-report.js'\nimport { issueDataCollectionTask } from './controllers/issue-data-collection-task.js'\nimport { DataSensor } from './service/data-sensor/data-sensor.js'\nimport { DataSet } from './service/data-set/data-set.js'\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) {\n throw new Error(`The deviceId(${deviceId}) property are mandatory`)\n }\n\n // make new data-sample\n await getDataSource().transaction(async tx => {\n // find sensor through deviceId\n const sensor = await tx.getRepository(DataSensor).findOne({\n where: { deviceId },\n relations: ['domain', 'appliance', 'dataSet', 'decoder']\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 const domain = sensor.domain\n const dataSet = sensor.dataSet\n\n /* \n 원칙적으로 user 인증정보를 가지고 요청해야 하지만, 인증정보를 보낼 수 없는 상황이라고 전제하여 처리한다.\n 앞으로, 보완되어야 한다.\n */\n const user: User =\n context.user ||\n (await tx.getRepository(User).findOne({\n where: {\n reference: sensor.appliance.id,\n userType: 'appliance'\n }\n }))\n\n context.state = {\n user,\n ...context.state,\n domain,\n tx\n }\n\n var decoded\n if (sensor.decoder) {\n const { name: scenarioName } = sensor.decoder\n const variables = {\n dataSensor: sensor,\n source: deviceId,\n data,\n rawData,\n timestamp\n }\n\n decoded = (await runScenario(null, scenarioName, variables, context))?.result\n }\n\n if (dataSet) {\n await createDataSample(\n {\n dataSet,\n data,\n rawData,\n source: deviceId,\n collectedAt: new Date(timestamp),\n ...decoded\n },\n context\n )\n }\n\n context.status = 200\n context.body = {\n data,\n ...decoded\n }\n })\n })\n\n /* When a callback occurs from the scheduler when a scheduled dataset is on schedule, data collection task for the dataset should be issued. */\n globalPublicRouter.post('/callback-schedule-for-dataset', async (context, next) => {\n const { client } = context.request.body as ScheduleRegisterRequest\n\n if (!client || typeof client !== 'object') {\n throw new Error('client property should be a part of callback body.')\n }\n\n const { group: domainId, key: dataSetId } = client\n\n if (!domainId || !dataSetId) {\n throw new Error(`group(${domainId}) and key(${dataSetId}) properties should not be empty`)\n }\n\n await issueDataCollectionTask(domainId, dataSetId, context)\n\n context.status = 200\n })\n\n /* When a callback occurs from the scheduler when a scheduled summary is on schedule, data summary procedure for the dataset should be executed. */\n globalPublicRouter.post('/callback-schedule-for-data-summary', async (context, next) => {\n const { client } = context.request.body as ScheduleRegisterRequest\n\n if (!client || typeof client !== 'object') {\n throw new Error('client property should be a part of callback body.')\n }\n\n const { group: domainId, key: dataSetId } = client\n\n if (!domainId || !dataSetId) {\n throw new Error(`group(${domainId}) and key(${dataSetId}) properties should not be empty`)\n }\n\n await getDataSource().transaction(async tx => {\n const domain = await tx.getRepository(Domain).findOneBy({ id: domainId })\n\n if (!domain) {\n throw new Error(`domain(${domainId}) not found`)\n }\n\n const dataSet = await tx\n .getRepository(DataSet)\n .findOne({ where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId } })\n\n // do what you gotta do\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"]}
@@ -1,5 +1,5 @@
1
- import { DataArchive } from './data-archive';
2
- import { DataArchivePatch, NewDataArchive } from './data-archive-type';
1
+ import { DataArchive } from './data-archive.js';
2
+ import { DataArchivePatch, NewDataArchive } from './data-archive-type.js';
3
3
  export declare class DataArchiveMutation {
4
4
  /**
5
5
  * It may use 'func-[dev]-data-set-download' in https://github.com/operatochef/serverless
@@ -6,9 +6,9 @@ const i18next_1 = tslib_1.__importDefault(require("i18next"));
6
6
  const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
7
7
  const type_graphql_1 = require("type-graphql");
8
8
  const typeorm_1 = require("typeorm");
9
- const config_resolver_1 = require("../../utils/config-resolver");
10
- const data_archive_1 = require("./data-archive");
11
- const data_archive_type_1 = require("./data-archive-type");
9
+ const config_resolver_js_1 = require("../../utils/config-resolver.js");
10
+ const data_archive_js_1 = require("./data-archive.js");
11
+ const data_archive_type_js_1 = require("./data-archive-type.js");
12
12
  const { config } = require('@things-factory/env');
13
13
  const crypto = require('crypto');
14
14
  let DataArchiveMutation = class DataArchiveMutation {
@@ -22,7 +22,7 @@ let DataArchiveMutation = class DataArchiveMutation {
22
22
  const t = i18next_1.default.getFixedT(lng, 'translations');
23
23
  const { dataset: { endpoint, datasource: { database } } } = config.get('dataArchive');
24
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);
25
+ const url = (0, config_resolver_js_1.getEndpointUrl)(endpoint);
26
26
  const fetched = await (0, node_fetch_1.default)(`${url}`, {
27
27
  method: 'POST',
28
28
  headers: { 'Content-Type': 'application/json' },
@@ -56,13 +56,13 @@ let DataArchiveMutation = class DataArchiveMutation {
56
56
  }
57
57
  async createDataArchive(dataArchive, context) {
58
58
  const { domain, user, tx } = context.state;
59
- const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
59
+ const dataArchiveRepo = tx.getRepository(data_archive_js_1.DataArchive);
60
60
  const result = await dataArchiveRepo.save(Object.assign(Object.assign({}, dataArchive), { domain, creator: user, updater: user }));
61
61
  return result;
62
62
  }
63
63
  async updateDataArchive(id, patch, context) {
64
64
  const { domain, user, tx } = context.state;
65
- const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
65
+ const dataArchiveRepo = tx.getRepository(data_archive_js_1.DataArchive);
66
66
  const dataArchive = await dataArchiveRepo.findOne({
67
67
  where: { domain: { id: domain.id }, id },
68
68
  relations: ['domain', 'creator', 'updater']
@@ -72,7 +72,7 @@ let DataArchiveMutation = class DataArchiveMutation {
72
72
  }
73
73
  async updateMultipleDataArchive(patches, context) {
74
74
  const { domain, user, tx } = context.state;
75
- const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
75
+ const dataArchiveRepo = tx.getRepository(data_archive_js_1.DataArchive);
76
76
  let results = [];
77
77
  const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
78
78
  const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
@@ -99,12 +99,12 @@ let DataArchiveMutation = class DataArchiveMutation {
99
99
  }
100
100
  async deleteDataArchive(id, context) {
101
101
  const { domain, tx } = context.state;
102
- await tx.getRepository(data_archive_1.DataArchive).delete({ domain: { id: domain.id }, id });
102
+ await tx.getRepository(data_archive_js_1.DataArchive).delete({ domain: { id: domain.id }, id });
103
103
  return true;
104
104
  }
105
105
  async deleteDataArchives(ids, context) {
106
106
  const { domain, tx } = context.state;
107
- await tx.getRepository(data_archive_1.DataArchive).delete({
107
+ await tx.getRepository(data_archive_js_1.DataArchive).delete({
108
108
  domain: { id: domain.id },
109
109
  id: (0, typeorm_1.In)(ids)
110
110
  });
@@ -112,7 +112,7 @@ let DataArchiveMutation = class DataArchiveMutation {
112
112
  }
113
113
  async importDataArchives(dataArchives, context) {
114
114
  const { domain, tx } = context.state;
115
- const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
115
+ const dataArchiveRepo = tx.getRepository(data_archive_js_1.DataArchive);
116
116
  await Promise.all(dataArchives.map(async (dataArchive) => {
117
117
  const createdDataArchive = await dataArchiveRepo.save(Object.assign({ domain }, dataArchive));
118
118
  }));
@@ -120,7 +120,7 @@ let DataArchiveMutation = class DataArchiveMutation {
120
120
  }
121
121
  async copyDataArchives(ids, context) {
122
122
  const { domain, user, tx } = context.state;
123
- const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
123
+ const dataArchiveRepo = tx.getRepository(data_archive_js_1.DataArchive);
124
124
  const originals = await dataArchiveRepo.find({
125
125
  where: {
126
126
  id: (0, typeorm_1.In)(ids),
@@ -143,39 +143,39 @@ exports.DataArchiveMutation = DataArchiveMutation;
143
143
  tslib_1.__decorate([
144
144
  (0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
145
145
  (0, type_graphql_1.Directive)('@transaction'),
146
- (0, type_graphql_1.Mutation)(returns => data_archive_1.DataArchive, { description: 'To create new DataArchive' }),
146
+ (0, type_graphql_1.Mutation)(returns => data_archive_js_1.DataArchive, { description: 'To create new DataArchive' }),
147
147
  tslib_1.__param(0, (0, type_graphql_1.Arg)('patch')),
148
148
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
149
149
  tslib_1.__metadata("design:type", Function),
150
- tslib_1.__metadata("design:paramtypes", [data_archive_type_1.DataArchivePatch, Object]),
150
+ tslib_1.__metadata("design:paramtypes", [data_archive_type_js_1.DataArchivePatch, Object]),
151
151
  tslib_1.__metadata("design:returntype", Promise)
152
152
  ], DataArchiveMutation.prototype, "generatePresignedUrl", null);
153
153
  tslib_1.__decorate([
154
154
  (0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
155
155
  (0, type_graphql_1.Directive)('@transaction'),
156
- (0, type_graphql_1.Mutation)(returns => data_archive_1.DataArchive, { description: 'To create new DataArchive' }),
156
+ (0, type_graphql_1.Mutation)(returns => data_archive_js_1.DataArchive, { description: 'To create new DataArchive' }),
157
157
  tslib_1.__param(0, (0, type_graphql_1.Arg)('dataArchive')),
158
158
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
159
159
  tslib_1.__metadata("design:type", Function),
160
- tslib_1.__metadata("design:paramtypes", [data_archive_type_1.NewDataArchive, Object]),
160
+ tslib_1.__metadata("design:paramtypes", [data_archive_type_js_1.NewDataArchive, Object]),
161
161
  tslib_1.__metadata("design:returntype", Promise)
162
162
  ], DataArchiveMutation.prototype, "createDataArchive", null);
163
163
  tslib_1.__decorate([
164
164
  (0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
165
165
  (0, type_graphql_1.Directive)('@transaction'),
166
- (0, type_graphql_1.Mutation)(returns => data_archive_1.DataArchive, { description: 'To modify DataArchive information' }),
166
+ (0, type_graphql_1.Mutation)(returns => data_archive_js_1.DataArchive, { description: 'To modify DataArchive information' }),
167
167
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
168
168
  tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
169
169
  tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
170
170
  tslib_1.__metadata("design:type", Function),
171
- tslib_1.__metadata("design:paramtypes", [String, data_archive_type_1.DataArchivePatch, Object]),
171
+ tslib_1.__metadata("design:paramtypes", [String, data_archive_type_js_1.DataArchivePatch, Object]),
172
172
  tslib_1.__metadata("design:returntype", Promise)
173
173
  ], DataArchiveMutation.prototype, "updateDataArchive", null);
174
174
  tslib_1.__decorate([
175
175
  (0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
176
176
  (0, type_graphql_1.Directive)('@transaction'),
177
- (0, type_graphql_1.Mutation)(returns => [data_archive_1.DataArchive], { description: "To modify multiple DataArchives' information" }),
178
- tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [data_archive_type_1.DataArchivePatch])),
177
+ (0, type_graphql_1.Mutation)(returns => [data_archive_js_1.DataArchive], { description: "To modify multiple DataArchives' information" }),
178
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [data_archive_type_js_1.DataArchivePatch])),
179
179
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
180
180
  tslib_1.__metadata("design:type", Function),
181
181
  tslib_1.__metadata("design:paramtypes", [Array, Object]),
@@ -205,7 +205,7 @@ tslib_1.__decorate([
205
205
  (0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
206
206
  (0, type_graphql_1.Directive)('@transaction'),
207
207
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple data-archives' }),
208
- tslib_1.__param(0, (0, type_graphql_1.Arg)('dataArchives', type => [data_archive_type_1.DataArchivePatch])),
208
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('dataArchives', type => [data_archive_type_js_1.DataArchivePatch])),
209
209
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
210
210
  tslib_1.__metadata("design:type", Function),
211
211
  tslib_1.__metadata("design:paramtypes", [Array, Object]),
@@ -214,7 +214,7 @@ tslib_1.__decorate([
214
214
  tslib_1.__decorate([
215
215
  (0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
216
216
  (0, type_graphql_1.Directive)('@transaction'),
217
- (0, type_graphql_1.Mutation)(returns => [data_archive_1.DataArchive], { description: 'To copy multiple data-archives' }),
217
+ (0, type_graphql_1.Mutation)(returns => [data_archive_js_1.DataArchive], { description: 'To copy multiple data-archives' }),
218
218
  tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
219
219
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
220
220
  tslib_1.__metadata("design:type", Function),
@@ -222,6 +222,6 @@ tslib_1.__decorate([
222
222
  tslib_1.__metadata("design:returntype", Promise)
223
223
  ], DataArchiveMutation.prototype, "copyDataArchives", null);
224
224
  exports.DataArchiveMutation = DataArchiveMutation = tslib_1.__decorate([
225
- (0, type_graphql_1.Resolver)(data_archive_1.DataArchive)
225
+ (0, type_graphql_1.Resolver)(data_archive_js_1.DataArchive)
226
226
  ], DataArchiveMutation);
227
227
  //# sourceMappingURL=data-archive-mutation.js.map