@solidstarters/solid-core 1.2.135 → 1.2.137

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 (215) hide show
  1. package/dist/controllers/ai-interaction.controller.d.ts +3 -1
  2. package/dist/controllers/ai-interaction.controller.d.ts.map +1 -1
  3. package/dist/controllers/ai-interaction.controller.js +27 -3
  4. package/dist/controllers/ai-interaction.controller.js.map +1 -1
  5. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +43 -0
  6. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +1 -0
  7. package/dist/controllers/{question-sql-dataset-config.controller.js → dashboard-question-sql-dataset-config.controller.js} +30 -30
  8. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +1 -0
  9. package/dist/controllers/dashboard-question.controller.d.ts +45 -0
  10. package/dist/controllers/dashboard-question.controller.d.ts.map +1 -0
  11. package/dist/controllers/{question.controller.js → dashboard-question.controller.js} +31 -31
  12. package/dist/controllers/dashboard-question.controller.js.map +1 -0
  13. package/dist/dtos/{create-question-sql-dataset-config.dto.d.ts → create-dashboard-question-sql-dataset-config.dto.d.ts} +2 -2
  14. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +1 -0
  15. package/dist/dtos/{create-question-sql-dataset-config.dto.js → create-dashboard-question-sql-dataset-config.dto.js} +13 -13
  16. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +1 -0
  17. package/dist/dtos/create-dashboard-question.dto.d.ts +17 -0
  18. package/dist/dtos/create-dashboard-question.dto.d.ts.map +1 -0
  19. package/dist/dtos/{create-question.dto.js → create-dashboard-question.dto.js} +25 -19
  20. package/dist/dtos/create-dashboard-question.dto.js.map +1 -0
  21. package/dist/dtos/create-dashboard.dto.d.ts +2 -2
  22. package/dist/dtos/create-dashboard.dto.d.ts.map +1 -1
  23. package/dist/dtos/create-dashboard.dto.js +3 -3
  24. package/dist/dtos/create-dashboard.dto.js.map +1 -1
  25. package/dist/dtos/{update-question-sql-dataset-config.dto.d.ts → update-dashboard-question-sql-dataset-config.dto.d.ts} +2 -2
  26. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +1 -0
  27. package/dist/dtos/{update-question-sql-dataset-config.dto.js → update-dashboard-question-sql-dataset-config.dto.js} +14 -14
  28. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +1 -0
  29. package/dist/dtos/update-dashboard-question.dto.d.ts +18 -0
  30. package/dist/dtos/update-dashboard-question.dto.d.ts.map +1 -0
  31. package/dist/dtos/{update-question.dto.js → update-dashboard-question.dto.js} +26 -20
  32. package/dist/dtos/update-dashboard-question.dto.js.map +1 -0
  33. package/dist/dtos/update-dashboard.dto.d.ts +2 -2
  34. package/dist/dtos/update-dashboard.dto.d.ts.map +1 -1
  35. package/dist/dtos/update-dashboard.dto.js +3 -3
  36. package/dist/dtos/update-dashboard.dto.js.map +1 -1
  37. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +13 -0
  38. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +1 -0
  39. package/dist/entities/{question-sql-dataset-config.entity.js → dashboard-question-sql-dataset-config.entity.js} +19 -19
  40. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -0
  41. package/dist/entities/dashboard-question.entity.d.ts +16 -0
  42. package/dist/entities/dashboard-question.entity.d.ts.map +1 -0
  43. package/dist/entities/{question.entity.js → dashboard-question.entity.js} +23 -19
  44. package/dist/entities/dashboard-question.entity.js.map +1 -0
  45. package/dist/entities/dashboard.entity.d.ts +2 -2
  46. package/dist/entities/dashboard.entity.d.ts.map +1 -1
  47. package/dist/entities/dashboard.entity.js +3 -3
  48. package/dist/entities/dashboard.entity.js.map +1 -1
  49. package/dist/index.d.ts +7 -2
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +7 -2
  52. package/dist/index.js.map +1 -1
  53. package/dist/interfaces.d.ts +21 -2
  54. package/dist/interfaces.d.ts.map +1 -1
  55. package/dist/interfaces.js.map +1 -1
  56. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +11 -0
  57. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts.map +1 -0
  58. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js +39 -0
  59. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js.map +1 -0
  60. package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +8 -0
  61. package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts.map +1 -0
  62. package/dist/jobs/database/trigger-mcp-client-queue-options.js +10 -0
  63. package/dist/jobs/database/trigger-mcp-client-queue-options.js.map +1 -0
  64. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +16 -0
  65. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -0
  66. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +91 -0
  67. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -0
  68. package/dist/repository/dashboard.repository.d.ts +1 -3
  69. package/dist/repository/dashboard.repository.d.ts.map +1 -1
  70. package/dist/repository/dashboard.repository.js +42 -37
  71. package/dist/repository/dashboard.repository.js.map +1 -1
  72. package/dist/seeders/seed-data/solid-core-metadata.json +88 -131
  73. package/dist/services/ai-interaction.service.d.ts +13 -2
  74. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  75. package/dist/services/ai-interaction.service.js +84 -19
  76. package/dist/services/ai-interaction.service.js.map +1 -1
  77. package/dist/services/chatter-message.service.d.ts.map +1 -1
  78. package/dist/services/chatter-message.service.js +8 -6
  79. package/dist/services/chatter-message.service.js.map +1 -1
  80. package/dist/services/{question-sql-dataset-config.service.d.ts → dashboard-question-sql-dataset-config.service.d.ts} +5 -5
  81. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -0
  82. package/dist/services/{question-sql-dataset-config.service.js → dashboard-question-sql-dataset-config.service.js} +9 -9
  83. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -0
  84. package/dist/services/{question.service.d.ts → dashboard-question.service.d.ts} +5 -5
  85. package/dist/services/dashboard-question.service.d.ts.map +1 -0
  86. package/dist/services/{question.service.js → dashboard-question.service.js} +10 -10
  87. package/dist/services/dashboard-question.service.js.map +1 -0
  88. package/dist/services/field-metadata.service.d.ts.map +1 -1
  89. package/dist/services/field-metadata.service.js +1 -0
  90. package/dist/services/field-metadata.service.js.map +1 -1
  91. package/dist/services/import-transaction.service.d.ts +3 -1
  92. package/dist/services/import-transaction.service.d.ts.map +1 -1
  93. package/dist/services/import-transaction.service.js +22 -0
  94. package/dist/services/import-transaction.service.js.map +1 -1
  95. package/dist/services/list-of-values.service.d.ts +1 -0
  96. package/dist/services/list-of-values.service.d.ts.map +1 -1
  97. package/dist/services/list-of-values.service.js +3 -0
  98. package/dist/services/list-of-values.service.js.map +1 -1
  99. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts +9 -0
  100. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts.map +1 -0
  101. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js +40 -0
  102. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js.map +1 -0
  103. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts +11 -0
  104. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts.map +1 -0
  105. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js +46 -0
  106. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js.map +1 -0
  107. package/dist/services/module-metadata.service.d.ts.map +1 -1
  108. package/dist/services/module-metadata.service.js.map +1 -1
  109. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +2 -2
  110. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +1 -1
  111. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +11 -7
  112. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +1 -1
  113. package/dist/services/question-data-providers/helpers.d.ts +5 -2
  114. package/dist/services/question-data-providers/helpers.d.ts.map +1 -1
  115. package/dist/services/question-data-providers/helpers.js +18 -3
  116. package/dist/services/question-data-providers/helpers.js.map +1 -1
  117. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +2 -2
  118. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +1 -1
  119. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +10 -4
  120. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +1 -1
  121. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +2 -2
  122. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +1 -1
  123. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +11 -3
  124. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +1 -1
  125. package/dist/services/queues/publisher-factory.service.js +1 -1
  126. package/dist/services/queues/publisher-factory.service.js.map +1 -1
  127. package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts +1 -1
  128. package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts.map +1 -1
  129. package/dist/services/scheduled-jobs/scheduled-job.interface.js.map +1 -1
  130. package/dist/services/scheduled-jobs/scheduler.service.js +1 -6
  131. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
  132. package/dist/solid-core.module.d.ts.map +1 -1
  133. package/dist/solid-core.module.js +56 -39
  134. package/dist/solid-core.module.js.map +1 -1
  135. package/dist/subscribers/{question-sql-dataset-config.subscriber.d.ts → dashboard-question-sql-dataset-config.subscriber.d.ts} +6 -6
  136. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +1 -0
  137. package/dist/subscribers/{question-sql-dataset-config.subscriber.js → dashboard-question-sql-dataset-config.subscriber.js} +10 -10
  138. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +1 -0
  139. package/dist/subscribers/{question.subscriber.d.ts → dashboard-question.subscriber.d.ts} +7 -7
  140. package/dist/subscribers/dashboard-question.subscriber.d.ts.map +1 -0
  141. package/dist/subscribers/{question.subscriber.js → dashboard-question.subscriber.js} +8 -8
  142. package/dist/subscribers/dashboard-question.subscriber.js.map +1 -0
  143. package/dist/tsconfig.tsbuildinfo +1 -1
  144. package/package.json +1 -1
  145. package/src/controllers/ai-interaction.controller.ts +14 -2
  146. package/src/controllers/{question-sql-dataset-config.controller.ts → dashboard-question-sql-dataset-config.controller.ts} +10 -10
  147. package/src/controllers/{question.controller.ts → dashboard-question.controller.ts} +10 -10
  148. package/src/dtos/{create-question-sql-dataset-config.dto.ts → create-dashboard-question-sql-dataset-config.dto.ts} +1 -1
  149. package/src/dtos/{create-question.dto.ts → create-dashboard-question.dto.ts} +9 -4
  150. package/src/dtos/create-dashboard.dto.ts +3 -3
  151. package/src/dtos/{update-question-sql-dataset-config.dto.ts → update-dashboard-question-sql-dataset-config.dto.ts} +1 -1
  152. package/src/dtos/{update-question.dto.ts → update-dashboard-question.dto.ts} +9 -4
  153. package/src/dtos/update-dashboard.dto.ts +3 -3
  154. package/src/entities/{question-sql-dataset-config.entity.ts → dashboard-question-sql-dataset-config.entity.ts} +5 -5
  155. package/src/entities/{question.entity.ts → dashboard-question.entity.ts} +8 -5
  156. package/src/entities/dashboard.entity.ts +3 -3
  157. package/src/index.ts +7 -4
  158. package/src/interfaces.ts +24 -2
  159. package/src/jobs/database/trigger-mcp-client-publisher-database.service.ts +22 -0
  160. package/src/jobs/database/trigger-mcp-client-queue-options.ts +9 -0
  161. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +89 -0
  162. package/src/repository/dashboard.repository.ts +54 -53
  163. package/src/seeders/seed-data/solid-core-metadata.json +88 -131
  164. package/src/services/ai-interaction.service.ts +117 -33
  165. package/src/services/chatter-message.service.ts +12 -6
  166. package/src/services/{question-sql-dataset-config.service.ts → dashboard-question-sql-dataset-config.service.ts} +5 -5
  167. package/src/services/{question.service.ts → dashboard-question.service.ts} +6 -6
  168. package/src/services/field-metadata.service.ts +1 -0
  169. package/src/services/import-transaction.service.ts +29 -1
  170. package/src/services/list-of-values.service.ts +5 -0
  171. package/src/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.ts +36 -0
  172. package/src/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.ts +52 -0
  173. package/src/services/module-metadata.service.ts +0 -5
  174. package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +14 -10
  175. package/src/services/question-data-providers/helpers.ts +23 -4
  176. package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +12 -6
  177. package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +14 -5
  178. package/src/services/question-data-providers/test.sql +1 -0
  179. package/src/services/queues/publisher-factory.service.ts +1 -1
  180. package/src/services/scheduled-jobs/scheduled-job.interface.ts +1 -1
  181. package/src/services/scheduled-jobs/scheduler.service.ts +6 -6
  182. package/src/solid-core.module.ts +59 -39
  183. package/src/subscribers/{question-sql-dataset-config.subscriber.ts → dashboard-question-sql-dataset-config.subscriber.ts} +8 -10
  184. package/src/subscribers/{question.subscriber.ts → dashboard-question.subscriber.ts} +7 -10
  185. package/dist/controllers/question-sql-dataset-config.controller.d.ts +0 -43
  186. package/dist/controllers/question-sql-dataset-config.controller.d.ts.map +0 -1
  187. package/dist/controllers/question-sql-dataset-config.controller.js.map +0 -1
  188. package/dist/controllers/question.controller.d.ts +0 -45
  189. package/dist/controllers/question.controller.d.ts.map +0 -1
  190. package/dist/controllers/question.controller.js.map +0 -1
  191. package/dist/dtos/create-question-sql-dataset-config.dto.d.ts.map +0 -1
  192. package/dist/dtos/create-question-sql-dataset-config.dto.js.map +0 -1
  193. package/dist/dtos/create-question.dto.d.ts +0 -16
  194. package/dist/dtos/create-question.dto.d.ts.map +0 -1
  195. package/dist/dtos/create-question.dto.js.map +0 -1
  196. package/dist/dtos/update-question-sql-dataset-config.dto.d.ts.map +0 -1
  197. package/dist/dtos/update-question-sql-dataset-config.dto.js.map +0 -1
  198. package/dist/dtos/update-question.dto.d.ts +0 -17
  199. package/dist/dtos/update-question.dto.d.ts.map +0 -1
  200. package/dist/dtos/update-question.dto.js.map +0 -1
  201. package/dist/entities/question-sql-dataset-config.entity.d.ts +0 -13
  202. package/dist/entities/question-sql-dataset-config.entity.d.ts.map +0 -1
  203. package/dist/entities/question-sql-dataset-config.entity.js.map +0 -1
  204. package/dist/entities/question.entity.d.ts +0 -15
  205. package/dist/entities/question.entity.d.ts.map +0 -1
  206. package/dist/entities/question.entity.js.map +0 -1
  207. package/dist/services/question-sql-dataset-config.service.d.ts.map +0 -1
  208. package/dist/services/question-sql-dataset-config.service.js.map +0 -1
  209. package/dist/services/question.service.d.ts.map +0 -1
  210. package/dist/services/question.service.js.map +0 -1
  211. package/dist/subscribers/question-sql-dataset-config.subscriber.d.ts.map +0 -1
  212. package/dist/subscribers/question-sql-dataset-config.subscriber.js.map +0 -1
  213. package/dist/subscribers/question.subscriber.d.ts.map +0 -1
  214. package/dist/subscribers/question.subscriber.js.map +0 -1
  215. package/src/services/1. Create a context menu option i.py +0 -12
@@ -1,11 +1,12 @@
1
1
  import { Injectable } from "@nestjs/common";
2
2
  import { DashboardQuestionDataProvider } from "src/decorators/dashboard-question-data-provider.decorator";
3
- import { Question } from "src/entities/question.entity";
3
+ import { DashboardQuestion } from "src/entities/dashboard-question.entity";
4
4
  import { IDashboardQuestionDataProvider } from "src/interfaces";
5
5
  import { EntityManager } from "typeorm";
6
6
  import { SqlExpressionResolverService } from "../sql-expression-resolver.service";
7
7
  import { Logger } from '@nestjs/common';
8
8
  import { SqlExpression } from "./chartjs-sql-data-provider.service";
9
+ import { getKpi } from "./helpers";
9
10
 
10
11
  export interface QuestionSqlDataProviderContext {
11
12
  // questionSqlDatasetConfig: QuestionSqlDatasetConfig;
@@ -57,7 +58,7 @@ export class PrimeReactMeterGroupSqlDataProvider implements IDashboardQuestionDa
57
58
  return colors;
58
59
  }
59
60
 
60
- async getData(question: Question, expressions?: SqlExpression[], context?: QuestionSqlDataProviderContext): Promise<any> {
61
+ async getData(question: DashboardQuestion, expressions?: SqlExpression[], context?: QuestionSqlDataProviderContext): Promise<any> {
61
62
  // TODO: put some validation to check if the results of each SQL in each dataset returns the same number of rows
62
63
 
63
64
  // This is what we have to return.
@@ -70,6 +71,8 @@ export class PrimeReactMeterGroupSqlDataProvider implements IDashboardQuestionDa
70
71
 
71
72
  // TODO: Load the set of labels by using a separate field on the question entity.
72
73
 
74
+ const kpi: string = await getKpi(question, expressions, this.entityManager, this.sqlExpressionResolver);
75
+
73
76
  // Load the chart options as a JSON
74
77
  const chartOptions = JSON.parse(question.chartOptions || '{}');
75
78
 
@@ -84,8 +87,8 @@ export class PrimeReactMeterGroupSqlDataProvider implements IDashboardQuestionDa
84
87
  }
85
88
 
86
89
  const sqlReplacementResult = this.sqlExpressionResolver.resolveSqlWithExpressions(sql, expressions || []);
87
- this.logger.log(`Final Sql query for dataset [${questionSqlDatasetConfig.datasetName}] is query=[${sqlReplacementResult.rawSql}]`);
88
- this.logger.log(`Final Sql query for dataset [${questionSqlDatasetConfig.datasetName}] is parameters=[${JSON.stringify(sqlReplacementResult.parameters)}]`);
90
+ this.logger.debug(`Final Sql query for dataset [${questionSqlDatasetConfig.datasetName}] is query=[${sqlReplacementResult.rawSql}]`);
91
+ this.logger.debug(`Final Sql query for dataset [${questionSqlDatasetConfig.datasetName}] is parameters=[${JSON.stringify(sqlReplacementResult.parameters)}]`);
89
92
  const results = await this.entityManager.query(sqlReplacementResult.rawSql, sqlReplacementResult.parameters);
90
93
 
91
94
  const colors = this.generateDistinctColors(results.length);
@@ -104,7 +107,13 @@ export class PrimeReactMeterGroupSqlDataProvider implements IDashboardQuestionDa
104
107
  })
105
108
  }
106
109
 
107
- return values;
110
+ return {
111
+ kpi,
112
+ visualizedAs: question.visualisedAs,
113
+ visualizationData: {
114
+ dataset: values
115
+ },
116
+ };
108
117
 
109
118
  }
110
119
  }
@@ -0,0 +1 @@
1
+ SELECT TO_CHAR(DATE_TRUNC('month', created_at), 'Mon-YYYY') AS label,FROM public.sapphire_clientwhere created_at >= $1 GROUP BY DATE_TRUNC('month', created_at) ORDER BY DATE_TRUNC('month', created_at)
@@ -16,7 +16,7 @@ export class PublisherFactory<T> {
16
16
  }
17
17
 
18
18
  async publish(message: QueueMessage<T>, publisherName: string, brokerToUse?: string): Promise<string> {
19
- let defaultBrokerToUse = brokerToUse || process.env.QUEUES_DEFAULT_BROKER;
19
+ let defaultBrokerToUse = brokerToUse || process.env.QUEUES_DEFAULT_BROKER || "database";
20
20
  let resolvedPublisherName = `${publisherName}${classify(defaultBrokerToUse)}`;
21
21
 
22
22
  // Register all ISolidDatabaseModules implementations
@@ -1,5 +1,5 @@
1
1
  import { ScheduledJob } from "src/entities/scheduled-job.entity";
2
2
 
3
3
  export interface IScheduledJob {
4
- executeReminder(reminder: ScheduledJob): Promise<void>;
4
+ execute(job: ScheduledJob): Promise<void>;
5
5
  }
@@ -22,7 +22,7 @@ export class SchedulerServiceImpl implements ISchedulerService {
22
22
  async runScheduledJobs(): Promise<void> {
23
23
  const now = new Date();
24
24
 
25
- this.logger.log(`[${now.getTime()}]: scheduler service started run...`);
25
+ // this.logger.log(`[${now.getTime()}]: scheduler service started run...`);
26
26
  const dueJobs = await this.scheduledJobRepo.find({
27
27
  where: [
28
28
  {
@@ -37,7 +37,7 @@ export class SchedulerServiceImpl implements ISchedulerService {
37
37
  ],
38
38
  });
39
39
 
40
- this.logger.log(`[${now.getTime()}]: scheduler service identified ${dueJobs.length} jobs to run...`);
40
+ // this.logger.log(`[${now.getTime()}]: scheduler service identified ${dueJobs.length} jobs to run...`);
41
41
 
42
42
  for (const job of dueJobs) {
43
43
  this.logger.log(`[${now.getTime()}]: scheduler service attempting to run job ${job.job}`);
@@ -49,13 +49,13 @@ export class SchedulerServiceImpl implements ISchedulerService {
49
49
 
50
50
  const handler = this.solidRegistry.getScheduledJobProviderInstance(job.job);
51
51
  if (!handler) {
52
- this.logger.warn(`[${now.getTime()}]: scheduler service skipping because job handler not found: ${job.job}`);
52
+ // this.logger.warn(`[${now.getTime()}]: scheduler service skipping because job handler not found: ${job.job}`);
53
53
  continue;
54
54
  }
55
55
 
56
- this.logger.log(`[${now.getTime()}]: scheduler service about to run job ${job.job}`);
57
- await handler.executeReminder(job);
58
- this.logger.log(`[${now.getTime()}]: scheduler service finished running job ${job.job}`);
56
+ // this.logger.log(`[${now.getTime()}]: scheduler service about to run job ${job.job}`);
57
+ await handler.execute(job);
58
+ // this.logger.log(`[${now.getTime()}]: scheduler service finished running job ${job.job}`);
59
59
 
60
60
  job.isActive = true;
61
61
  job.lastRunAt = now;
@@ -128,9 +128,15 @@ import { PermissionMetadataController } from './controllers/permission-metadata.
128
128
  import { PermissionMetadata } from './entities/permission-metadata.entity';
129
129
  import { PermissionMetadataService } from './services/permission-metadata.service';
130
130
 
131
+ import { ScheduleModule } from '@nestjs/schedule';
131
132
  import { ClsModule } from 'nestjs-cls';
133
+ import { AiInteractionController } from './controllers/ai-interaction.controller';
132
134
  import { ChatterMessageDetailsController } from './controllers/chatter-message-details.controller';
133
135
  import { ChatterMessageController } from './controllers/chatter-message.controller';
136
+ import { DashboardQuestionSqlDatasetConfigController } from './controllers/dashboard-question-sql-dataset-config.controller';
137
+ import { DashboardQuestionController } from './controllers/dashboard-question.controller';
138
+ import { DashboardVariableController } from './controllers/dashboard-variable.controller';
139
+ import { DashboardController } from './controllers/dashboard.controller';
134
140
  import { ExportTemplateController } from './controllers/export-template.controller';
135
141
  import { ExportTransactionController } from './controllers/export-transaction.controller';
136
142
  import { ImportTransactionErrorLogController } from './controllers/import-transaction-error-log.controller';
@@ -145,8 +151,13 @@ import { SettingController } from './controllers/setting.controller';
145
151
  import { UserActivityHistoryController } from './controllers/user-activity-history.controller';
146
152
  import { UserViewMetadataController } from './controllers/user-view-metadata.controller';
147
153
  import { UserController } from './controllers/user.controller';
154
+ import { AiInteraction } from './entities/ai-interaction.entity';
148
155
  import { ChatterMessageDetails } from './entities/chatter-message-details.entity';
149
156
  import { ChatterMessage } from './entities/chatter-message.entity';
157
+ import { DashboardQuestionSqlDatasetConfig } from './entities/dashboard-question-sql-dataset-config.entity';
158
+ import { DashboardQuestion } from './entities/dashboard-question.entity';
159
+ import { DashboardVariable } from './entities/dashboard-variable.entity';
160
+ import { Dashboard } from './entities/dashboard.entity';
150
161
  import { ExportTemplate } from './entities/export-template.entity';
151
162
  import { ExportTransaction } from './entities/export-transaction.entity';
152
163
  import { ImportTransactionErrorLog } from './entities/import-transaction-error-log.entity';
@@ -160,6 +171,7 @@ import { Setting } from './entities/setting.entity';
160
171
  import { UserActivityHistory } from './entities/user-activity-history.entity';
161
172
  import { UserViewMetadata } from './entities/user-view-metadata.entity';
162
173
  import { User } from './entities/user.entity';
174
+ import { HttpExceptionFilter } from './filters/http-exception.filter';
163
175
  import { ModelMetadataHelperService } from './helpers/model-metadata-helper.service';
164
176
  import { ModuleMetadataHelperService } from './helpers/module-metadata-helper.service';
165
177
  import { ApiEmailQueuePublisherDatabase } from './jobs/database/api-email-publisher-database.service';
@@ -174,19 +186,30 @@ import { OTPQueuePublisherDatabase } from './jobs/database/otp-publisher-databas
174
186
  import { OTPQueueSubscriberDatabase } from './jobs/database/otp-subscriber-database.service';
175
187
  import { SmsQueuePublisherDatabase } from './jobs/database/sms-publisher-database.service';
176
188
  import { SmsQueueSubscriberDatabase } from './jobs/database/sms-subscriber-database.service';
189
+ import { TriggerMcpClientPublisherDatabase } from './jobs/database/trigger-mcp-client-publisher-database.service';
190
+ import { TriggerMcpClientSubscriberDatabase } from './jobs/database/trigger-mcp-client-subscriber-database.service';
177
191
  import { WhatsappQueuePublisherDatabase } from './jobs/database/whatsapp-publisher-database.service';
178
192
  import { WhatsappQueueSubscriberDatabase } from './jobs/database/whatsapp-subscriber-database.service';
193
+ import { DashboardMapper } from './mappers/dashboard-mapper';
194
+ import { DashboardRepository } from './repository/dashboard.repository';
179
195
  import { FieldMetadataRepository } from './repository/field-metadata.repository';
180
196
  import { FieldRepository } from './repository/field.repository';
181
197
  import { MediaRepository } from './repository/media.repository';
182
198
  import { SecurityRuleRepository } from './repository/security-rule.repository';
183
199
  import { PermissionMetadataSeederService } from './seeders/permission-metadata-seeder.service';
184
200
  import { SystemFieldsSeederService } from './seeders/system-fields-seeder.service';
201
+ import { AiInteractionService } from './services/ai-interaction.service';
185
202
  import { ChatterMessageDetailsService } from './services/chatter-message-details.service';
186
203
  import { ChatterMessageService } from './services/chatter-message.service';
187
204
  import { ConcatComputedFieldProvider } from './services/computed-fields/concat-computed-field-provider.service';
188
205
  import { ConcatEntityComputedFieldProvider } from './services/computed-fields/entity/concat-entity-computed-field-provider.service';
189
206
  import { CsvService } from './services/csv.service';
207
+ import { DashboardQuestionSqlDatasetConfigService } from './services/dashboard-question-sql-dataset-config.service';
208
+ import { DashboardQuestionService } from './services/dashboard-question.service';
209
+ import { DashboardVariableSQLDynamicProvider } from './services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service';
210
+ import { DasbhoardVariableTestDynamicProvider } from './services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service';
211
+ import { DashboardVariableService } from './services/dashboard-variable.service';
212
+ import { DashboardService } from './services/dashboard.service';
190
213
  import { ExcelService } from './services/excel.service';
191
214
  import { ExportTemplateService } from './services/export-template.service';
192
215
  import { ExportTransactionService } from './services/export-transaction.service';
@@ -195,6 +218,9 @@ import { ImportTransactionService } from './services/import-transaction.service'
195
218
  import { LocaleService } from './services/locale.service';
196
219
  import { FileS3StorageProvider } from './services/mediaStorageProviders/file-s3-storage-provider';
197
220
  import { FileStorageProvider } from './services/mediaStorageProviders/file-storage-provider';
221
+ import { ChartJsSqlDataProvider } from './services/question-data-providers/chartjs-sql-data-provider.service';
222
+ import { PrimeReactDatatableSqlDataProvider } from './services/question-data-providers/prime-react-datatable-sql-data-provider.service';
223
+ import { PrimeReactMeterGroupSqlDataProvider } from './services/question-data-providers/prime-react-meter-group-sql-data-provider.service';
198
224
  import { PublisherFactory } from './services/queues/publisher-factory.service';
199
225
  import { RequestContextService } from './services/request-context.service';
200
226
  import { RoleMetadataService } from './services/role-metadata.service';
@@ -202,48 +228,27 @@ import { SavedFiltersService } from './services/saved-filters.service';
202
228
  import { ScheduledJobService } from './services/scheduled-job.service';
203
229
  import { SchedulerServiceImpl } from './services/scheduled-jobs/scheduler.service';
204
230
  import { SecurityRuleService } from './services/security-rule.service';
231
+ import { ListOfDashboardQuestionProvidersSelectionProvider } from './services/selection-providers/list-of-dashboard-question-providers-selection-provider.service';
232
+ import { ListOfDashboardVariableProvidersSelectionProvider } from './services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service';
205
233
  import { ListOfScheduledJobsSelectionProvider } from './services/selection-providers/list-of-scheduled-jobs-selection-provider.service';
206
234
  import { LocaleListSelectionProvider } from './services/selection-providers/locale-list-selection-provider.service';
207
235
  import { SettingService } from './services/setting.service';
236
+ import { SqlExpressionResolverService } from './services/sql-expression-resolver.service';
208
237
  import { UserActivityHistoryService } from './services/user-activity-history.service';
209
238
  import { UserViewMetadataService } from './services/user-view-metadata.service';
210
239
  import { UserService } from './services/user.service';
211
240
  import { AuditSubscriber } from './subscribers/audit.subscriber';
212
241
  import { ComputedEntityFieldSubscriber } from './subscribers/computed-entity-field.subscriber';
213
242
  import { CreatedByUpdatedBySubscriber } from './subscribers/created-by-updated-by.subscriber';
243
+ import { DashboardQuestionSqlDatasetConfigSubscriber } from './subscribers/dashboard-question-sql-dataset-config.subscriber';
244
+ import { DashboardQuestionSubscriber } from './subscribers/dashboard-question.subscriber';
245
+ import { DashboardVariableSubscriber } from './subscribers/dashboard-variable.subscriber';
246
+ import { DashboardSubscriber } from './subscribers/dashboard.subscriber';
214
247
  import { SecurityRuleSubscriber } from './subscribers/security-rule.subscriber';
215
248
  import { ViewMetadataSubsciber } from './subscribers/view-metadata.subscriber';
216
- import { Dashboard } from './entities/dashboard.entity';
217
- import { DashboardService } from './services/dashboard.service';
218
- import { DashboardController } from './controllers/dashboard.controller';
219
- import { DashboardVariable } from './entities/dashboard-variable.entity';
220
- import { DashboardVariableService } from './services/dashboard-variable.service';
221
- import { DashboardVariableController } from './controllers/dashboard-variable.controller';
222
- import { Question } from './entities/question.entity';
223
- import { QuestionService } from './services/question.service';
224
- import { QuestionController } from './controllers/question.controller';
225
- import { HttpExceptionFilter } from './filters/http-exception.filter';
226
- import { DashboardVariableSQLDynamicProvider } from './services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service';
227
- import { DasbhoardVariableTestDynamicProvider } from './services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service';
228
- import { ListOfDashboardVariableProvidersSelectionProvider } from './services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service';
229
- import { ListOfDashboardQuestionProvidersSelectionProvider } from './services/selection-providers/list-of-dashboard-question-providers-selection-provider.service';
230
- import { QuestionSqlDatasetConfig } from './entities/question-sql-dataset-config.entity';
231
- import { QuestionSqlDatasetConfigService } from './services/question-sql-dataset-config.service';
232
- import { QuestionSqlDatasetConfigController } from './controllers/question-sql-dataset-config.controller';
233
- import { ChartJsSqlDataProvider } from './services/question-data-providers/chartjs-sql-data-provider.service';
234
- import { SqlExpressionResolverService } from './services/sql-expression-resolver.service';
235
- import { PrimeReactMeterGroupSqlDataProvider } from './services/question-data-providers/prime-react-meter-group-sql-data-provider.service';
236
- import { PrimeReactDatatableSqlDataProvider } from './services/question-data-providers/prime-react-datatable-sql-data-provider.service';
237
- import { AiInteraction } from './entities/ai-interaction.entity';
238
- import { AiInteractionService } from './services/ai-interaction.service';
239
- import { AiInteractionController } from './controllers/ai-interaction.controller';
240
- import { DashboardMapper } from './mappers/dashboard-mapper';
241
- import { DashboardRepository } from './repository/dashboard.repository';
242
- import { DashboardSubscriber } from './subscribers/dashboard.subscriber';
243
- import { DashboardVariableSubscriber } from './subscribers/dashboard-variable.subscriber';
244
- import { QuestionSubscriber } from './subscribers/question.subscriber';
245
- import { QuestionSqlDatasetConfigSubscriber } from './subscribers/question-sql-dataset-config.subscriber';
246
- import { ScheduleModule } from '@nestjs/schedule';
249
+ import { CRUDService } from './services/crud.service';
250
+ import { McpToolResponseHandlerFactory } from './services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service';
251
+ import { SolidCreateModuleMcpToolResponseHandler } from './services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service';
247
252
 
248
253
 
249
254
  @Global()
@@ -306,8 +311,8 @@ import { ScheduleModule } from '@nestjs/schedule';
306
311
  ClsModule,
307
312
  TypeOrmModule.forFeature([Dashboard]),
308
313
  TypeOrmModule.forFeature([DashboardVariable]),
309
- TypeOrmModule.forFeature([Question]),
310
- TypeOrmModule.forFeature([QuestionSqlDatasetConfig]),
314
+ TypeOrmModule.forFeature([DashboardQuestion]),
315
+ TypeOrmModule.forFeature([DashboardQuestionSqlDatasetConfig]),
311
316
  TypeOrmModule.forFeature([AiInteraction]),
312
317
  ],
313
318
  controllers: [
@@ -349,8 +354,8 @@ import { ScheduleModule } from '@nestjs/schedule';
349
354
  UserActivityHistoryController,
350
355
  DashboardController,
351
356
  DashboardVariableController,
352
- QuestionController,
353
- QuestionSqlDatasetConfigController,
357
+ DashboardQuestionController,
358
+ DashboardQuestionSqlDatasetConfigController,
354
359
  AiInteractionController,
355
360
  ],
356
361
  providers: [
@@ -385,6 +390,7 @@ import { ScheduleModule } from '@nestjs/schedule';
385
390
  SolidIntrospectService,
386
391
  DiscoveryService,
387
392
  CrudHelperService,
393
+ CRUDService,
388
394
  Reflector,
389
395
  MetadataScanner,
390
396
  CommandService,
@@ -413,6 +419,13 @@ import { ScheduleModule } from '@nestjs/schedule';
413
419
  SmsTemplateService,
414
420
  EmailTemplateService,
415
421
  PublisherFactory,
422
+
423
+ McpToolResponseHandlerFactory,
424
+ SolidCreateModuleMcpToolResponseHandler,
425
+
426
+ TriggerMcpClientPublisherDatabase,
427
+ TriggerMcpClientSubscriberDatabase,
428
+
416
429
  EmailQueuePublisher,
417
430
  EmailQueueSubscriber,
418
431
  EmailQueuePublisherDatabase,
@@ -498,12 +511,12 @@ import { ScheduleModule } from '@nestjs/schedule';
498
511
  UserActivityHistoryService,
499
512
  DashboardService,
500
513
  DashboardVariableService,
501
- QuestionService,
514
+ DashboardQuestionService,
502
515
  DashboardVariableSQLDynamicProvider,
503
516
  DasbhoardVariableTestDynamicProvider,
504
517
  ListOfDashboardVariableProvidersSelectionProvider,
505
518
  ListOfDashboardQuestionProvidersSelectionProvider,
506
- QuestionSqlDatasetConfigService,
519
+ DashboardQuestionSqlDatasetConfigService,
507
520
  ChartJsSqlDataProvider,
508
521
  PrimeReactMeterGroupSqlDataProvider,
509
522
  PrimeReactDatatableSqlDataProvider,
@@ -513,8 +526,8 @@ import { ScheduleModule } from '@nestjs/schedule';
513
526
  DashboardRepository,
514
527
  DashboardSubscriber,
515
528
  DashboardVariableSubscriber,
516
- QuestionSubscriber,
517
- QuestionSqlDatasetConfigSubscriber,
529
+ DashboardQuestionSubscriber,
530
+ DashboardQuestionSqlDatasetConfigSubscriber,
518
531
  ],
519
532
  exports: [
520
533
  ModuleMetadataService,
@@ -524,6 +537,7 @@ import { ScheduleModule } from '@nestjs/schedule';
524
537
  MediaService,
525
538
  DiscoveryService,
526
539
  CrudHelperService,
540
+ CRUDService,
527
541
  MulterModule,
528
542
  FileService,
529
543
  SolidRegistry,
@@ -547,6 +561,12 @@ import { ScheduleModule } from '@nestjs/schedule';
547
561
  FieldRepository,
548
562
  SchedulerServiceImpl,
549
563
  UserActivityHistoryService,
564
+ CsvService,
565
+ ExcelService,
566
+ SolidIntrospectService,
567
+ ImportTransactionService,
568
+ HttpModule,
569
+ ListOfValuesService
550
570
  ],
551
571
  })
552
572
  export class SolidCoreModule { }
@@ -1,15 +1,13 @@
1
1
  import { Injectable, Logger } from "@nestjs/common";
2
2
  import { InjectDataSource } from "@nestjs/typeorm";
3
- import { Dashboard } from "src/entities/dashboard.entity";
4
- import { QuestionSqlDatasetConfig } from "src/entities/question-sql-dataset-config.entity";
5
- import { Question } from "src/entities/question.entity";
3
+ import { DashboardQuestionSqlDatasetConfig } from "src/entities/dashboard-question-sql-dataset-config.entity";
4
+ import { DashboardQuestion } from "src/entities/dashboard-question.entity";
6
5
  import { ModuleMetadataHelperService } from "src/helpers/module-metadata-helper.service";
7
6
  import { DashboardService } from "src/services/dashboard.service";
8
- import { QuestionService } from "src/services/question.service";
9
7
  import { DataSource, EntityManager, EntitySubscriberInterface, InsertEvent, UpdateEvent } from "typeorm";
10
8
 
11
9
  @Injectable()
12
- export class QuestionSqlDatasetConfigSubscriber implements EntitySubscriberInterface<QuestionSqlDatasetConfig> {
10
+ export class DashboardQuestionSqlDatasetConfigSubscriber implements EntitySubscriberInterface<DashboardQuestionSqlDatasetConfig> {
13
11
  private readonly logger = new Logger(this.constructor.name);
14
12
  constructor(
15
13
  @InjectDataSource()
@@ -21,10 +19,10 @@ export class QuestionSqlDatasetConfigSubscriber implements EntitySubscriberInter
21
19
  }
22
20
 
23
21
  listenTo() {
24
- return QuestionSqlDatasetConfig;
22
+ return DashboardQuestionSqlDatasetConfig;
25
23
  }
26
24
 
27
- async afterInsert(event: InsertEvent<QuestionSqlDatasetConfig>) {
25
+ async afterInsert(event: InsertEvent<DashboardQuestionSqlDatasetConfig>) {
28
26
  const question = event.entity.question;
29
27
  if (!question) {
30
28
  this.logger.debug('No question found in the QuestionSqlDatasetConfigSubscriber afterInsert method');
@@ -33,7 +31,7 @@ export class QuestionSqlDatasetConfigSubscriber implements EntitySubscriberInter
33
31
  await this.saveQuestionToConfig(question, event.queryRunner.manager);
34
32
  }
35
33
 
36
- async afterUpdate(event: UpdateEvent<QuestionSqlDatasetConfig>) {
34
+ async afterUpdate(event: UpdateEvent<DashboardQuestionSqlDatasetConfig>) {
37
35
  const question = event.databaseEntity.question;
38
36
  if (!question) {
39
37
  this.logger.debug('No question found in the QuestionSqlDatasetConfigSubscriber afterUpdate method');
@@ -42,9 +40,9 @@ export class QuestionSqlDatasetConfigSubscriber implements EntitySubscriberInter
42
40
  await this.saveQuestionToConfig(question, event.queryRunner.manager);
43
41
  }
44
42
 
45
- private async saveQuestionToConfig(question: Question, entityManager: EntityManager): Promise<void> {
43
+ private async saveQuestionToConfig(question: DashboardQuestion, entityManager: EntityManager): Promise<void> {
46
44
  // Populate the dashboard for the question
47
- const populatedQuestion = await entityManager.findOne(Question, {
45
+ const populatedQuestion = await entityManager.findOne(DashboardQuestion, {
48
46
  where: {
49
47
  id: question.id,
50
48
  },
@@ -1,16 +1,13 @@
1
1
  import { Injectable, Logger } from "@nestjs/common";
2
2
  import { InjectDataSource } from "@nestjs/typeorm";
3
- import e from "express";
4
- import { DashboardVariable } from "src/entities/dashboard-variable.entity";
3
+ import { DashboardQuestion } from "src/entities/dashboard-question.entity";
5
4
  import { Dashboard } from "src/entities/dashboard.entity";
6
- import { Question } from "src/entities/question.entity";
7
5
  import { ModuleMetadataHelperService } from "src/helpers/module-metadata-helper.service";
8
6
  import { DashboardService } from "src/services/dashboard.service";
9
- import { QuestionService } from "src/services/question.service";
10
- import { EntitySubscriberInterface, DataSource, InsertEvent, UpdateEvent, EntityManager } from "typeorm";
7
+ import { DataSource, EntityManager, EntitySubscriberInterface, InsertEvent, UpdateEvent } from "typeorm";
11
8
 
12
9
  @Injectable()
13
- export class QuestionSubscriber implements EntitySubscriberInterface<Question> {
10
+ export class DashboardQuestionSubscriber implements EntitySubscriberInterface<DashboardQuestion> {
14
11
  private readonly logger = new Logger(this.constructor.name);
15
12
  constructor(
16
13
  @InjectDataSource()
@@ -22,10 +19,10 @@ export class QuestionSubscriber implements EntitySubscriberInterface<Question> {
22
19
  }
23
20
 
24
21
  listenTo() {
25
- return Question;
22
+ return DashboardQuestion;
26
23
  }
27
24
 
28
- async afterInsert(event: InsertEvent<Question>) {
25
+ async afterInsert(event: InsertEvent<DashboardQuestion>) {
29
26
  if (!event.entity) {
30
27
  this.logger.debug('No question entity found in the QuestionSubscriber afterInsert method');
31
28
  return;
@@ -33,7 +30,7 @@ export class QuestionSubscriber implements EntitySubscriberInterface<Question> {
33
30
  await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);
34
31
  }
35
32
 
36
- async afterUpdate(event: UpdateEvent<Question>) {
33
+ async afterUpdate(event: UpdateEvent<DashboardQuestion>) {
37
34
  if (!event.databaseEntity) {
38
35
  this.logger.debug('No question entity found in the QuestionSubscriber afterUpdate method');
39
36
  return;
@@ -41,7 +38,7 @@ export class QuestionSubscriber implements EntitySubscriberInterface<Question> {
41
38
  await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);
42
39
  }
43
40
 
44
- private async saveDashboardToConfig(question: Question, entityManager: EntityManager): Promise<void> {
41
+ private async saveDashboardToConfig(question: DashboardQuestion, entityManager: EntityManager): Promise<void> {
45
42
  const dashboard = question.dashboard;
46
43
  // Get the dashboard from the question & call the saveDashboardToConfig method
47
44
  if (!dashboard) {
@@ -1,43 +0,0 @@
1
- import { QuestionSqlDatasetConfigService } from '../services/question-sql-dataset-config.service';
2
- import { CreateQuestionSqlDatasetConfigDto } from '../dtos/create-question-sql-dataset-config.dto';
3
- import { UpdateQuestionSqlDatasetConfigDto } from '../dtos/update-question-sql-dataset-config.dto';
4
- export declare class QuestionSqlDatasetConfigController {
5
- private readonly service;
6
- constructor(service: QuestionSqlDatasetConfigService);
7
- create(createDto: CreateQuestionSqlDatasetConfigDto, files: Array<Express.Multer.File>): Promise<import("..").QuestionSqlDatasetConfig>;
8
- insertMany(createDtos: CreateQuestionSqlDatasetConfigDto[], filesArray?: Express.Multer.File[][]): Promise<import("..").QuestionSqlDatasetConfig[]>;
9
- update(id: number, updateDto: UpdateQuestionSqlDatasetConfigDto, files: Array<Express.Multer.File>): Promise<import("..").QuestionSqlDatasetConfig>;
10
- partialUpdate(id: number, updateDto: UpdateQuestionSqlDatasetConfigDto, files: Array<Express.Multer.File>): Promise<import("..").QuestionSqlDatasetConfig>;
11
- recoverMany(ids: number[]): Promise<{
12
- message: string;
13
- recoveredIds: number[];
14
- }>;
15
- recover(id: number): Promise<{
16
- message: string;
17
- data: import("..").QuestionSqlDatasetConfig;
18
- }>;
19
- findMany(query: any): Promise<{
20
- meta: {
21
- totalRecords: number;
22
- };
23
- groupMeta: any[];
24
- groupRecords: any[];
25
- records?: undefined;
26
- } | {
27
- meta: {
28
- totalRecords: number;
29
- currentPage: number;
30
- nextPage: number;
31
- prevPage: number;
32
- totalPages: number;
33
- perPage: number;
34
- };
35
- records: import("..").QuestionSqlDatasetConfig[];
36
- groupMeta?: undefined;
37
- groupRecords?: undefined;
38
- }>;
39
- findOne(id: string, query: any): Promise<import("..").QuestionSqlDatasetConfig>;
40
- deleteMany(ids: number[]): Promise<any>;
41
- delete(id: number): Promise<import("..").QuestionSqlDatasetConfig>;
42
- }
43
- //# sourceMappingURL=question-sql-dataset-config.controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"question-sql-dataset-config.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/question-sql-dataset-config.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,EAAE,iCAAiC,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,EAAE,iCAAiC,EAAE,MAAM,gDAAgD,CAAC;AAOnG,qBAEa,kCAAkC;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,+BAA+B;IAKrE,MAAM,CAAS,SAAS,EAAE,iCAAiC,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAO/G,UAAU,CAAS,UAAU,EAAE,iCAAiC,EAAE,EAAmB,UAAU,GAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAO;IAQ7H,MAAM,CAAc,EAAE,EAAE,MAAM,EAAU,SAAS,EAAE,iCAAiC,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAOxI,aAAa,CAAc,EAAE,EAAE,MAAM,EAAU,SAAS,EAAE,iCAAiC,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAMzI,WAAW,CAAS,GAAG,EAAE,MAAM,EAAE;;;;IAMjC,OAAO,CAAc,EAAE,EAAE,MAAM;;;;IAe/B,QAAQ,CAAU,KAAK,EAAE,GAAG;;;;;;;;;;;;;;;;;;;;IAM5B,OAAO,CAAc,EAAE,EAAE,MAAM,EAAW,KAAK,EAAE,GAAG;IAMpD,UAAU,CAAS,GAAG,EAAE,MAAM,EAAE;IAMhC,MAAM,CAAc,EAAE,EAAE,MAAM;CAKrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"question-sql-dataset-config.controller.js","sourceRoot":"","sources":["../../src/controllers/question-sql-dataset-config.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA+H;AAC/H,+DAA+D;AAC/D,6CAAmE;AACnE,yGAAkG;AAClG,2GAAmG;AACnG,2GAAmG;AAEnG,IAAK,eAGJ;AAHD,WAAK,eAAe;IAClB,0CAAuB,CAAA;IACvB,0CAAuB,CAAA;AACzB,CAAC,EAHI,eAAe,KAAf,eAAe,QAGnB;AAIM,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAC7C,YAA6B,OAAwC;QAAxC,YAAO,GAAP,OAAO,CAAiC;IAAG,CAAC;IAKzE,MAAM,CAAS,SAA4C,EAAmB,KAAiC;QAC7G,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAKD,UAAU,CAAS,UAA+C,EAAmB,aAAsC,EAAE;QAC3H,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAMD,MAAM,CAAc,EAAU,EAAU,SAA4C,EAAmB,KAAiC;QACtI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAKD,aAAa,CAAc,EAAU,EAAU,SAA4C,EAAmB,KAAiC;QAC7I,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAAS,GAAa;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAIK,AAAN,KAAK,CAAC,OAAO,CAAc,EAAU;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAaK,AAAN,KAAK,CAAC,QAAQ,CAAU,KAAU;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAIK,AAAN,KAAK,CAAC,OAAO,CAAc,EAAU,EAAW,KAAU;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CAAS,GAAa;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAIK,AAAN,KAAK,CAAC,MAAM,CAAc,EAAU;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;CAGF,CAAA;AA9EY,gFAAkC;AAM7C;IAHC,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,aAAI,GAAE;IACN,IAAA,wBAAe,EAAC,IAAA,sCAAmB,GAAE,CAAC;;IAC/B,WAAA,IAAA,aAAI,GAAE,CAAA;IAAgD,WAAA,IAAA,sBAAa,GAAE,CAAA;;qCAAnD,0EAAiC,EAA0B,KAAK;;gEAEzF;AAKD;IAHC,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,aAAI,EAAC,OAAO,CAAC;IACb,IAAA,wBAAe,EAAC,IAAA,sCAAmB,GAAE,CAAC;;IAC3B,WAAA,IAAA,aAAI,GAAE,CAAA;IAAmD,WAAA,IAAA,sBAAa,GAAE,CAAA;;;;oEAEnF;AAMD;IAHC,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,YAAG,EAAC,KAAK,CAAC;IACV,IAAA,wBAAe,EAAC,IAAA,sCAAmB,GAAE,CAAC;;IAC/B,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;IAAgD,WAAA,IAAA,sBAAa,GAAE,CAAA;;6CAAnD,0EAAiC,EAA0B,KAAK;;gEAElH;AAKD;IAHC,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,cAAK,EAAC,KAAK,CAAC;IACZ,IAAA,wBAAe,EAAC,IAAA,sCAAmB,GAAE,CAAC;;IACxB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;IAAgD,WAAA,IAAA,sBAAa,GAAE,CAAA;;6CAAnD,0EAAiC,EAA0B,KAAK;;uEAEzH;AAIK;IAFL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,aAAI,EAAC,eAAe,CAAC;;IACH,WAAA,IAAA,aAAI,GAAE,CAAA;;;;qEAExB;AAIK;IAFL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,YAAG,EAAC,cAAc,CAAC;;IACL,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;iEAEzB;AAaK;IAXL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAC7E,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC5D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACjE,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3D,IAAA,YAAG,GAAE;;IACU,WAAA,IAAA,cAAK,GAAE,CAAA;;;;kEAEtB;AAIK;IAFL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,YAAG,EAAC,KAAK,CAAC;;IACI,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,cAAK,GAAE,CAAA;;;;iEAE9C;AAIK;IAFL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,eAAM,EAAC,OAAO,CAAC;;IACE,WAAA,IAAA,aAAI,GAAE,CAAA;;;;oEAEvB;AAIK;IAFL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,eAAM,EAAC,KAAK,CAAC;;IACA,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;gEAExB;6CA3EU,kCAAkC;IAF9C,IAAA,iBAAO,EAAC,YAAY,CAAC;IACrB,IAAA,mBAAU,EAAC,6BAA6B,CAAC;qCAEF,qEAA+B;GAD1D,kCAAkC,CA8E9C","sourcesContent":["import { Controller, Post, Body, Param, UploadedFiles, UseInterceptors, Put, Get, Query, Delete, Patch } from '@nestjs/common';\nimport { AnyFilesInterceptor } from \"@nestjs/platform-express\";\nimport { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';\nimport { QuestionSqlDatasetConfigService } from '../services/question-sql-dataset-config.service';\nimport { CreateQuestionSqlDatasetConfigDto } from '../dtos/create-question-sql-dataset-config.dto';\nimport { UpdateQuestionSqlDatasetConfigDto } from '../dtos/update-question-sql-dataset-config.dto';\n\nenum ShowSoftDeleted {\n INCLUSIVE = \"inclusive\",\n EXCLUSIVE = \"exclusive\",\n}\n\n@ApiTags('Solid Core')\n@Controller('question-sql-dataset-config')\nexport class QuestionSqlDatasetConfigController {\n constructor(private readonly service: QuestionSqlDatasetConfigService) {}\n\n @ApiBearerAuth(\"jwt\")\n @Post()\n @UseInterceptors(AnyFilesInterceptor())\n create(@Body() createDto: CreateQuestionSqlDatasetConfigDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n return this.service.create(createDto, files);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Post('/bulk')\n @UseInterceptors(AnyFilesInterceptor())\n insertMany(@Body() createDtos: CreateQuestionSqlDatasetConfigDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {\n return this.service.insertMany(createDtos, filesArray);\n }\n\n\n @ApiBearerAuth(\"jwt\")\n @Put(':id')\n @UseInterceptors(AnyFilesInterceptor())\n update(@Param('id') id: number, @Body() updateDto: UpdateQuestionSqlDatasetConfigDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n return this.service.update(id, updateDto, files);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Patch(':id')\n @UseInterceptors(AnyFilesInterceptor())\n partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateQuestionSqlDatasetConfigDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n return this.service.update(id, updateDto, files, true);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Post('/bulk-recover')\n async recoverMany(@Body() ids: number[]) {\n return this.service.recoverMany(ids);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Get('/recover/:id')\n async recover(@Param('id') id: number) {\n return this.service.recover(id);\n }\n \n @ApiBearerAuth(\"jwt\")\n @ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })\n @ApiQuery({ name: 'limit', required: false, type: Number })\n @ApiQuery({ name: 'offset', required: false, type: Number })\n @ApiQuery({ name: 'fields', required: false, type: Array })\n @ApiQuery({ name: 'sort', required: false, type: Array }) \n @ApiQuery({ name: 'groupBy', required: false, type: Array })\n @ApiQuery({ name: 'populate', required: false, type: Array })\n @ApiQuery({ name: 'populateMedia', required: false, type: Array })\n @ApiQuery({ name: 'filters', required: false, type: Array })\n @Get()\n async findMany(@Query() query: any) { \n return this.service.find(query); \n }\n\n @ApiBearerAuth(\"jwt\")\n @Get(':id')\n async findOne(@Param('id') id: string, @Query() query: any) {\n return this.service.findOne(+id, query);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Delete('/bulk')\n async deleteMany(@Body() ids: number[]) {\n return this.service.deleteMany(ids);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Delete(':id')\n async delete(@Param('id') id: number) {\n return this.service.delete(id);\n }\n\n\n}\n"]}
@@ -1,45 +0,0 @@
1
- import { QuestionService } from '../services/question.service';
2
- import { CreateQuestionDto } from '../dtos/create-question.dto';
3
- import { UpdateQuestionDto } from '../dtos/update-question.dto';
4
- import { SqlExpression } from 'src/services/question-data-providers/chartjs-sql-data-provider.service';
5
- export declare class QuestionController {
6
- private readonly service;
7
- constructor(service: QuestionService);
8
- create(createDto: CreateQuestionDto, files: Array<Express.Multer.File>): Promise<import("..").Question>;
9
- insertMany(createDtos: CreateQuestionDto[], filesArray?: Express.Multer.File[][]): Promise<import("..").Question[]>;
10
- update(id: number, updateDto: UpdateQuestionDto, files: Array<Express.Multer.File>): Promise<import("..").Question>;
11
- partialUpdate(id: number, updateDto: UpdateQuestionDto, files: Array<Express.Multer.File>): Promise<import("..").Question>;
12
- recoverMany(ids: number[]): Promise<{
13
- message: string;
14
- recoveredIds: number[];
15
- }>;
16
- recover(id: number): Promise<{
17
- message: string;
18
- data: import("..").Question;
19
- }>;
20
- findMany(query: any): Promise<{
21
- meta: {
22
- totalRecords: number;
23
- };
24
- groupMeta: any[];
25
- groupRecords: any[];
26
- records?: undefined;
27
- } | {
28
- meta: {
29
- totalRecords: number;
30
- currentPage: number;
31
- nextPage: number;
32
- prevPage: number;
33
- totalPages: number;
34
- perPage: number;
35
- };
36
- records: import("..").Question[];
37
- groupMeta?: undefined;
38
- groupRecords?: undefined;
39
- }>;
40
- getData(id: string, filters: SqlExpression[], isPreview?: string): Promise<any>;
41
- findOne(id: string, query: any): Promise<import("..").Question>;
42
- deleteMany(ids: number[]): Promise<any>;
43
- delete(id: number): Promise<import("..").Question>;
44
- }
45
- //# sourceMappingURL=question.controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"question.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/question.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,wEAAwE,CAAC;AAOvG,qBAEa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAKrD,MAAM,CAAS,SAAS,EAAE,iBAAiB,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAO/F,UAAU,CAAS,UAAU,EAAE,iBAAiB,EAAE,EAAmB,UAAU,GAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAO;IAQ7G,MAAM,CAAc,EAAE,EAAE,MAAM,EAAU,SAAS,EAAE,iBAAiB,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAOxH,aAAa,CAAc,EAAE,EAAE,MAAM,EAAU,SAAS,EAAE,iBAAiB,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAMzH,WAAW,CAAS,GAAG,EAAE,MAAM,EAAE;;;;IAMjC,OAAO,CAAc,EAAE,EAAE,MAAM;;;;IAe/B,QAAQ,CAAU,KAAK,EAAE,GAAG;;;;;;;;;;;;;;;;;;;;IAM5B,OAAO,CACE,EAAE,EAAE,MAAM,EACL,OAAO,EAAE,aAAa,EAAE,EACtB,SAAS,CAAC,EAAE,MAAM;IAQlC,OAAO,CAAc,EAAE,EAAE,MAAM,EAAW,KAAK,EAAE,GAAG;IAMpD,UAAU,CAAS,GAAG,EAAE,MAAM,EAAE;IAMhC,MAAM,CAAc,EAAE,EAAE,MAAM;CAIrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"question.controller.js","sourceRoot":"","sources":["../../src/controllers/question.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Controller, Post, Body, Param, UploadedFiles, UseInterceptors, Put, Get, Query, Delete, Patch } from '@nestjs/common';\nimport { AnyFilesInterceptor } from \"@nestjs/platform-express\";\nimport { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';\nimport { QuestionService } from '../services/question.service';\nimport { CreateQuestionDto } from '../dtos/create-question.dto';\nimport { UpdateQuestionDto } from '../dtos/update-question.dto';\nimport { SqlExpression } from 'src/services/question-data-providers/chartjs-sql-data-provider.service';\n\nenum ShowSoftDeleted {\n INCLUSIVE = \"inclusive\",\n EXCLUSIVE = \"exclusive\",\n}\n\n@ApiTags('Solid Core')\n@Controller('question')\nexport class QuestionController {\n constructor(private readonly service: QuestionService) { }\n\n @ApiBearerAuth(\"jwt\")\n @Post()\n @UseInterceptors(AnyFilesInterceptor())\n create(@Body() createDto: CreateQuestionDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n return this.service.create(createDto, files);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Post('/bulk')\n @UseInterceptors(AnyFilesInterceptor())\n insertMany(@Body() createDtos: CreateQuestionDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {\n return this.service.insertMany(createDtos, filesArray);\n }\n\n\n @ApiBearerAuth(\"jwt\")\n @Put(':id')\n @UseInterceptors(AnyFilesInterceptor())\n update(@Param('id') id: number, @Body() updateDto: UpdateQuestionDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n return this.service.update(id, updateDto, files);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Patch(':id')\n @UseInterceptors(AnyFilesInterceptor())\n partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateQuestionDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n return this.service.update(id, updateDto, files, true);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Post('/bulk-recover')\n async recoverMany(@Body() ids: number[]) {\n return this.service.recoverMany(ids);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Get('/recover/:id')\n async recover(@Param('id') id: number) {\n return this.service.recover(id);\n }\n\n @ApiBearerAuth(\"jwt\")\n @ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })\n @ApiQuery({ name: 'limit', required: false, type: Number })\n @ApiQuery({ name: 'offset', required: false, type: Number })\n @ApiQuery({ name: 'fields', required: false, type: Array })\n @ApiQuery({ name: 'sort', required: false, type: Array })\n @ApiQuery({ name: 'groupBy', required: false, type: Array })\n @ApiQuery({ name: 'populate', required: false, type: Array })\n @ApiQuery({ name: 'populateMedia', required: false, type: Array })\n @ApiQuery({ name: 'filters', required: false, type: Array })\n @Get()\n async findMany(@Query() query: any) {\n return this.service.find(query);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Get(':id/data')\n async getData(\n @Param('id') id: string,\n @Query('filters') filters: SqlExpression[],\n @Query('isPreview') isPreview?: string\n ) {\n const previewMode = isPreview === 'true';\n return this.service.getData(+id, filters, previewMode);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Get(':id')\n async findOne(@Param('id') id: string, @Query() query: any) {\n return this.service.findOne(+id, query);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Delete('/bulk')\n async deleteMany(@Body() ids: number[]) {\n return this.service.deleteMany(ids);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Delete(':id')\n async delete(@Param('id') id: number) {\n return this.service.delete(id);\n }\n\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-question-sql-dataset-config.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-question-sql-dataset-config.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,iCAAiC;IAI1C,WAAW,EAAE,MAAM,CAAC;IAIpB,kBAAkB,EAAE,MAAM,CAAC;IAI3B,WAAW,EAAE,MAAM,CAAC;IAIpB,GAAG,EAAE,MAAM,CAAC;IAIZ,eAAe,EAAE,MAAM,CAAC;IAIxB,eAAe,EAAE,MAAM,CAAC;IAIxB,UAAU,EAAE,MAAM,CAAC;IAInB,eAAe,EAAE,MAAM,CAAC;IAIxB,OAAO,EAAE,GAAG,CAAC;CAChB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-question-sql-dataset-config.dto.js","sourceRoot":"","sources":["../../src/dtos/create-question-sql-dataset-config.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA2C;AAC3C,qDAAwE;AAExE,MAAa,iCAAiC;;;;CAqC7C;AArCD,8EAqCC;AAjCG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;sEACM;AAIpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,gJAAgJ,EAAE,CAAC;;6EACpJ;AAI3B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,sGAAsG,EAAE,CAAC;;sEACjH;AAIpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;8DACF;AAIZ;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;0EACU;AAIxB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;0EACU;AAIxB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;;qEACpC;AAInB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;;0EAC/B;AAIxB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;IACR,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,uLAAuL,EAAE,CAAC;;kEACzM","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { IsString } from 'class-validator';\nimport { IsNotEmpty, IsOptional, IsInt, IsJSON } from 'class-validator';\n\nexport class CreateQuestionSqlDatasetConfigDto {\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n datasetName: string;\n @IsNotEmpty()\n @IsString()\n @ApiProperty({ description: \"This is the display name for the dataset configuration, which can be used in UI components to represent the dataset in a user-friendly manner.\" })\n datasetDisplayName: string;\n @IsOptional()\n @IsString()\n @ApiProperty({ description: \"This is a description of the dataset configuration, providing context and details about its purpose.\" })\n description: string;\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n sql: string;\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n labelColumnName: string;\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n valueColumnName: string;\n @IsOptional()\n @IsInt()\n @ApiProperty({ description: \"Related Question Model\" })\n questionId: number;\n @IsString()\n @IsOptional()\n @ApiProperty({ description: \"Related Question Model\" })\n questionUserKey: string;\n @IsOptional()\n @IsJSON()\n @ApiProperty({ description: \"This allows you to set the dataset options e.g border-color, background-color, etc. This is a JSON object that can be used to customize the dataset appearance or behavior in the UI.\" })\n options: any;\n}"]}
@@ -1,16 +0,0 @@
1
- import { UpdateQuestionSqlDatasetConfigDto } from 'src/dtos/update-question-sql-dataset-config.dto';
2
- export declare class CreateQuestionDto {
3
- name: string;
4
- sourceType: string;
5
- visualisedAs: string;
6
- providerName: string;
7
- dashboardId: number;
8
- dashboardUserKey: string;
9
- questionSqlDatasetConfigs: UpdateQuestionSqlDatasetConfigDto[];
10
- questionSqlDatasetConfigsIds: number[];
11
- questionSqlDatasetConfigsCommand: string;
12
- chartOptions: any;
13
- labelSql: string;
14
- kpiSql: string;
15
- }
16
- //# sourceMappingURL=create-question.dto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-question.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-question.dto.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iCAAiC,EAAE,MAAM,iDAAiD,CAAC;AAEpG,qBAAa,iBAAiB;IAI1B,IAAI,EAAE,MAAM,CAAC;IAIb,UAAU,EAAE,MAAM,CAAC;IAInB,YAAY,EAAE,MAAM,CAAC;IAIrB,YAAY,EAAE,MAAM,CAAC;IAIrB,WAAW,EAAE,MAAM,CAAC;IAIpB,gBAAgB,EAAE,MAAM,CAAC;IAMzB,yBAAyB,EAAE,iCAAiC,EAAE,CAAC;IAI/D,4BAA4B,EAAE,MAAM,EAAE,CAAC;IAIvC,gCAAgC,EAAE,MAAM,CAAC;IAIzC,YAAY,EAAE,GAAG,CAAC;IAIlB,QAAQ,EAAE,MAAM,CAAC;IAIjB,MAAM,EAAE,MAAM,CAAC;CAClB"}