@solidstarters/solid-core 1.2.111 → 1.2.112
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/model-metadata.controller.d.ts +1 -1
- package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/model-metadata.controller.js +1 -1
- package/dist/controllers/model-metadata.controller.js.map +1 -1
- package/dist/controllers/queues-test.controller.d.ts +5 -3
- package/dist/controllers/queues-test.controller.d.ts.map +1 -1
- package/dist/controllers/queues-test.controller.js +20 -8
- package/dist/controllers/queues-test.controller.js.map +1 -1
- package/dist/entities/field-metadata.entity.js +1 -1
- package/dist/entities/mq-message.entity.d.ts +1 -0
- package/dist/entities/mq-message.entity.d.ts.map +1 -1
- package/dist/entities/mq-message.entity.js +5 -1
- package/dist/entities/mq-message.entity.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts +1 -0
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js +9 -4
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +2 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js +1 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/api-email-publisher.service.d.ts +1 -1
- package/dist/jobs/api-email-publisher.service.d.ts.map +1 -1
- package/dist/jobs/api-email-publisher.service.js +1 -1
- package/dist/jobs/api-email-publisher.service.js.map +1 -1
- package/dist/jobs/api-email-subscriber.service.d.ts +1 -1
- package/dist/jobs/api-email-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/api-email-subscriber.service.js +1 -1
- package/dist/jobs/api-email-subscriber.service.js.map +1 -1
- package/dist/jobs/database/generate-code-publisher.service.d.ts +11 -0
- package/dist/jobs/database/generate-code-publisher.service.d.ts.map +1 -0
- package/dist/jobs/database/generate-code-publisher.service.js +39 -0
- package/dist/jobs/database/generate-code-publisher.service.js.map +1 -0
- package/dist/jobs/database/generate-code-queue-options.d.ts +8 -0
- package/dist/jobs/database/generate-code-queue-options.d.ts.map +1 -0
- package/dist/jobs/database/generate-code-queue-options.js +10 -0
- package/dist/jobs/database/generate-code-queue-options.js.map +1 -0
- package/dist/jobs/database/generate-code-subscriber.service.d.ts +16 -0
- package/dist/jobs/database/generate-code-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/database/generate-code-subscriber.service.js +67 -0
- package/dist/jobs/database/generate-code-subscriber.service.js.map +1 -0
- package/dist/jobs/database/queue-test-db-publisher.service.d.ts +11 -0
- package/dist/jobs/database/queue-test-db-publisher.service.d.ts.map +1 -0
- package/dist/jobs/database/queue-test-db-publisher.service.js +39 -0
- package/dist/jobs/database/queue-test-db-publisher.service.js.map +1 -0
- package/dist/jobs/database/queue-test-db-subscriber.service.d.ts +14 -0
- package/dist/jobs/database/queue-test-db-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/database/queue-test-db-subscriber.service.js +50 -0
- package/dist/jobs/database/queue-test-db-subscriber.service.js.map +1 -0
- package/dist/jobs/database/test-queue-db-options.d.ts +8 -0
- package/dist/jobs/database/test-queue-db-options.d.ts.map +1 -0
- package/dist/jobs/database/test-queue-db-options.js +10 -0
- package/dist/jobs/database/test-queue-db-options.js.map +1 -0
- package/dist/jobs/email-publisher.service.d.ts +1 -1
- package/dist/jobs/email-publisher.service.d.ts.map +1 -1
- package/dist/jobs/email-publisher.service.js +1 -1
- package/dist/jobs/email-publisher.service.js.map +1 -1
- package/dist/jobs/email-subscriber.service.d.ts +1 -1
- package/dist/jobs/email-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/email-subscriber.service.js +1 -1
- package/dist/jobs/email-subscriber.service.js.map +1 -1
- package/dist/jobs/otp-publisher.service.d.ts +1 -1
- package/dist/jobs/otp-publisher.service.d.ts.map +1 -1
- package/dist/jobs/otp-publisher.service.js +1 -1
- package/dist/jobs/otp-publisher.service.js.map +1 -1
- package/dist/jobs/otp-subscriber.service.d.ts +1 -1
- package/dist/jobs/otp-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/otp-subscriber.service.js +1 -1
- package/dist/jobs/otp-subscriber.service.js.map +1 -1
- package/dist/jobs/queue-test-publisher.service.d.ts +1 -1
- package/dist/jobs/queue-test-publisher.service.d.ts.map +1 -1
- package/dist/jobs/queue-test-publisher.service.js +3 -3
- package/dist/jobs/queue-test-publisher.service.js.map +1 -1
- package/dist/jobs/queue-test-subscriber.service.d.ts +2 -2
- package/dist/jobs/queue-test-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/queue-test-subscriber.service.js +9 -3
- package/dist/jobs/queue-test-subscriber.service.js.map +1 -1
- package/dist/jobs/sms-publisher.service.d.ts +1 -1
- package/dist/jobs/sms-publisher.service.d.ts.map +1 -1
- package/dist/jobs/sms-publisher.service.js +1 -1
- package/dist/jobs/sms-publisher.service.js.map +1 -1
- package/dist/jobs/sms-subscriber.service.d.ts +1 -1
- package/dist/jobs/sms-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/sms-subscriber.service.js +1 -1
- package/dist/jobs/sms-subscriber.service.js.map +1 -1
- package/dist/jobs/{test-queue.config.d.ts → test-queue-options.d.ts} +1 -1
- package/dist/jobs/test-queue-options.d.ts.map +1 -0
- package/dist/jobs/{test-queue.config.js → test-queue-options.js} +1 -1
- package/dist/jobs/test-queue-options.js.map +1 -0
- package/dist/jobs/whatsapp-publisher.service.d.ts +1 -1
- package/dist/jobs/whatsapp-publisher.service.d.ts.map +1 -1
- package/dist/jobs/whatsapp-publisher.service.js +1 -1
- package/dist/jobs/whatsapp-publisher.service.js.map +1 -1
- package/dist/jobs/whatsapp-subscriber.service.d.ts +1 -1
- package/dist/jobs/whatsapp-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/whatsapp-subscriber.service.js +1 -1
- package/dist/jobs/whatsapp-subscriber.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +342 -282
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +4 -1
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +11 -4
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +141 -6
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/mq-message-queue.service.d.ts.map +1 -1
- package/dist/services/mq-message-queue.service.js +1 -0
- package/dist/services/mq-message-queue.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts +2 -0
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +29 -2
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/queues/database-publisher.service.d.ts +16 -0
- package/dist/services/queues/database-publisher.service.d.ts.map +1 -0
- package/dist/services/queues/database-publisher.service.js +59 -0
- package/dist/services/queues/database-publisher.service.js.map +1 -0
- package/dist/services/queues/database-subscriber.service.d.ts +21 -0
- package/dist/services/queues/database-subscriber.service.d.ts.map +1 -0
- package/dist/services/queues/database-subscriber.service.js +128 -0
- package/dist/services/queues/database-subscriber.service.js.map +1 -0
- package/dist/services/{rabbitmq-publisher.service.d.ts → queues/rabbitmq-publisher.service.d.ts} +6 -4
- package/dist/services/queues/rabbitmq-publisher.service.d.ts.map +1 -0
- package/dist/services/{rabbitmq-publisher.service.js → queues/rabbitmq-publisher.service.js} +14 -1
- package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -0
- package/dist/services/{rabbitmq-subscriber.service.d.ts → queues/rabbitmq-subscriber.service.d.ts} +6 -4
- package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -0
- package/dist/services/{rabbitmq-subscriber.service.js → queues/rabbitmq-subscriber.service.js} +14 -10
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -0
- package/dist/services/queues/redis-publisher.service.d.ts +1 -0
- package/dist/services/queues/redis-publisher.service.d.ts.map +1 -0
- package/dist/services/queues/redis-publisher.service.js +1 -0
- package/dist/services/queues/redis-publisher.service.js.map +1 -0
- package/dist/services/queues/redis-subscriber.service.d.ts +1 -0
- package/dist/services/queues/redis-subscriber.service.d.ts.map +1 -0
- package/dist/services/queues/redis-subscriber.service.js +1 -0
- package/dist/services/queues/redis-subscriber.service.js.map +1 -0
- package/dist/services/sms/Msg91BaseSMSService.d.ts +1 -1
- package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +10 -2
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.d.ts +10 -0
- package/dist/subscribers/field-metadata.subscriber.d.ts.map +1 -0
- package/dist/subscribers/field-metadata.subscriber.js +40 -0
- package/dist/subscribers/field-metadata.subscriber.js.map +1 -0
- package/dist/subscribers/{model.subscriber.d.ts → model-metadata.subscriber.d.ts} +2 -2
- package/dist/subscribers/model-metadata.subscriber.d.ts.map +1 -0
- package/dist/subscribers/{model.subscriber.js → model-metadata.subscriber.js} +8 -8
- package/dist/subscribers/model-metadata.subscriber.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/controllers/model-metadata.controller.ts +1 -2
- package/src/controllers/queues-test.controller.ts +15 -6
- package/src/entities/field-metadata.entity.ts +1 -1
- package/src/entities/mq-message.entity.ts +3 -0
- package/src/helpers/module-metadata-helper.service.ts +11 -5
- package/src/index.ts +3 -3
- package/src/interfaces.ts +1 -0
- package/src/jobs/api-email-publisher.service.ts +1 -1
- package/src/jobs/api-email-subscriber.service.ts +1 -1
- package/src/jobs/database/generate-code-publisher.service.ts +23 -0
- package/src/jobs/database/generate-code-queue-options.ts +9 -0
- package/src/jobs/database/generate-code-subscriber.service.ts +56 -0
- package/src/jobs/database/queue-test-db-publisher.service.ts +24 -0
- package/src/jobs/database/queue-test-db-subscriber.service.ts +38 -0
- package/src/jobs/database/test-queue-db-options.ts +13 -0
- package/src/jobs/email-publisher.service.ts +1 -1
- package/src/jobs/email-subscriber.service.ts +1 -1
- package/src/jobs/otp-publisher.service.ts +1 -1
- package/src/jobs/otp-subscriber.service.ts +1 -1
- package/src/jobs/queue-test-publisher.service.ts +2 -2
- package/src/jobs/queue-test-subscriber.service.ts +10 -2
- package/src/jobs/sms-publisher.service.ts +1 -1
- package/src/jobs/sms-subscriber.service.ts +1 -1
- package/src/jobs/whatsapp-publisher.service.ts +1 -1
- package/src/jobs/whatsapp-subscriber.service.ts +1 -1
- package/src/seeders/seed-data/solid-core-metadata.json +344 -284
- package/src/services/field-metadata.service.ts +5 -5
- package/src/services/model-metadata.service.ts +256 -13
- package/src/services/mq-message-queue.service.ts +2 -1
- package/src/services/mq-message.service.ts +47 -8
- package/src/services/queues/database-publisher.service.ts +79 -0
- package/src/services/queues/database-subscriber.service.ts +173 -0
- package/src/services/{rabbitmq-publisher.service.ts → queues/rabbitmq-publisher.service.ts} +24 -8
- package/src/services/{rabbitmq-subscriber.service.ts → queues/rabbitmq-subscriber.service.ts} +23 -16
- package/src/services/queues/redis-publisher.service.ts +0 -0
- package/src/services/queues/redis-subscriber.service.ts +0 -0
- package/src/services/sms/Msg91BaseSMSService.ts +1 -1
- package/src/solid-core.module.ts +10 -2
- package/src/subscribers/field-metadata.subscriber.ts +52 -0
- package/src/subscribers/{model.subscriber.ts → model-metadata.subscriber.ts} +2 -2
- package/dist/jobs/test-queue.config.d.ts.map +0 -1
- package/dist/jobs/test-queue.config.js.map +0 -1
- package/dist/services/rabbitmq-publisher.service.d.ts.map +0 -1
- package/dist/services/rabbitmq-publisher.service.js.map +0 -1
- package/dist/services/rabbitmq-subscriber.service.d.ts.map +0 -1
- package/dist/services/rabbitmq-subscriber.service.js.map +0 -1
- package/dist/subscribers/model.subscriber.d.ts.map +0 -1
- package/dist/subscribers/model.subscriber.js.map +0 -1
- /package/src/jobs/{test-queue.config.ts → test-queue-options.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidstarters/solid-core",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.112",
|
|
4
4
|
"description": "This module is a NestJS module containing all the required core providers required by a Solid application",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -69,10 +69,9 @@ export class ModelMetadataController {
|
|
|
69
69
|
@ApiBearerAuth("jwt")
|
|
70
70
|
@Post(':id/generate-code')
|
|
71
71
|
generateCode(@Param('id', ParseIntPipe) id: number) {
|
|
72
|
-
return this.modelMetadataService.handleGenerateCode({ modelId: id});
|
|
72
|
+
return this.modelMetadataService.handleGenerateCode({ modelId: id });
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
|
|
76
75
|
@ApiBearerAuth("jwt")
|
|
77
76
|
@Put(':id')
|
|
78
77
|
update(@Param('id') id: number, @Body() updateModelMetaDataDto: UpdateModelMetaDataDto) {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Controller, Get } from '@nestjs/common';
|
|
1
|
+
import { Controller, Get, Param } from '@nestjs/common';
|
|
2
2
|
import { ApiTags } from '@nestjs/swagger';
|
|
3
3
|
import { Auth } from 'src/decorators/auth.decorator';
|
|
4
4
|
import { Public } from 'src/decorators/public.decorator';
|
|
5
5
|
import { AuthType } from 'src/enums/auth-type.enum';
|
|
6
6
|
import { TestQueuePublisher } from '../jobs/queue-test-publisher.service';
|
|
7
|
+
import { TestQueueDbPublisher } from 'src/jobs/database/queue-test-db-publisher.service';
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
@Auth(AuthType.None)
|
|
@@ -11,11 +12,14 @@ import { TestQueuePublisher } from '../jobs/queue-test-publisher.service';
|
|
|
11
12
|
@ApiTags("Queues")
|
|
12
13
|
export class QueuesTestController {
|
|
13
14
|
|
|
14
|
-
constructor(
|
|
15
|
+
constructor(
|
|
16
|
+
private readonly publisherRmq: TestQueuePublisher,
|
|
17
|
+
private readonly publisherDb: TestQueueDbPublisher
|
|
18
|
+
) { }
|
|
15
19
|
|
|
16
20
|
@Public()
|
|
17
|
-
@Get()
|
|
18
|
-
async getHello() {
|
|
21
|
+
@Get(':messageBroker')
|
|
22
|
+
async getHello(@Param('messageBroker') messageBroker: string) {
|
|
19
23
|
const pubsubMessage = 'A hopping-good time!';
|
|
20
24
|
const m = {
|
|
21
25
|
payload: {
|
|
@@ -23,10 +27,15 @@ export class QueuesTestController {
|
|
|
23
27
|
lastName: 'Patel',
|
|
24
28
|
age: 40
|
|
25
29
|
},
|
|
26
|
-
parentEntity: '
|
|
30
|
+
parentEntity: 'feeType',
|
|
27
31
|
parentEntityId: 23,
|
|
28
32
|
};
|
|
29
|
-
|
|
33
|
+
if (messageBroker === 'rabbitmq') {
|
|
34
|
+
await this.publisherRmq.publish(m);
|
|
35
|
+
}
|
|
36
|
+
if (messageBroker === 'database') {
|
|
37
|
+
await this.publisherDb.publish(m);
|
|
38
|
+
}
|
|
30
39
|
|
|
31
40
|
return {};
|
|
32
41
|
}
|
|
@@ -105,7 +105,7 @@ export class FieldMetadata extends CommonEntity {
|
|
|
105
105
|
// We can store a filter json like this {"fieldName": ${someVarWhichWillComeFromParentModel... or can be hard coded...}}
|
|
106
106
|
// {"type": "INDUSTRY"} .... Eg. static fixedFilter
|
|
107
107
|
// {"country_id", "${country}"} ... Eg. dynamic fixedFilter
|
|
108
|
-
@Column({ name: '
|
|
108
|
+
@Column({ name: 'relation_field_fixed_filter', nullable: true })
|
|
109
109
|
relationFieldFixedFilter: string;
|
|
110
110
|
|
|
111
111
|
@Column({ name: 'selection_dynamic_provider', nullable: true })
|
|
@@ -6,6 +6,9 @@ export class MqMessage extends CommonEntity{
|
|
|
6
6
|
@Column({ type: "varchar", nullable: true })
|
|
7
7
|
messageId: string;
|
|
8
8
|
|
|
9
|
+
@Column({ type: "varchar", nullable: true })
|
|
10
|
+
messageBroker: string;
|
|
11
|
+
|
|
9
12
|
@Column({ type: "integer", nullable: true })
|
|
10
13
|
retryCount: number;
|
|
11
14
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { dasherize } from "@angular-devkit/core/src/utils/strings";
|
|
1
2
|
import { Injectable, Logger } from "@nestjs/common";
|
|
2
3
|
import * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await
|
|
3
4
|
import * as path from 'path'; // To handle file paths
|
|
@@ -7,7 +8,7 @@ import { FileService } from "src/services/file.service";
|
|
|
7
8
|
@Injectable()
|
|
8
9
|
export class ModuleMetadataHelperService {
|
|
9
10
|
private readonly logger = new Logger(ModuleMetadataHelperService.name);
|
|
10
|
-
constructor(private readonly fileService: FileService) {}
|
|
11
|
+
constructor(private readonly fileService: FileService) { }
|
|
11
12
|
// async getModuleMetadataConfig(moduleName: string): Promise<ModuleMetadata> {
|
|
12
13
|
// const filePath = this.getModuleMetadataFilePath(moduleName);
|
|
13
14
|
// const metadata = await this.getModuleMetadata(filePath);
|
|
@@ -19,16 +20,21 @@ export class ModuleMetadataHelperService {
|
|
|
19
20
|
return JSON.parse(fileContent);
|
|
20
21
|
}
|
|
21
22
|
|
|
23
|
+
async getModulePath(moduleName: string): Promise<string> {
|
|
24
|
+
return path.resolve(process.cwd(), 'src', moduleName);
|
|
25
|
+
}
|
|
26
|
+
|
|
22
27
|
async getModuleMetadataFilePath(moduleName: string): Promise<string> {
|
|
23
|
-
const
|
|
24
|
-
const
|
|
28
|
+
const dashModuleName = dasherize(moduleName);
|
|
29
|
+
const folderPath = path.resolve(process.cwd(), 'module-metadata', dashModuleName);
|
|
30
|
+
const filePath = path.join(folderPath, `${dashModuleName}-metadata.json`);
|
|
25
31
|
// Check if filePath exists
|
|
26
32
|
const fileExists = await this.fileService.fileExists(filePath);
|
|
27
33
|
this.logger.debug(`File exists: ${fileExists} at ${filePath}`);
|
|
28
34
|
if (!fileExists) {
|
|
29
35
|
// If the module is solid-core, try the fallback path, in case the current root directory is the solid core project
|
|
30
|
-
if (
|
|
31
|
-
const fallbackPath = path.resolve(process.cwd(), 'src', 'seeders', 'seed-data', `${
|
|
36
|
+
if (dashModuleName === SOLID_CORE_MODULE_NAME) {
|
|
37
|
+
const fallbackPath = path.resolve(process.cwd(), 'src', 'seeders', 'seed-data', `${dashModuleName}-metadata.json`);
|
|
32
38
|
this.logger.debug(`Fallback path: ${fallbackPath}`);
|
|
33
39
|
return fallbackPath;
|
|
34
40
|
}
|
package/src/index.ts
CHANGED
|
@@ -214,8 +214,8 @@ export * from './services/mq-message-queue.service'
|
|
|
214
214
|
export * from './services/mq-message.service'
|
|
215
215
|
export * from './services/pdf.service'
|
|
216
216
|
export * from './services/permission-metadata.service'
|
|
217
|
-
export * from './services/rabbitmq-publisher.service'
|
|
218
|
-
export * from './services/rabbitmq-subscriber.service'
|
|
217
|
+
export * from './services/queues/rabbitmq-publisher.service'
|
|
218
|
+
export * from './services/queues/rabbitmq-subscriber.service'
|
|
219
219
|
export * from './services/refresh-token-ids-storage.service'
|
|
220
220
|
export * from './services/role-metadata.service'
|
|
221
221
|
export * from './services/selection-providers/list-of-models-selection-provider.service'
|
|
@@ -241,7 +241,7 @@ export * from './repository/field.repository'
|
|
|
241
241
|
|
|
242
242
|
|
|
243
243
|
//softDeleteAwareEventSubscriber.subscriber.ts
|
|
244
|
-
export * from './subscribers/model.subscriber'
|
|
244
|
+
export * from './subscribers/model-metadata.subscriber'
|
|
245
245
|
export * from './subscribers/soft-delete-aware-event.subscriber' //rename
|
|
246
246
|
export * from './subscribers/view-metadata.subscriber' //rename
|
|
247
247
|
export * from './subscribers/audit.subscriber'
|
package/src/interfaces.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import { RabbitMqPublisher } from 'src/services/rabbitmq-publisher.service';
|
|
3
|
+
import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
|
|
4
4
|
import mailQueueOptions from './api-email-queue-options';
|
|
5
5
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
6
6
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
3
|
import mailQueueOptions from './api-email-queue-options';
|
|
4
|
-
import { RabbitMqSubscriber } from 'src/services/rabbitmq-subscriber.service';
|
|
4
|
+
import { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';
|
|
5
5
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
6
6
|
import { ElasticEmailService } from '../services/mail/ElasticEmailService';
|
|
7
7
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
|
|
3
|
+
import { MqMessageQueueService } from '../../services/mq-message-queue.service';
|
|
4
|
+
import { MqMessageService } from '../../services/mq-message.service';
|
|
5
|
+
import { CodeGenerationOptions, QueuesModuleOptions } from "../../interfaces";
|
|
6
|
+
import { DatabasePublisher } from 'src/services/queues/database-publisher.service';
|
|
7
|
+
import generateCodeQueueOptions from './generate-code-queue-options';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class GenerateCodePublisher extends DatabasePublisher<CodeGenerationOptions> {
|
|
11
|
+
constructor(
|
|
12
|
+
protected readonly mqMessageService: MqMessageService,
|
|
13
|
+
protected readonly mqMessageQueueService: MqMessageQueueService,
|
|
14
|
+
) {
|
|
15
|
+
super(mqMessageService, mqMessageQueueService);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
options(): QueuesModuleOptions {
|
|
19
|
+
return {
|
|
20
|
+
...generateCodeQueueOptions
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { forwardRef, Inject, Injectable, Logger } from '@nestjs/common';
|
|
2
|
+
|
|
3
|
+
import { QueueMessage } from 'src/interfaces/mq';
|
|
4
|
+
import { MqMessageService } from '../../services/mq-message.service';
|
|
5
|
+
import { MqMessageQueueService } from '../../services/mq-message-queue.service';
|
|
6
|
+
import { CodeGenerationOptions, QueuesModuleOptions } from "../../interfaces";
|
|
7
|
+
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
8
|
+
import generateCodeQueueOptions from './generate-code-queue-options';
|
|
9
|
+
import { SolidFieldType } from 'src/dtos/create-field-metadata.dto';
|
|
10
|
+
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
11
|
+
|
|
12
|
+
@Injectable()
|
|
13
|
+
export class GenerateCodeSubscriber extends DatabaseSubscriber<CodeGenerationOptions> {
|
|
14
|
+
private readonly generateCodeSubscriberLogger = new Logger(GenerateCodeSubscriber.name);
|
|
15
|
+
|
|
16
|
+
constructor(
|
|
17
|
+
readonly mqMessageService: MqMessageService,
|
|
18
|
+
readonly mqMessageQueueService: MqMessageQueueService,
|
|
19
|
+
@Inject(forwardRef(() => ModelMetadataService))
|
|
20
|
+
readonly modelMetadataService: ModelMetadataService,
|
|
21
|
+
) {
|
|
22
|
+
super(mqMessageService, mqMessageQueueService);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
options(): QueuesModuleOptions {
|
|
26
|
+
return {
|
|
27
|
+
...generateCodeQueueOptions
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async subscribe(message: QueueMessage<CodeGenerationOptions>) {
|
|
32
|
+
this.generateCodeSubscriberLogger.debug(`Received message: ${JSON.stringify(message)}`);
|
|
33
|
+
|
|
34
|
+
const codeGnerationOptions = message.payload;
|
|
35
|
+
|
|
36
|
+
const { model, removeFieldCodeOuput, refreshModelCodeOutput } = await this.modelMetadataService.generateCode(codeGnerationOptions);
|
|
37
|
+
|
|
38
|
+
// Generate the code for models which are linked to fields having an inverse relation
|
|
39
|
+
const coModelSingularNames = model.fields.
|
|
40
|
+
filter(field => field.type === SolidFieldType.relation && field.relationCreateInverse === true)
|
|
41
|
+
.map(field => field.relationCoModelSingularName);
|
|
42
|
+
|
|
43
|
+
for (const singularName of coModelSingularNames) {
|
|
44
|
+
const coModel = await this.modelMetadataService.findOneBySingularName(singularName);
|
|
45
|
+
const inverseOptions: CodeGenerationOptions = {
|
|
46
|
+
modelId: coModel.id,
|
|
47
|
+
dryRun: codeGnerationOptions.dryRun
|
|
48
|
+
};
|
|
49
|
+
await this.modelMetadataService.generateCode(inverseOptions);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
await this.modelMetadataService.generateVAMConfig(model.id);
|
|
53
|
+
|
|
54
|
+
return `${removeFieldCodeOuput} \n ${refreshModelCodeOutput}`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
|
|
3
|
+
import testQueueConfig from './test-queue-db-options';
|
|
4
|
+
import { MqMessageQueueService } from '../../services/mq-message-queue.service';
|
|
5
|
+
import { MqMessageService } from '../../services/mq-message.service';
|
|
6
|
+
import { QueuesModuleOptions } from "../../interfaces";
|
|
7
|
+
import { DatabasePublisher } from 'src/services/queues/database-publisher.service';
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@Injectable()
|
|
11
|
+
export class TestQueueDbPublisher extends DatabasePublisher<any> {
|
|
12
|
+
constructor(
|
|
13
|
+
protected readonly mqMessageService: MqMessageService,
|
|
14
|
+
protected readonly mqMessageQueueService: MqMessageQueueService,
|
|
15
|
+
) {
|
|
16
|
+
super(mqMessageService, mqMessageQueueService);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
options(): QueuesModuleOptions {
|
|
20
|
+
return {
|
|
21
|
+
...testQueueConfig
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Injectable, Logger } from '@nestjs/common';
|
|
2
|
+
|
|
3
|
+
import { QueueMessage } from 'src/interfaces/mq';
|
|
4
|
+
import testQueueConfig from './test-queue-db-options';
|
|
5
|
+
import { MqMessageService } from '../../services/mq-message.service';
|
|
6
|
+
import { MqMessageQueueService } from '../../services/mq-message-queue.service';
|
|
7
|
+
import { QueuesModuleOptions } from "../../interfaces";
|
|
8
|
+
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
9
|
+
|
|
10
|
+
@Injectable()
|
|
11
|
+
export class TestQueueDbSubscriber extends DatabaseSubscriber<any> {
|
|
12
|
+
private readonly testQueueLogger = new Logger(TestQueueDbSubscriber.name);
|
|
13
|
+
constructor(
|
|
14
|
+
readonly mqMessageService: MqMessageService,
|
|
15
|
+
readonly mqMessageQueueService: MqMessageQueueService,
|
|
16
|
+
) {
|
|
17
|
+
super(mqMessageService, mqMessageQueueService);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
options(): QueuesModuleOptions {
|
|
21
|
+
return {
|
|
22
|
+
...testQueueConfig
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
subscribe(message: QueueMessage<any>) {
|
|
27
|
+
// console.log(`Received message ${JSON.stringify(message)}`);
|
|
28
|
+
this.testQueueLogger.debug(`Received message: ${JSON.stringify(message)}`);
|
|
29
|
+
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
// Simulate some processing time
|
|
32
|
+
setTimeout(() => {
|
|
33
|
+
this.testQueueLogger.debug(`Processed message: ${JSON.stringify(message)}`);
|
|
34
|
+
resolve({ status: 'success', messageId: message.messageId, message: `Processed message` });
|
|
35
|
+
}, 10000); // Simulate 1 second processing time
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BrokerType } from "../../interfaces";
|
|
2
|
+
|
|
3
|
+
const QUEUE_NAME = 'test_queue_db';
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
name: 'queueTestDb',
|
|
7
|
+
type: BrokerType.Database,
|
|
8
|
+
queueName: QUEUE_NAME,
|
|
9
|
+
// receive: async (message: QueueMessage<any>) => { // Default receive handler
|
|
10
|
+
// console.log(`Received message: ${JSON.stringify(message)} from queue ${MAIL_QUEUE_NAME}`);
|
|
11
|
+
// return 'Received';
|
|
12
|
+
// },
|
|
13
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import { RabbitMqPublisher } from 'src/services/rabbitmq-publisher.service';
|
|
3
|
+
import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
|
|
4
4
|
import mailQueueOptions from './email-queue-options';
|
|
5
5
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
6
6
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
3
|
import mailQueueOptions from './email-queue-options';
|
|
4
|
-
import { RabbitMqSubscriber } from 'src/services/rabbitmq-subscriber.service';
|
|
4
|
+
import { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';
|
|
5
5
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
6
6
|
import { SMTPEMailService } from '../services/mail/SMTPEmailService';
|
|
7
7
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import { RabbitMqPublisher } from 'src/services/rabbitmq-publisher.service';
|
|
3
|
+
import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
|
|
4
4
|
import otpQueueOptions from './otp-queue-options';
|
|
5
5
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
6
6
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
3
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
4
|
-
import { RabbitMqSubscriber } from 'src/services/rabbitmq-subscriber.service';
|
|
4
|
+
import { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';
|
|
5
5
|
import { Msg91OTPService } from '../services/sms/Msg91OTPService';
|
|
6
6
|
import otpQueueOptions from './otp-queue-options';
|
|
7
7
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import { RabbitMqPublisher } from 'src/services/rabbitmq-publisher.service';
|
|
4
|
-
import testQueueConfig from './test-queue
|
|
3
|
+
import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
|
|
4
|
+
import testQueueConfig from './test-queue-options';
|
|
5
5
|
import { MqMessageQueueService } from '../services/mq-message-queue.service';
|
|
6
6
|
import { MqMessageService } from '../services/mq-message.service';
|
|
7
7
|
import { QueuesModuleOptions } from "../interfaces";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Injectable, Logger } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import { RabbitMqSubscriber } from 'src/services/rabbitmq-subscriber.service';
|
|
3
|
+
import { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';
|
|
4
4
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
5
|
-
import testQueueConfig from './test-queue
|
|
5
|
+
import testQueueConfig from './test-queue-options';
|
|
6
6
|
import { MqMessageService } from '../services/mq-message.service';
|
|
7
7
|
import { MqMessageQueueService } from '../services/mq-message-queue.service';
|
|
8
8
|
import { QueuesModuleOptions } from "../interfaces";
|
|
@@ -26,5 +26,13 @@ export class TestQueueSubscriber extends RabbitMqSubscriber<any> {
|
|
|
26
26
|
subscribe(message: QueueMessage<any>) {
|
|
27
27
|
// console.log(`Received message ${JSON.stringify(message)}`);
|
|
28
28
|
this.testQueueLogger.debug(`Received message: ${JSON.stringify(message)}`);
|
|
29
|
+
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
// Simulate some processing time
|
|
32
|
+
setTimeout(() => {
|
|
33
|
+
this.testQueueLogger.debug(`Processed message: ${JSON.stringify(message)}`);
|
|
34
|
+
resolve({ status: 'success', messageId: message.messageId, message: `Processed message` });
|
|
35
|
+
}, 10000); // Simulate 1 second processing time
|
|
36
|
+
});
|
|
29
37
|
}
|
|
30
38
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import { RabbitMqPublisher } from 'src/services/rabbitmq-publisher.service';
|
|
3
|
+
import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
|
|
4
4
|
import smsQueueOptions from './sms-queue-options';
|
|
5
5
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
6
6
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import { RabbitMqSubscriber } from 'src/services/rabbitmq-subscriber.service';
|
|
3
|
+
import { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';
|
|
4
4
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
5
5
|
import smsQueueOptions from './sms-queue-options';
|
|
6
6
|
import { Msg91SMSService } from '../services/sms/Msg91SMSService';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import { RabbitMqPublisher } from 'src/services/rabbitmq-publisher.service';
|
|
3
|
+
import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
|
|
4
4
|
import whatsappQueueOptions from './whatsapp-queue-options';
|
|
5
5
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
6
6
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import { RabbitMqSubscriber } from 'src/services/rabbitmq-subscriber.service';
|
|
3
|
+
import { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';
|
|
4
4
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
5
5
|
import whatsappQueueOptions from './whatsapp-queue-options';
|
|
6
6
|
import { Msg91WhatsappService } from '../services/whatsapp/Msg91WhatsappService';
|