@solidstarters/solid-core 1.2.145 → 1.2.148
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/config/common.config.d.ts +10 -0
- package/dist/config/common.config.d.ts.map +1 -1
- package/dist/config/common.config.js +6 -1
- package/dist/config/common.config.js.map +1 -1
- package/dist/decorators/mail-provider.decorator.d.ts +3 -0
- package/dist/decorators/mail-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/mail-provider.decorator.js +11 -0
- package/dist/decorators/mail-provider.decorator.js.map +1 -0
- package/dist/factories/mail.factory.d.ts +14 -0
- package/dist/factories/mail.factory.d.ts.map +1 -0
- package/dist/factories/mail.factory.js +50 -0
- package/dist/factories/mail.factory.js.map +1 -0
- package/dist/helpers/solid-registry.d.ts +3 -0
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +7 -0
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +5 -5
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/api-email-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/api-email-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/api-email-subscriber-database.service.js +6 -3
- package/dist/jobs/database/api-email-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.d.ts +3 -1
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.js +6 -3
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.js.map +1 -1
- package/dist/jobs/database/generate-code-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/generate-code-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/generate-code-subscriber-database.service.js +6 -3
- package/dist/jobs/database/generate-code-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/otp-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/otp-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/otp-subscriber-database.service.js +5 -2
- package/dist/jobs/database/otp-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/sms-subscriber-database.service.d.ts +4 -2
- package/dist/jobs/database/sms-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/sms-subscriber-database.service.js +7 -4
- package/dist/jobs/database/sms-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/{email-publisher-database.service.d.ts → smtp-email-publisher-database.service.d.ts} +2 -2
- package/dist/jobs/database/smtp-email-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/{email-publisher-database.service.js → smtp-email-publisher-database.service.js} +8 -8
- package/dist/jobs/database/smtp-email-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/{email-queue-options-database.d.ts → smtp-email-queue-options-database.d.ts} +1 -1
- package/dist/jobs/database/smtp-email-queue-options-database.d.ts.map +1 -0
- package/dist/jobs/database/{email-queue-options-database.js → smtp-email-queue-options-database.js} +1 -1
- package/dist/jobs/database/smtp-email-queue-options-database.js.map +1 -0
- package/dist/jobs/database/{email-subscriber-database.service.d.ts → smtp-email-subscriber-database.service.d.ts} +6 -4
- package/dist/jobs/database/smtp-email-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/{email-subscriber-database.service.js → smtp-email-subscriber-database.service.js} +14 -11
- package/dist/jobs/database/smtp-email-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/test-queue-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/test-queue-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/test-queue-subscriber-database.service.js +6 -3
- package/dist/jobs/database/test-queue-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +5 -2
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/twilio-sms-publisher-database.service.d.ts +11 -0
- package/dist/jobs/database/twilio-sms-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/twilio-sms-publisher-database.service.js +39 -0
- package/dist/jobs/database/twilio-sms-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/twilio-sms-queue-database-options.d.ts +8 -0
- package/dist/jobs/database/twilio-sms-queue-database-options.d.ts.map +1 -0
- package/dist/jobs/database/twilio-sms-queue-database-options.js +10 -0
- package/dist/jobs/database/twilio-sms-queue-database-options.js.map +1 -0
- package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts +17 -0
- package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/twilio-sms-subscriber-database.service.js +48 -0
- package/dist/jobs/database/twilio-sms-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/whatsapp-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/whatsapp-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/whatsapp-subscriber-database.service.js +6 -3
- package/dist/jobs/database/whatsapp-subscriber-database.service.js.map +1 -1
- package/dist/jobs/sms-subscriber.service.d.ts +1 -1
- package/dist/jobs/sms-subscriber.service.js +1 -1
- package/dist/jobs/sms-subscriber.service.js.map +1 -1
- package/dist/jobs/{email-publisher.service.d.ts → smtp-email-publisher.service.d.ts} +2 -2
- package/dist/jobs/smtp-email-publisher.service.d.ts.map +1 -0
- package/dist/jobs/{email-publisher.service.js → smtp-email-publisher.service.js} +8 -8
- package/dist/jobs/smtp-email-publisher.service.js.map +1 -0
- package/dist/jobs/{email-queue-options.d.ts → smtp-email-queue-options.d.ts} +1 -1
- package/dist/jobs/smtp-email-queue-options.d.ts.map +1 -0
- package/dist/jobs/{email-queue-options.js → smtp-email-queue-options.js} +1 -1
- package/dist/jobs/smtp-email-queue-options.js.map +1 -0
- package/dist/jobs/{email-subscriber.service.d.ts → smtp-email-subscriber.service.d.ts} +3 -3
- package/dist/jobs/smtp-email-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/{email-subscriber.service.js → smtp-email-subscriber.service.js} +8 -8
- package/dist/jobs/smtp-email-subscriber.service.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +42 -31
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +3 -3
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +16 -12
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/mail/elastic-email.service.d.ts.map +1 -1
- package/dist/services/mail/elastic-email.service.js +2 -0
- package/dist/services/mail/elastic-email.service.js.map +1 -1
- package/dist/services/mail/smtp-email.service.d.ts +6 -6
- package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
- package/dist/services/mail/smtp-email.service.js +17 -11
- package/dist/services/mail/smtp-email.service.js.map +1 -1
- package/dist/services/poller.service.d.ts +24 -0
- package/dist/services/poller.service.d.ts.map +1 -0
- package/dist/services/poller.service.js +131 -0
- package/dist/services/poller.service.js.map +1 -0
- package/dist/services/queues/database-subscriber.service.d.ts +4 -1
- package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/database-subscriber.service.js +13 -13
- package/dist/services/queues/database-subscriber.service.js.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.d.ts +2 -2
- package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
- package/dist/services/sms/Msg91OTPService.js.map +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91SMSService.js.map +1 -1
- package/dist/services/sms/TwilioSMSService.d.ts +18 -0
- package/dist/services/sms/TwilioSMSService.d.ts.map +1 -0
- package/dist/services/sms/TwilioSMSService.js +115 -0
- package/dist/services/sms/TwilioSMSService.js.map +1 -0
- package/dist/services/solid-introspect.service.d.ts +1 -0
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +14 -0
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +21 -8
- package/dist/solid-core.module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/src/config/common.config.ts +6 -1
- package/src/decorators/mail-provider.decorator.ts +7 -0
- package/src/factories/mail.factory.ts +38 -0
- package/src/helpers/solid-registry.ts +9 -0
- package/src/index.ts +10 -3
- package/src/interfaces.ts +11 -5
- package/src/jobs/database/api-email-subscriber-database.service.ts +3 -1
- package/src/jobs/database/computed-field-evaluation-subscriber.service.ts +4 -2
- package/src/jobs/database/generate-code-subscriber-database.service.ts +3 -1
- package/src/jobs/database/otp-subscriber-database.service.ts +3 -1
- package/src/jobs/database/sms-subscriber-database.service.ts +4 -2
- package/src/jobs/database/{email-publisher-database.service.ts → smtp-email-publisher-database.service.ts} +2 -2
- package/src/jobs/database/{email-subscriber-database.service.ts → smtp-email-subscriber-database.service.ts} +5 -3
- package/src/jobs/database/test-queue-subscriber-database.service.ts +3 -1
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +3 -1
- package/src/jobs/database/twilio-sms-publisher-database.service.ts +23 -0
- package/src/jobs/database/twilio-sms-queue-database-options.ts +9 -0
- package/src/jobs/database/twilio-sms-subscriber-database.service.ts +32 -0
- package/src/jobs/database/whatsapp-subscriber-database.service.ts +3 -1
- package/src/jobs/sms-subscriber.service.ts +1 -1
- package/src/jobs/{email-publisher.service.ts → smtp-email-publisher.service.ts} +2 -2
- package/src/jobs/{email-subscriber.service.ts → smtp-email-subscriber.service.ts} +2 -2
- package/src/seeders/module-metadata-seeder.service.ts +45 -42
- package/src/services/authentication.service.ts +24 -9
- package/src/services/mail/elastic-email.service.ts +2 -0
- package/src/services/mail/smtp-email.service.ts +48 -21
- package/src/services/poller.service.ts +163 -0
- package/src/services/queues/database-subscriber.service.ts +39 -12
- package/src/services/sms/Msg91BaseSMSService.ts +2 -2
- package/src/services/sms/Msg91OTPService.ts +1 -1
- package/src/services/sms/Msg91SMSService.ts +1 -1
- package/src/services/sms/TwilioSMSService.ts +118 -0
- package/src/services/solid-introspect.service.ts +21 -5
- package/src/solid-core.module.ts +24 -8
- package/dist/jobs/database/email-publisher-database.service.d.ts.map +0 -1
- package/dist/jobs/database/email-publisher-database.service.js.map +0 -1
- package/dist/jobs/database/email-queue-options-database.d.ts.map +0 -1
- package/dist/jobs/database/email-queue-options-database.js.map +0 -1
- package/dist/jobs/database/email-subscriber-database.service.d.ts.map +0 -1
- package/dist/jobs/database/email-subscriber-database.service.js.map +0 -1
- package/dist/jobs/email-publisher.service.d.ts.map +0 -1
- package/dist/jobs/email-publisher.service.js.map +0 -1
- package/dist/jobs/email-queue-options.d.ts.map +0 -1
- package/dist/jobs/email-queue-options.js.map +0 -1
- package/dist/jobs/email-subscriber.service.d.ts.map +0 -1
- package/dist/jobs/email-subscriber.service.js.map +0 -1
- /package/src/jobs/database/{email-queue-options-database.ts → smtp-email-queue-options-database.ts} +0 -0
- /package/src/jobs/{email-queue-options.ts → smtp-email-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.148",
|
|
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",
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"reflect-metadata": "^0.1.13",
|
|
68
68
|
"rxjs": "^7.8.1",
|
|
69
69
|
"swagger-ui-express": "^5.0.0",
|
|
70
|
+
"twilio": "^5.8.0",
|
|
70
71
|
"uuid": "^9.0.1",
|
|
71
72
|
"xlsx": "^0.18.5"
|
|
72
73
|
},
|
|
@@ -87,10 +88,10 @@
|
|
|
87
88
|
"@nestjs/typeorm": "^10.0.1",
|
|
88
89
|
"nest-commander": "^3.12.5",
|
|
89
90
|
"nest-winston": "^1.9.7",
|
|
91
|
+
"nestjs-cls": "^5.4.3",
|
|
90
92
|
"typeorm": "^0.3.20",
|
|
91
93
|
"typeorm-naming-strategies": "^4.1.0",
|
|
92
|
-
"winston": "^3.17.0"
|
|
93
|
-
"nestjs-cls": "^5.4.3"
|
|
94
|
+
"winston": "^3.17.0"
|
|
94
95
|
},
|
|
95
96
|
"devDependencies": {
|
|
96
97
|
"@angular-devkit/schematics": "^19.2.6",
|
|
@@ -2,7 +2,7 @@ import { registerAs } from '@nestjs/config';
|
|
|
2
2
|
|
|
3
3
|
export default registerAs('common', () => {
|
|
4
4
|
return {
|
|
5
|
-
emailProvider: process.env.COMMON_EMAIL_PROVIDER,
|
|
5
|
+
emailProvider: process.env.COMMON_EMAIL_PROVIDER ?? "SMTPEMailService",
|
|
6
6
|
emailTemplateSeederFiles: process.env.COMMON_EMAIL_TEMPLATE_SEEDER_FILES,
|
|
7
7
|
smsProvider: process.env.COMMON_SMS_PROVIDER,
|
|
8
8
|
smsTemplateSeederFiles: process.env.COMMON_SMS_TEMPLATE_SEEDER_FILES,
|
|
@@ -23,6 +23,11 @@ export default registerAs('common', () => {
|
|
|
23
23
|
url: process.env.COMMON_MSG91_SMS_URL,
|
|
24
24
|
apiKey: process.env.COMMON_MSG91_SMS_API_KEY,
|
|
25
25
|
},
|
|
26
|
+
twilio: {
|
|
27
|
+
accountSid: process.env.COMMON_TWILIO_ACCOUNT_SID,
|
|
28
|
+
authToken: process.env.COMMON_TWILIO_AUTH_TOKEN,
|
|
29
|
+
number: process.env.COMMON_TWILIO_NUMBER,
|
|
30
|
+
},
|
|
26
31
|
shortUrl: {
|
|
27
32
|
apiUrl: process.env.COMMON_SHORT_URL_API_URL,
|
|
28
33
|
apiKey: process.env.COMMON_SHORT_URL_API_KEY,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Inject, Injectable, Logger } from "@nestjs/common";
|
|
2
|
+
import { ConfigType } from "@nestjs/config";
|
|
3
|
+
import { ModuleRef } from "@nestjs/core";
|
|
4
|
+
import commonConfig from "src/config/common.config";
|
|
5
|
+
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
6
|
+
import { IMail } from "src/interfaces";
|
|
7
|
+
|
|
8
|
+
function norm(s?: string) {
|
|
9
|
+
return s?.trim().toLowerCase();
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// This factory will be use to return a mail service instance, using the configured environment variables
|
|
13
|
+
@Injectable()
|
|
14
|
+
export class MailFactory {
|
|
15
|
+
private readonly logger = new Logger(this.constructor.name);
|
|
16
|
+
constructor(
|
|
17
|
+
private readonly moduleRef: ModuleRef, // Use the module ref to dynamically resolve the mail service
|
|
18
|
+
private readonly solidRegistry: SolidRegistry,
|
|
19
|
+
@Inject(commonConfig.KEY)
|
|
20
|
+
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
21
|
+
) { }
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
getMailService(): IMail {
|
|
25
|
+
const mailServiceName = this.commonConfiguration.emailProvider;
|
|
26
|
+
const mailProviders = this.solidRegistry.getMailProviders();
|
|
27
|
+
// Return the instance which matches the mailServiceName
|
|
28
|
+
if (!mailProviders.length) {
|
|
29
|
+
// throw new Error("No mail providers are registered.");
|
|
30
|
+
this.logger.error("No mail providers are registered.");
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const mailServiceProvider = mailProviders.find(provider => provider.name === mailServiceName);
|
|
34
|
+
|
|
35
|
+
return mailServiceProvider.instance as IMail;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
}
|
|
@@ -65,6 +65,11 @@ export class SolidRegistry {
|
|
|
65
65
|
private computedFieldMetadata: ComputedFieldMetadata[] = [];
|
|
66
66
|
private dashboardVariableSelectionProviders: Set<InstanceWrapper> = new Set();
|
|
67
67
|
private dashboardQuestionDataProviders: Set<InstanceWrapper> = new Set();
|
|
68
|
+
private mailProviders: Set<InstanceWrapper> = new Set();
|
|
69
|
+
|
|
70
|
+
registerMailProvider(mailProvider: InstanceWrapper): void {
|
|
71
|
+
this.mailProviders.add(mailProvider);
|
|
72
|
+
}
|
|
68
73
|
|
|
69
74
|
registerController(name: string, methodNames: string[]): void {
|
|
70
75
|
this.controllers.add({ name: name, methods: methodNames });
|
|
@@ -106,6 +111,10 @@ export class SolidRegistry {
|
|
|
106
111
|
this.modules = new Set(modules);
|
|
107
112
|
}
|
|
108
113
|
|
|
114
|
+
getMailProviders(): Array<InstanceWrapper> {
|
|
115
|
+
return Array.from(this.mailProviders);
|
|
116
|
+
}
|
|
117
|
+
|
|
109
118
|
getSeeders(): Array<InstanceWrapper> {
|
|
110
119
|
return Array.from(this.seeders);
|
|
111
120
|
}
|
package/src/index.ts
CHANGED
|
@@ -21,6 +21,8 @@ export * from './decorators/roles.decorator'
|
|
|
21
21
|
export * from './decorators/selection-provider.decorator'
|
|
22
22
|
export * from './decorators/solid-database-module.decorator'
|
|
23
23
|
export * from './decorators/solid-service.decorator'
|
|
24
|
+
export * from './decorators/mail-provider.decorator'
|
|
25
|
+
|
|
24
26
|
export * from './dtos/basic-filters.dto'
|
|
25
27
|
export * from './dtos/solid-request-context.dto'
|
|
26
28
|
export * from './dtos/change-password.dto'
|
|
@@ -177,9 +179,9 @@ export * from './services/scheduled-jobs/scheduler.service';
|
|
|
177
179
|
export * from './jobs/api-email-publisher.service'
|
|
178
180
|
export * from './jobs/api-email-queue-options'
|
|
179
181
|
export * from './jobs/api-email-subscriber.service'
|
|
180
|
-
export
|
|
181
|
-
export * from './jobs/email-queue-options'
|
|
182
|
-
export
|
|
182
|
+
export { SmtpEmailQueuePublisherRabbitmq, SmtpEmailQueuePublisherRabbitmq as EmailQueuePublisher } from './jobs/smtp-email-publisher.service' // alias for backward compatibility
|
|
183
|
+
export * from './jobs/smtp-email-queue-options'
|
|
184
|
+
export { SmtpEmailQueueSubscriberRabbitmq, SmtpEmailQueueSubscriberRabbitmq as EmailQueueSubscriber } from './jobs/smtp-email-subscriber.service' // alias for backward compatibility
|
|
183
185
|
export * from './jobs/otp-publisher.service'
|
|
184
186
|
export * from './jobs/otp-queue-options'
|
|
185
187
|
export * from './jobs/otp-subscriber.service'
|
|
@@ -241,6 +243,8 @@ export * from './services/short-url/tiny-url.service'
|
|
|
241
243
|
export * from './services/sms/Msg91BaseSMSService' //rename
|
|
242
244
|
export * from './services/sms/Msg91OTPService' //rename
|
|
243
245
|
export * from './services/sms/Msg91SMSService' //rename
|
|
246
|
+
export * from './services/sms/TwilioSMSService' //rename
|
|
247
|
+
export * from './services/poller.service'
|
|
244
248
|
export * from './services/sms-template.service'
|
|
245
249
|
export * from './services/solid-introspect.service'
|
|
246
250
|
export * from './services/user.service'
|
|
@@ -261,6 +265,9 @@ export * from './services/queues/publisher-factory.service'
|
|
|
261
265
|
export * from './services/queues/database-publisher.service'
|
|
262
266
|
export * from './services/queues/database-subscriber.service'
|
|
263
267
|
|
|
268
|
+
// Factories
|
|
269
|
+
export * from './factories/mail.factory'
|
|
270
|
+
|
|
264
271
|
// Repositories
|
|
265
272
|
export * from './repository/solid-base.repository'
|
|
266
273
|
export * from './repository/security-rule.repository'
|
package/src/interfaces.ts
CHANGED
|
@@ -159,7 +159,7 @@ export class EventDetails<T> {
|
|
|
159
159
|
) { }
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
export interface IMail {
|
|
162
|
+
export interface IMail<TResponse=unknown> {
|
|
163
163
|
sendEmail(
|
|
164
164
|
to: string,
|
|
165
165
|
subject: string,
|
|
@@ -169,7 +169,10 @@ export interface IMail {
|
|
|
169
169
|
attachments?: MailAttachment[],
|
|
170
170
|
parentEntity?: any,
|
|
171
171
|
parentEntityId?: any,
|
|
172
|
-
|
|
172
|
+
cc?: string[],
|
|
173
|
+
bcc?: string[],
|
|
174
|
+
from?: string,
|
|
175
|
+
): Promise<TResponse>;
|
|
173
176
|
|
|
174
177
|
sendEmailUsingTemplate(
|
|
175
178
|
to: string,
|
|
@@ -180,18 +183,21 @@ export interface IMail {
|
|
|
180
183
|
attachments?: MailAttachment[],
|
|
181
184
|
parentEntity?: any,
|
|
182
185
|
parentEntityId?: any,
|
|
183
|
-
|
|
186
|
+
cc?: string[],
|
|
187
|
+
bcc?: string[],
|
|
188
|
+
from?: string,
|
|
189
|
+
): Promise<TResponse>;
|
|
184
190
|
}
|
|
185
191
|
|
|
186
192
|
export interface ISMS {
|
|
187
|
-
sendSMS(to: string, body: string, shouldQueueSms: boolean): Promise<
|
|
193
|
+
sendSMS(to: string, body: string, shouldQueueSms: boolean): Promise<any>;
|
|
188
194
|
|
|
189
195
|
sendSMSUsingTemplate(
|
|
190
196
|
to: string,
|
|
191
197
|
templateName: string,
|
|
192
198
|
templateParams: any,
|
|
193
199
|
shouldQueueSms: boolean,
|
|
194
|
-
): Promise<
|
|
200
|
+
): Promise<any>;
|
|
195
201
|
}
|
|
196
202
|
|
|
197
203
|
export interface MailAttachmentWrapper {
|
|
@@ -7,6 +7,7 @@ import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
|
7
7
|
import { ElasticEmailService } from 'src/services/mail/elastic-email.service';
|
|
8
8
|
import { QueuesModuleOptions } from 'src/interfaces';
|
|
9
9
|
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
10
|
+
import { PollerService } from 'src/services/poller.service';
|
|
10
11
|
|
|
11
12
|
@Injectable()
|
|
12
13
|
export class ApiEmailQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
@@ -14,8 +15,9 @@ export class ApiEmailQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
|
14
15
|
private readonly emailService: ElasticEmailService,
|
|
15
16
|
readonly mqMessageService: MqMessageService,
|
|
16
17
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
18
|
+
readonly poller: PollerService,
|
|
17
19
|
) {
|
|
18
|
-
super(mqMessageService, mqMessageQueueService);
|
|
20
|
+
super(mqMessageService, mqMessageQueueService, poller);
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
options(): QueuesModuleOptions {
|
|
@@ -7,15 +7,17 @@ import { MqMessageService } from "src/services/mq-message.service";
|
|
|
7
7
|
import { DatabaseSubscriber } from "src/services/queues/database-subscriber.service";
|
|
8
8
|
import { ComputedFieldEvaluationPayload } from "src/subscribers/computed-entity-field.subscriber";
|
|
9
9
|
import computedFieldEvaluationQueueOptions from "./computed-field-evaluation-queue-options";
|
|
10
|
+
import { PollerService } from "src/services/poller.service";
|
|
10
11
|
|
|
11
12
|
@Injectable()
|
|
12
13
|
export class ComputedFieldEvaluationSubscriber extends DatabaseSubscriber<ComputedFieldEvaluationPayload> {
|
|
13
14
|
constructor(
|
|
14
15
|
readonly mqMessageService: MqMessageService,
|
|
15
16
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
16
|
-
readonly solidRegistry: SolidRegistry
|
|
17
|
+
readonly solidRegistry: SolidRegistry,
|
|
18
|
+
readonly poller: PollerService,
|
|
17
19
|
) {
|
|
18
|
-
super(mqMessageService, mqMessageQueueService);
|
|
20
|
+
super(mqMessageService, mqMessageQueueService, poller);
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
options(): QueuesModuleOptions {
|
|
@@ -8,6 +8,7 @@ import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.serv
|
|
|
8
8
|
import generateCodeQueueOptions from './generate-code-queue-options-database';
|
|
9
9
|
import { SolidFieldType } from 'src/dtos/create-field-metadata.dto';
|
|
10
10
|
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
11
|
+
import { PollerService } from 'src/services/poller.service';
|
|
11
12
|
|
|
12
13
|
@Injectable()
|
|
13
14
|
export class GenerateCodeSubscriberDatabase extends DatabaseSubscriber<CodeGenerationOptions> {
|
|
@@ -16,10 +17,11 @@ export class GenerateCodeSubscriberDatabase extends DatabaseSubscriber<CodeGener
|
|
|
16
17
|
constructor(
|
|
17
18
|
readonly mqMessageService: MqMessageService,
|
|
18
19
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
20
|
+
readonly poller: PollerService,
|
|
19
21
|
@Inject(forwardRef(() => ModelMetadataService))
|
|
20
22
|
readonly modelMetadataService: ModelMetadataService,
|
|
21
23
|
) {
|
|
22
|
-
super(mqMessageService, mqMessageQueueService);
|
|
24
|
+
super(mqMessageService, mqMessageQueueService, poller);
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
options(): QueuesModuleOptions {
|
|
@@ -7,15 +7,17 @@ import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
|
7
7
|
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
8
8
|
import { Msg91OTPService } from 'src/services/sms/Msg91OTPService';
|
|
9
9
|
import { QueuesModuleOptions } from 'src/interfaces';
|
|
10
|
+
import { PollerService } from 'src/services/poller.service';
|
|
10
11
|
|
|
11
12
|
@Injectable()
|
|
12
13
|
export class OTPQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
13
14
|
constructor(
|
|
14
15
|
private readonly otpService: Msg91OTPService,
|
|
15
16
|
readonly mqMessageService: MqMessageService,
|
|
17
|
+
readonly poller: PollerService,
|
|
16
18
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
17
19
|
) {
|
|
18
|
-
super(mqMessageService, mqMessageQueueService);
|
|
20
|
+
super(mqMessageService, mqMessageQueueService, poller);
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
options(): QueuesModuleOptions {
|
|
@@ -7,6 +7,7 @@ import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
|
7
7
|
import { Msg91SMSService } from 'src/services/sms/Msg91SMSService';
|
|
8
8
|
import { QueuesModuleOptions } from 'src/interfaces';
|
|
9
9
|
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
10
|
+
import { PollerService } from 'src/services/poller.service';
|
|
10
11
|
|
|
11
12
|
@Injectable()
|
|
12
13
|
export class SmsQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
@@ -14,8 +15,9 @@ export class SmsQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
|
14
15
|
private readonly smsService: Msg91SMSService,
|
|
15
16
|
readonly mqMessageService: MqMessageService,
|
|
16
17
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
18
|
+
readonly poller: PollerService,
|
|
17
19
|
) {
|
|
18
|
-
super(mqMessageService, mqMessageQueueService);
|
|
20
|
+
super(mqMessageService, mqMessageQueueService, poller);
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
options(): QueuesModuleOptions {
|
|
@@ -25,6 +27,6 @@ export class SmsQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
subscribe(message: QueueMessage<any>) {
|
|
28
|
-
this.smsService.sendSMSSynchronously(message);
|
|
30
|
+
return this.smsService.sendSMSSynchronously(message);
|
|
29
31
|
}
|
|
30
32
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import mailQueueOptions from './email-queue-options-database';
|
|
3
|
+
import mailQueueOptions from './smtp-email-queue-options-database';
|
|
4
4
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
5
5
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
6
6
|
import { QueuesModuleOptions } from 'src/interfaces';
|
|
7
7
|
import { DatabasePublisher } from 'src/services/queues/database-publisher.service';
|
|
8
8
|
|
|
9
9
|
@Injectable()
|
|
10
|
-
export class
|
|
10
|
+
export class SmtpEmailQueuePublisherDatabase extends DatabasePublisher<any> {
|
|
11
11
|
constructor(
|
|
12
12
|
protected readonly mqMessageService: MqMessageService,
|
|
13
13
|
protected readonly mqMessageQueueService: MqMessageQueueService,
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import mailQueueOptions from './email-queue-options-database';
|
|
3
|
+
import mailQueueOptions from './smtp-email-queue-options-database';
|
|
4
4
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
5
5
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
6
6
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
7
7
|
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
8
8
|
import { SMTPEMailService } from 'src/services/mail/smtp-email.service';
|
|
9
9
|
import { QueuesModuleOptions } from 'src/interfaces';
|
|
10
|
+
import { PollerService } from 'src/services/poller.service';
|
|
10
11
|
|
|
11
12
|
@Injectable()
|
|
12
|
-
export class
|
|
13
|
+
export class SmtpEmailQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
13
14
|
constructor(
|
|
14
15
|
private readonly emailService: SMTPEMailService,
|
|
15
16
|
readonly mqMessageService: MqMessageService,
|
|
16
17
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
18
|
+
readonly poller: PollerService,
|
|
17
19
|
) {
|
|
18
|
-
super(mqMessageService, mqMessageQueueService);
|
|
20
|
+
super(mqMessageService, mqMessageQueueService, poller);
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
options(): QueuesModuleOptions {
|
|
@@ -6,6 +6,7 @@ import { MqMessageService } from '../../services/mq-message.service';
|
|
|
6
6
|
import { MqMessageQueueService } from '../../services/mq-message-queue.service';
|
|
7
7
|
import { QueuesModuleOptions } from "../../interfaces";
|
|
8
8
|
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
9
|
+
import { PollerService } from 'src/services/poller.service';
|
|
9
10
|
|
|
10
11
|
@Injectable()
|
|
11
12
|
export class TestQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
@@ -13,8 +14,9 @@ export class TestQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
|
13
14
|
constructor(
|
|
14
15
|
readonly mqMessageService: MqMessageService,
|
|
15
16
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
17
|
+
readonly poller: PollerService
|
|
16
18
|
) {
|
|
17
|
-
super(mqMessageService, mqMessageQueueService);
|
|
19
|
+
super(mqMessageService, mqMessageQueueService, poller);
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
options(): QueuesModuleOptions {
|
|
@@ -7,6 +7,7 @@ import { QueuesModuleOptions, TriggerMcpClientOptions } from "../../interfaces";
|
|
|
7
7
|
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
8
8
|
import triggerMcpClientQueueOptions from "./trigger-mcp-client-queue-options";
|
|
9
9
|
import { AiInteractionService } from 'src/services/ai-interaction.service';
|
|
10
|
+
import { PollerService } from 'src/services/poller.service';
|
|
10
11
|
|
|
11
12
|
@Injectable()
|
|
12
13
|
export class TriggerMcpClientSubscriberDatabase extends DatabaseSubscriber<TriggerMcpClientOptions> {
|
|
@@ -15,9 +16,10 @@ export class TriggerMcpClientSubscriberDatabase extends DatabaseSubscriber<Trigg
|
|
|
15
16
|
constructor(
|
|
16
17
|
readonly mqMessageService: MqMessageService,
|
|
17
18
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
19
|
+
readonly poller: PollerService,
|
|
18
20
|
readonly aiInteractionService: AiInteractionService,
|
|
19
21
|
) {
|
|
20
|
-
super(mqMessageService, mqMessageQueueService);
|
|
22
|
+
super(mqMessageService, mqMessageQueueService, poller);
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
options(): QueuesModuleOptions {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
|
|
3
|
+
import smsQueueOptions from './twilio-sms-queue-database-options';
|
|
4
|
+
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
5
|
+
import { MqMessageService } from 'src/services/mq-message.service';
|
|
6
|
+
import { QueuesModuleOptions } from 'src/interfaces';
|
|
7
|
+
import { DatabasePublisher } from 'src/services/queues/database-publisher.service';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class TwilioSmsQueuePublisherDatabase extends DatabasePublisher<any> {
|
|
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
|
+
...smsQueueOptions
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
|
|
3
|
+
import { QueueMessage } from 'src/interfaces/mq';
|
|
4
|
+
import smsQueueOptions from './twilio-sms-queue-database-options';
|
|
5
|
+
import { MqMessageService } from 'src/services/mq-message.service';
|
|
6
|
+
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
7
|
+
import { QueuesModuleOptions } from 'src/interfaces';
|
|
8
|
+
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
9
|
+
import { TwilioSMSService } from 'src/services/sms/TwilioSMSService';
|
|
10
|
+
import { PollerService } from 'src/services/poller.service';
|
|
11
|
+
|
|
12
|
+
@Injectable()
|
|
13
|
+
export class TwilioSmsQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
14
|
+
constructor(
|
|
15
|
+
private readonly smsService: TwilioSMSService,
|
|
16
|
+
readonly mqMessageService: MqMessageService,
|
|
17
|
+
readonly mqMessageQueueService: MqMessageQueueService,
|
|
18
|
+
readonly poller: PollerService,
|
|
19
|
+
) {
|
|
20
|
+
super(mqMessageService, mqMessageQueueService, poller);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
options(): QueuesModuleOptions {
|
|
24
|
+
return {
|
|
25
|
+
...smsQueueOptions
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
subscribe(message: QueueMessage<any>) {
|
|
30
|
+
return this.smsService.sendSMSSynchronously(message);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -8,6 +8,7 @@ import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
|
8
8
|
import { Msg91WhatsappService } from 'src/services/whatsapp/Msg91WhatsappService';
|
|
9
9
|
import { QueuesModuleOptions } from 'src/interfaces';
|
|
10
10
|
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
11
|
+
import { PollerService } from 'src/services/poller.service';
|
|
11
12
|
|
|
12
13
|
@Injectable()
|
|
13
14
|
export class WhatsappQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
@@ -15,8 +16,9 @@ export class WhatsappQueueSubscriberDatabase extends DatabaseSubscriber<any> {
|
|
|
15
16
|
private readonly whatsappService: Msg91WhatsappService,
|
|
16
17
|
readonly mqMessageService: MqMessageService,
|
|
17
18
|
readonly mqMessageQueueService: MqMessageQueueService,
|
|
19
|
+
readonly poller: PollerService,
|
|
18
20
|
) {
|
|
19
|
-
super(mqMessageService, mqMessageQueueService);
|
|
21
|
+
super(mqMessageService, mqMessageQueueService, poller);
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
options(): QueuesModuleOptions {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
3
|
import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
|
|
4
|
-
import mailQueueOptions from './email-queue-options';
|
|
4
|
+
import mailQueueOptions from './smtp-email-queue-options';
|
|
5
5
|
import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
6
6
|
import { MqMessageService } from 'src/services/mq-message.service';
|
|
7
7
|
import { QueuesModuleOptions } from "../interfaces";
|
|
8
8
|
|
|
9
9
|
@Injectable()
|
|
10
|
-
export class
|
|
10
|
+
export class SmtpEmailQueuePublisherRabbitmq extends RabbitMqPublisher<any> {
|
|
11
11
|
constructor(
|
|
12
12
|
protected readonly mqMessageService: MqMessageService,
|
|
13
13
|
protected readonly mqMessageQueueService: MqMessageQueueService,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
2
|
|
|
3
|
-
import mailQueueOptions from './email-queue-options';
|
|
3
|
+
import mailQueueOptions from './smtp-email-queue-options';
|
|
4
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/smtp-email.service';
|
|
@@ -9,7 +9,7 @@ import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
|
|
|
9
9
|
import { QueuesModuleOptions } from "../interfaces";
|
|
10
10
|
|
|
11
11
|
@Injectable()
|
|
12
|
-
export class
|
|
12
|
+
export class SmtpEmailQueueSubscriberRabbitmq extends RabbitMqSubscriber<any> {
|
|
13
13
|
constructor(
|
|
14
14
|
private readonly emailService: SMTPEMailService,
|
|
15
15
|
readonly mqMessageService: MqMessageService,
|