mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-22 00:19:04 +00:00
Fix/smtp creds env (#12634)
* submodule update commit * fix: updated smtp env creds * fix: updated smtp route, added base flag * feat: added smtp util service * fix: removed instanceSettings module * fix: updated email to use smtpUtil, removed instanceUtil * fix: added smtpmodule import * fix: removed instance settings module from email module
This commit is contained in:
parent
64a4eb3f9e
commit
f5230a8529
7 changed files with 47 additions and 15 deletions
|
|
@ -1 +1 @@
|
|||
Subproject commit 9aa23fc0aa78a84dd13dd7308fa3de63c9c553ff
|
||||
Subproject commit dfecbc41b216cea248245c862a0c362756c6b70d
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit 9099be6814072b4e37713af6f374868b027c95f8
|
||||
Subproject commit ec251e560902d7fc7cd5c97bfcc6de539e40cd13
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
import { DynamicModule } from '@nestjs/common';
|
||||
import { getImportPath } from '@modules/app/constants';
|
||||
import { WhiteLabellingModule } from '@modules/white-labelling/module';
|
||||
import { InstanceSettingsModule } from '@modules/instance-settings/module';
|
||||
import { DataSourcesModule } from '@modules/data-sources/module';
|
||||
import { SMTPModule } from '@modules/smtp/module';
|
||||
|
||||
export class EmailModule {
|
||||
static async register(configs?: { IS_GET_CONTEXT: boolean }): Promise<DynamicModule> {
|
||||
|
|
@ -14,8 +14,8 @@ export class EmailModule {
|
|||
module: EmailModule,
|
||||
imports: [
|
||||
await WhiteLabellingModule.register(configs),
|
||||
await InstanceSettingsModule.register(configs),
|
||||
await DataSourcesModule.register(configs),
|
||||
await SMTPModule.register(configs),
|
||||
],
|
||||
providers: [EmailService, EmailListener, EmailUtilService],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
import { IEmailUtilService } from '@modules/email/interfaces/IUtilService';
|
||||
import { INSTANCE_SETTINGS_TYPE, INSTANCE_SYSTEM_SETTINGS } from '@modules/instance-settings/constants';
|
||||
import { InstanceSettingsUtilService } from '@modules/instance-settings/util.service';
|
||||
import { WhiteLabellingUtilService } from '@modules/white-labelling/util.service';
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { SMTPUtilService } from '@modules/smtp/util.service';
|
||||
|
||||
@Injectable()
|
||||
export class EmailUtilService implements IEmailUtilService {
|
||||
constructor(
|
||||
protected readonly instanceSettingsUtilService: InstanceSettingsUtilService,
|
||||
protected readonly whiteLabellingUtilService: WhiteLabellingUtilService
|
||||
protected readonly whiteLabellingUtilService: WhiteLabellingUtilService,
|
||||
protected readonly smtpUtilService: SMTPUtilService
|
||||
) {}
|
||||
|
||||
async retrieveWhiteLabelSettings(organizationId?: string | null): Promise<any> {
|
||||
|
|
@ -17,7 +17,7 @@ export class EmailUtilService implements IEmailUtilService {
|
|||
}
|
||||
|
||||
async retrieveSmtpSettings(): Promise<any> {
|
||||
const smtpSetting = await this.instanceSettingsUtilService.getSettings(
|
||||
const smtpSetting = await this.smtpUtilService.getSmtpEnv(
|
||||
[
|
||||
INSTANCE_SYSTEM_SETTINGS.SMTP_ENABLED,
|
||||
INSTANCE_SYSTEM_SETTINGS.SMTP_DOMAIN,
|
||||
|
|
|
|||
|
|
@ -57,6 +57,6 @@ export function getDefaultInstanceSettings() {
|
|||
[INSTANCE_SYSTEM_SETTINGS.SMTP_PASSWORD]: process.env.SMTP_PASSWORD,
|
||||
[INSTANCE_SYSTEM_SETTINGS.SMTP_ENABLED]: process.env.SMTP_DISABLED === 'true' ? 'false' : 'true',
|
||||
[INSTANCE_SYSTEM_SETTINGS.SMTP_ENV_CONFIGURED]: 'true',
|
||||
[INSTANCE_SYSTEM_SETTINGS.SMTP_FROM_EMAIL]: process.env.DEFAULT_FROM_EMAIL
|
||||
[INSTANCE_SYSTEM_SETTINGS.SMTP_FROM_EMAIL]: process.env.DEFAULT_FROM_EMAIL,
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,12 +9,13 @@ export class SMTPModule {
|
|||
const importPath = await getImportPath(configs?.IS_GET_CONTEXT);
|
||||
const { SMTPService } = await import(`${importPath}/smtp/service`);
|
||||
const { SmtpController } = await import(`${importPath}/smtp/controller`);
|
||||
const { SMTPUtilService } = await import(`${importPath}/smtp/util.service`)
|
||||
const { SMTPUtilService } = await import(`${importPath}/smtp/util.service`);
|
||||
return {
|
||||
module: SMTPModule,
|
||||
imports: [await InstanceSettingsModule.register(configs)],
|
||||
controllers: [SmtpController],
|
||||
providers: [SMTPService, FeatureAbilityFactory, SMTPUtilService],
|
||||
exports: [SMTPUtilService],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,40 @@
|
|||
import { Injectable } from "@nestjs/common";
|
||||
import { ISMTPUtilService } from "./interfaces/IUtilService";
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { ISMTPUtilService } from './interfaces/IUtilService';
|
||||
import { getDefaultInstanceSettings } from '@modules/instance-settings/constants';
|
||||
import { InstanceSettingsUtilService } from '@modules/instance-settings/util.service';
|
||||
|
||||
@Injectable()
|
||||
export class SMTPUtilService implements ISMTPUtilService {
|
||||
getSmtpEnv(key?: string | string[], getAllData = false, type?: any): Promise<any> {
|
||||
throw new Error('Method not implemented.');
|
||||
constructor(protected instanceSettingsUtilService: InstanceSettingsUtilService) {}
|
||||
async getSmtpEnv(key?: string | string[], getAllData = false, type?: any): Promise<any> {
|
||||
const defaultInstanceSettings = getDefaultInstanceSettings();
|
||||
const instanceSmtpConfig = await this.instanceSettingsUtilService.getSettings(key, false, type);
|
||||
|
||||
if (instanceSmtpConfig.SMTP_ENV_CONFIGURED === 'true') {
|
||||
let settings = Object.keys(defaultInstanceSettings)
|
||||
.filter((e) => (Array.isArray(key) ? key.includes(e) : key === e))
|
||||
.map((e) => ({ key: e, value: defaultInstanceSettings[e] }));
|
||||
|
||||
if (!settings) {
|
||||
settings = [];
|
||||
}
|
||||
|
||||
if (key) {
|
||||
(Array.isArray(key) ? key : [key]).forEach((s) => {
|
||||
if (!settings.some((e) => e.key === s)) {
|
||||
settings.push({ key: s, value: null });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const instanceConfigs = {};
|
||||
settings?.forEach((config) => {
|
||||
instanceConfigs[config.key] = getAllData ? config : config.value;
|
||||
});
|
||||
|
||||
return Array.isArray(key) ? instanceConfigs : instanceConfigs[key];
|
||||
}
|
||||
|
||||
return instanceSmtpConfig;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue