@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.
- package/dist/controllers/ai-interaction.controller.d.ts +3 -1
- package/dist/controllers/ai-interaction.controller.d.ts.map +1 -1
- package/dist/controllers/ai-interaction.controller.js +27 -3
- package/dist/controllers/ai-interaction.controller.js.map +1 -1
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +43 -0
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +1 -0
- package/dist/controllers/{question-sql-dataset-config.controller.js → dashboard-question-sql-dataset-config.controller.js} +30 -30
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +1 -0
- package/dist/controllers/dashboard-question.controller.d.ts +45 -0
- package/dist/controllers/dashboard-question.controller.d.ts.map +1 -0
- package/dist/controllers/{question.controller.js → dashboard-question.controller.js} +31 -31
- package/dist/controllers/dashboard-question.controller.js.map +1 -0
- package/dist/dtos/{create-question-sql-dataset-config.dto.d.ts → create-dashboard-question-sql-dataset-config.dto.d.ts} +2 -2
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +1 -0
- package/dist/dtos/{create-question-sql-dataset-config.dto.js → create-dashboard-question-sql-dataset-config.dto.js} +13 -13
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +1 -0
- package/dist/dtos/create-dashboard-question.dto.d.ts +17 -0
- package/dist/dtos/create-dashboard-question.dto.d.ts.map +1 -0
- package/dist/dtos/{create-question.dto.js → create-dashboard-question.dto.js} +25 -19
- package/dist/dtos/create-dashboard-question.dto.js.map +1 -0
- package/dist/dtos/create-dashboard.dto.d.ts +2 -2
- package/dist/dtos/create-dashboard.dto.d.ts.map +1 -1
- package/dist/dtos/create-dashboard.dto.js +3 -3
- package/dist/dtos/create-dashboard.dto.js.map +1 -1
- package/dist/dtos/{update-question-sql-dataset-config.dto.d.ts → update-dashboard-question-sql-dataset-config.dto.d.ts} +2 -2
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +1 -0
- package/dist/dtos/{update-question-sql-dataset-config.dto.js → update-dashboard-question-sql-dataset-config.dto.js} +14 -14
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +1 -0
- package/dist/dtos/update-dashboard-question.dto.d.ts +18 -0
- package/dist/dtos/update-dashboard-question.dto.d.ts.map +1 -0
- package/dist/dtos/{update-question.dto.js → update-dashboard-question.dto.js} +26 -20
- package/dist/dtos/update-dashboard-question.dto.js.map +1 -0
- package/dist/dtos/update-dashboard.dto.d.ts +2 -2
- package/dist/dtos/update-dashboard.dto.d.ts.map +1 -1
- package/dist/dtos/update-dashboard.dto.js +3 -3
- package/dist/dtos/update-dashboard.dto.js.map +1 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +13 -0
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +1 -0
- package/dist/entities/{question-sql-dataset-config.entity.js → dashboard-question-sql-dataset-config.entity.js} +19 -19
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -0
- package/dist/entities/dashboard-question.entity.d.ts +16 -0
- package/dist/entities/dashboard-question.entity.d.ts.map +1 -0
- package/dist/entities/{question.entity.js → dashboard-question.entity.js} +23 -19
- package/dist/entities/dashboard-question.entity.js.map +1 -0
- package/dist/entities/dashboard.entity.d.ts +2 -2
- package/dist/entities/dashboard.entity.d.ts.map +1 -1
- package/dist/entities/dashboard.entity.js +3 -3
- package/dist/entities/dashboard.entity.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +21 -2
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +11 -0
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js +39 -0
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +8 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.js +10 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.js.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +16 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +91 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -0
- package/dist/repository/dashboard.repository.d.ts +1 -3
- package/dist/repository/dashboard.repository.d.ts.map +1 -1
- package/dist/repository/dashboard.repository.js +42 -37
- package/dist/repository/dashboard.repository.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +88 -131
- package/dist/services/ai-interaction.service.d.ts +13 -2
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +84 -19
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +8 -6
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/{question-sql-dataset-config.service.d.ts → dashboard-question-sql-dataset-config.service.d.ts} +5 -5
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -0
- package/dist/services/{question-sql-dataset-config.service.js → dashboard-question-sql-dataset-config.service.js} +9 -9
- package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -0
- package/dist/services/{question.service.d.ts → dashboard-question.service.d.ts} +5 -5
- package/dist/services/dashboard-question.service.d.ts.map +1 -0
- package/dist/services/{question.service.js → dashboard-question.service.js} +10 -10
- package/dist/services/dashboard-question.service.js.map +1 -0
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +1 -0
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts +3 -1
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +22 -0
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.d.ts +1 -0
- package/dist/services/list-of-values.service.d.ts.map +1 -1
- package/dist/services/list-of-values.service.js +3 -0
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts +9 -0
- package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts.map +1 -0
- package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js +40 -0
- package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js.map +1 -0
- package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts +11 -0
- package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts.map +1 -0
- package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js +46 -0
- package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js.map +1 -0
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +2 -2
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +1 -1
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +11 -7
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +1 -1
- package/dist/services/question-data-providers/helpers.d.ts +5 -2
- package/dist/services/question-data-providers/helpers.d.ts.map +1 -1
- package/dist/services/question-data-providers/helpers.js +18 -3
- package/dist/services/question-data-providers/helpers.js.map +1 -1
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +2 -2
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +1 -1
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +10 -4
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +1 -1
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +2 -2
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +1 -1
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +11 -3
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +1 -1
- package/dist/services/queues/publisher-factory.service.js +1 -1
- package/dist/services/queues/publisher-factory.service.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts +1 -1
- package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts.map +1 -1
- package/dist/services/scheduled-jobs/scheduled-job.interface.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js +1 -6
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +56 -39
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/{question-sql-dataset-config.subscriber.d.ts → dashboard-question-sql-dataset-config.subscriber.d.ts} +6 -6
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +1 -0
- package/dist/subscribers/{question-sql-dataset-config.subscriber.js → dashboard-question-sql-dataset-config.subscriber.js} +10 -10
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +1 -0
- package/dist/subscribers/{question.subscriber.d.ts → dashboard-question.subscriber.d.ts} +7 -7
- package/dist/subscribers/dashboard-question.subscriber.d.ts.map +1 -0
- package/dist/subscribers/{question.subscriber.js → dashboard-question.subscriber.js} +8 -8
- package/dist/subscribers/dashboard-question.subscriber.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/controllers/ai-interaction.controller.ts +14 -2
- package/src/controllers/{question-sql-dataset-config.controller.ts → dashboard-question-sql-dataset-config.controller.ts} +10 -10
- package/src/controllers/{question.controller.ts → dashboard-question.controller.ts} +10 -10
- package/src/dtos/{create-question-sql-dataset-config.dto.ts → create-dashboard-question-sql-dataset-config.dto.ts} +1 -1
- package/src/dtos/{create-question.dto.ts → create-dashboard-question.dto.ts} +9 -4
- package/src/dtos/create-dashboard.dto.ts +3 -3
- package/src/dtos/{update-question-sql-dataset-config.dto.ts → update-dashboard-question-sql-dataset-config.dto.ts} +1 -1
- package/src/dtos/{update-question.dto.ts → update-dashboard-question.dto.ts} +9 -4
- package/src/dtos/update-dashboard.dto.ts +3 -3
- package/src/entities/{question-sql-dataset-config.entity.ts → dashboard-question-sql-dataset-config.entity.ts} +5 -5
- package/src/entities/{question.entity.ts → dashboard-question.entity.ts} +8 -5
- package/src/entities/dashboard.entity.ts +3 -3
- package/src/index.ts +7 -4
- package/src/interfaces.ts +24 -2
- package/src/jobs/database/trigger-mcp-client-publisher-database.service.ts +22 -0
- package/src/jobs/database/trigger-mcp-client-queue-options.ts +9 -0
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +89 -0
- package/src/repository/dashboard.repository.ts +54 -53
- package/src/seeders/seed-data/solid-core-metadata.json +88 -131
- package/src/services/ai-interaction.service.ts +117 -33
- package/src/services/chatter-message.service.ts +12 -6
- package/src/services/{question-sql-dataset-config.service.ts → dashboard-question-sql-dataset-config.service.ts} +5 -5
- package/src/services/{question.service.ts → dashboard-question.service.ts} +6 -6
- package/src/services/field-metadata.service.ts +1 -0
- package/src/services/import-transaction.service.ts +29 -1
- package/src/services/list-of-values.service.ts +5 -0
- package/src/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.ts +36 -0
- package/src/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.ts +52 -0
- package/src/services/module-metadata.service.ts +0 -5
- package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +14 -10
- package/src/services/question-data-providers/helpers.ts +23 -4
- package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +12 -6
- package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +14 -5
- package/src/services/question-data-providers/test.sql +1 -0
- package/src/services/queues/publisher-factory.service.ts +1 -1
- package/src/services/scheduled-jobs/scheduled-job.interface.ts +1 -1
- package/src/services/scheduled-jobs/scheduler.service.ts +6 -6
- package/src/solid-core.module.ts +59 -39
- package/src/subscribers/{question-sql-dataset-config.subscriber.ts → dashboard-question-sql-dataset-config.subscriber.ts} +8 -10
- package/src/subscribers/{question.subscriber.ts → dashboard-question.subscriber.ts} +7 -10
- package/dist/controllers/question-sql-dataset-config.controller.d.ts +0 -43
- package/dist/controllers/question-sql-dataset-config.controller.d.ts.map +0 -1
- package/dist/controllers/question-sql-dataset-config.controller.js.map +0 -1
- package/dist/controllers/question.controller.d.ts +0 -45
- package/dist/controllers/question.controller.d.ts.map +0 -1
- package/dist/controllers/question.controller.js.map +0 -1
- package/dist/dtos/create-question-sql-dataset-config.dto.d.ts.map +0 -1
- package/dist/dtos/create-question-sql-dataset-config.dto.js.map +0 -1
- package/dist/dtos/create-question.dto.d.ts +0 -16
- package/dist/dtos/create-question.dto.d.ts.map +0 -1
- package/dist/dtos/create-question.dto.js.map +0 -1
- package/dist/dtos/update-question-sql-dataset-config.dto.d.ts.map +0 -1
- package/dist/dtos/update-question-sql-dataset-config.dto.js.map +0 -1
- package/dist/dtos/update-question.dto.d.ts +0 -17
- package/dist/dtos/update-question.dto.d.ts.map +0 -1
- package/dist/dtos/update-question.dto.js.map +0 -1
- package/dist/entities/question-sql-dataset-config.entity.d.ts +0 -13
- package/dist/entities/question-sql-dataset-config.entity.d.ts.map +0 -1
- package/dist/entities/question-sql-dataset-config.entity.js.map +0 -1
- package/dist/entities/question.entity.d.ts +0 -15
- package/dist/entities/question.entity.d.ts.map +0 -1
- package/dist/entities/question.entity.js.map +0 -1
- package/dist/services/question-sql-dataset-config.service.d.ts.map +0 -1
- package/dist/services/question-sql-dataset-config.service.js.map +0 -1
- package/dist/services/question.service.d.ts.map +0 -1
- package/dist/services/question.service.js.map +0 -1
- package/dist/subscribers/question-sql-dataset-config.subscriber.d.ts.map +0 -1
- package/dist/subscribers/question-sql-dataset-config.subscriber.js.map +0 -1
- package/dist/subscribers/question.subscriber.d.ts.map +0 -1
- package/dist/subscribers/question.subscriber.js.map +0 -1
- package/src/services/1. Create a context menu option i.py +0 -12
package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts
CHANGED
|
@@ -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 {
|
|
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:
|
|
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.
|
|
88
|
-
this.logger.
|
|
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
|
|
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
|
|
@@ -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.
|
|
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;
|
package/src/solid-core.module.ts
CHANGED
|
@@ -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 {
|
|
217
|
-
import {
|
|
218
|
-
import {
|
|
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([
|
|
310
|
-
TypeOrmModule.forFeature([
|
|
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
|
-
|
|
353
|
-
|
|
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
|
-
|
|
514
|
+
DashboardQuestionService,
|
|
502
515
|
DashboardVariableSQLDynamicProvider,
|
|
503
516
|
DasbhoardVariableTestDynamicProvider,
|
|
504
517
|
ListOfDashboardVariableProvidersSelectionProvider,
|
|
505
518
|
ListOfDashboardQuestionProvidersSelectionProvider,
|
|
506
|
-
|
|
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
|
-
|
|
517
|
-
|
|
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 {
|
|
4
|
-
import {
|
|
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
|
|
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
|
|
22
|
+
return DashboardQuestionSqlDatasetConfig;
|
|
25
23
|
}
|
|
26
24
|
|
|
27
|
-
async afterInsert(event: InsertEvent<
|
|
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<
|
|
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:
|
|
43
|
+
private async saveQuestionToConfig(question: DashboardQuestion, entityManager: EntityManager): Promise<void> {
|
|
46
44
|
// Populate the dashboard for the question
|
|
47
|
-
const populatedQuestion = await entityManager.findOne(
|
|
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
|
|
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 {
|
|
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
|
|
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
|
|
22
|
+
return DashboardQuestion;
|
|
26
23
|
}
|
|
27
24
|
|
|
28
|
-
async afterInsert(event: InsertEvent<
|
|
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<
|
|
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:
|
|
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":"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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 { 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"}
|