@lobb-js/lobb-ext-reports 0.11.0 → 0.12.0

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 (25) hide show
  1. package/README.md +1 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +9 -3
  4. package/dist/lib/components/gridStack.svelte +16 -4
  5. package/dist/lib/components/pages/reports/components/chart.svelte +64 -39
  6. package/dist/lib/components/pages/reports/components/charts/table.svelte +0 -1
  7. package/dist/lib/components/pages/reports/components/report.svelte +115 -102
  8. package/dist/lib/components/pages/reports/index.svelte +5 -11
  9. package/dist/lib/components/pages/shared_report/index.svelte +109 -0
  10. package/dist/lib/components/pages/shared_report/index.svelte.d.ts +14 -0
  11. package/dist/lib/components/reportBody.svelte +119 -0
  12. package/dist/lib/components/reportBody.svelte.d.ts +14 -0
  13. package/extensions/reports/index.ts +33 -5
  14. package/extensions/reports/studio/index.ts +10 -3
  15. package/extensions/reports/studio/lib/components/gridStack.svelte +16 -4
  16. package/extensions/reports/studio/lib/components/pages/reports/components/chart.svelte +64 -39
  17. package/extensions/reports/studio/lib/components/pages/reports/components/charts/table.svelte +0 -1
  18. package/extensions/reports/studio/lib/components/pages/reports/components/report.svelte +115 -102
  19. package/extensions/reports/studio/lib/components/pages/reports/index.svelte +5 -11
  20. package/extensions/reports/studio/lib/components/pages/shared_report/index.svelte +109 -0
  21. package/extensions/reports/studio/lib/components/reportBody.svelte +119 -0
  22. package/extensions/reports/workflows.ts +73 -0
  23. package/package.json +3 -3
  24. package/extensions/reports/collectionRoutes.ts +0 -10
  25. package/extensions/reports/controllers/chartsController.ts +0 -78
@@ -1,78 +0,0 @@
1
- import type { Context } from "hono";
2
- import type { Lobb } from "@lobb-js/core";
3
- import { LobbError } from "@lobb-js/core";
4
-
5
- export class ChartsController {
6
- public static async findOne(c: Context) {
7
- const lobb = c.get("lobb") as Lobb;
8
- const reportRecordId = c.req.param("id");
9
- const actionQuery = c.req.query("action");
10
- const context = c.req.query("context");
11
-
12
- if (actionQuery) {
13
- if (actionQuery === "run_query") {
14
- return await handleRunQuery(
15
- reportRecordId,
16
- lobb,
17
- c,
18
- JSON.parse(context ?? "{}"),
19
- );
20
- } else {
21
- throw new LobbError({
22
- code: "BAD_REQUEST",
23
- message:
24
- `The passed (${actionQuery}) action query param is not supported`,
25
- });
26
- }
27
- }
28
-
29
- return await lobb.collectionControllers.findOne(
30
- c,
31
- ) as Response;
32
- }
33
- }
34
-
35
- async function handleRunQuery(
36
- reportRecordId: string,
37
- lobb: Lobb,
38
- c: Context,
39
- context: Record<string, unknown>,
40
- ) {
41
- const driver = lobb.databaseService.getDriver();
42
- const pool = driver.getConnection();
43
- using client = await pool.connect();
44
-
45
- const chartRecord = (await lobb.collectionService.findOne({
46
- collectionName: "reports_charts",
47
- client,
48
- id: reportRecordId,
49
- })).data;
50
-
51
- if (!chartRecord) {
52
- throw new LobbError({
53
- code: "NOT_FOUND",
54
- message: `The chart you are looking for does not exist.`,
55
- });
56
- }
57
-
58
- const pendingQueries: Promise<unknown>[] = [];
59
-
60
- async function query(sql: string, args: Record<string, any>) {
61
- const promise = client.query(sql, args).then((result) => result.rows);
62
- pendingQueries.push(promise);
63
- return await promise;
64
- }
65
-
66
- try {
67
- const chartReturnedValue = await lobb.utils.runParsedFunction(
68
- chartRecord.chart,
69
- query,
70
- context,
71
- );
72
- await Promise.allSettled(pendingQueries);
73
- return c.json(chartReturnedValue, 200);
74
- } catch (error) {
75
- await Promise.allSettled(pendingQueries);
76
- throw error;
77
- }
78
- }