fix: mailer module init issue
This commit is contained in:
@@ -4,7 +4,6 @@ import { AdminService } from './admin.service';
|
|||||||
import { PrismaModule } from '../prisma/prisma.module';
|
import { PrismaModule } from '../prisma/prisma.module';
|
||||||
import { PubSubModule } from '../pubsub/pubsub.module';
|
import { PubSubModule } from '../pubsub/pubsub.module';
|
||||||
import { UserModule } from '../user/user.module';
|
import { UserModule } from '../user/user.module';
|
||||||
import { MailerModule } from '../mailer/mailer.module';
|
|
||||||
import { TeamModule } from '../team/team.module';
|
import { TeamModule } from '../team/team.module';
|
||||||
import { TeamInvitationModule } from '../team-invitation/team-invitation.module';
|
import { TeamInvitationModule } from '../team-invitation/team-invitation.module';
|
||||||
import { TeamEnvironmentsModule } from '../team-environments/team-environments.module';
|
import { TeamEnvironmentsModule } from '../team-environments/team-environments.module';
|
||||||
@@ -19,7 +18,6 @@ import { InfraConfigModule } from 'src/infra-config/infra-config.module';
|
|||||||
PrismaModule,
|
PrismaModule,
|
||||||
PubSubModule,
|
PubSubModule,
|
||||||
UserModule,
|
UserModule,
|
||||||
MailerModule,
|
|
||||||
TeamModule,
|
TeamModule,
|
||||||
TeamInvitationModule,
|
TeamInvitationModule,
|
||||||
TeamEnvironmentsModule,
|
TeamEnvironmentsModule,
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import { AppController } from './app.controller';
|
|||||||
import { ConfigModule, ConfigService } from '@nestjs/config';
|
import { ConfigModule, ConfigService } from '@nestjs/config';
|
||||||
import { InfraConfigModule } from './infra-config/infra-config.module';
|
import { InfraConfigModule } from './infra-config/infra-config.module';
|
||||||
import { loadInfraConfiguration } from './infra-config/helper';
|
import { loadInfraConfiguration } from './infra-config/helper';
|
||||||
|
import { MailerModule } from './mailer/mailer.module';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -79,6 +80,7 @@ import { loadInfraConfiguration } from './infra-config/helper';
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
|
MailerModule.register(),
|
||||||
UserModule,
|
UserModule,
|
||||||
AuthModule.register(),
|
AuthModule.register(),
|
||||||
AdminModule,
|
AdminModule,
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Module } from '@nestjs/common';
|
|||||||
import { AuthService } from './auth.service';
|
import { AuthService } from './auth.service';
|
||||||
import { AuthController } from './auth.controller';
|
import { AuthController } from './auth.controller';
|
||||||
import { UserModule } from 'src/user/user.module';
|
import { UserModule } from 'src/user/user.module';
|
||||||
import { MailerModule } from 'src/mailer/mailer.module';
|
|
||||||
import { PrismaModule } from 'src/prisma/prisma.module';
|
import { PrismaModule } from 'src/prisma/prisma.module';
|
||||||
import { PassportModule } from '@nestjs/passport';
|
import { PassportModule } from '@nestjs/passport';
|
||||||
import { JwtModule } from '@nestjs/jwt';
|
import { JwtModule } from '@nestjs/jwt';
|
||||||
@@ -19,7 +18,6 @@ import { loadInfraConfiguration } from 'src/infra-config/helper';
|
|||||||
imports: [
|
imports: [
|
||||||
PrismaModule,
|
PrismaModule,
|
||||||
UserModule,
|
UserModule,
|
||||||
MailerModule,
|
|
||||||
PassportModule,
|
PassportModule,
|
||||||
JwtModule.registerAsync({
|
JwtModule.registerAsync({
|
||||||
imports: [ConfigModule],
|
imports: [ConfigModule],
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Module } from '@nestjs/common';
|
import { Global, Module } from '@nestjs/common';
|
||||||
import { MailerModule as NestMailerModule } from '@nestjs-modules/mailer';
|
import { MailerModule as NestMailerModule } from '@nestjs-modules/mailer';
|
||||||
import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handlebars.adapter';
|
import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handlebars.adapter';
|
||||||
import { MailerService } from './mailer.service';
|
import { MailerService } from './mailer.service';
|
||||||
@@ -8,28 +8,41 @@ import {
|
|||||||
MAILER_SMTP_URL_UNDEFINED,
|
MAILER_SMTP_URL_UNDEFINED,
|
||||||
} from 'src/errors';
|
} from 'src/errors';
|
||||||
import { ConfigService } from '@nestjs/config';
|
import { ConfigService } from '@nestjs/config';
|
||||||
|
import { loadInfraConfiguration } from 'src/infra-config/helper';
|
||||||
|
|
||||||
|
@Global()
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [],
|
||||||
NestMailerModule.forRootAsync({
|
|
||||||
inject: [ConfigService],
|
|
||||||
useFactory: async (configService: ConfigService) => ({
|
|
||||||
transport:
|
|
||||||
configService.get('INFRA.MAILER_SMTP_URL') ??
|
|
||||||
throwErr(MAILER_SMTP_URL_UNDEFINED),
|
|
||||||
defaults: {
|
|
||||||
from:
|
|
||||||
configService.get('INFRA.MAILER_ADDRESS_FROM') ??
|
|
||||||
throwErr(MAILER_FROM_ADDRESS_UNDEFINED),
|
|
||||||
},
|
|
||||||
template: {
|
|
||||||
dir: __dirname + '/templates',
|
|
||||||
adapter: new HandlebarsAdapter(),
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
providers: [MailerService],
|
providers: [MailerService],
|
||||||
exports: [MailerService],
|
exports: [MailerService],
|
||||||
})
|
})
|
||||||
export class MailerModule {}
|
export class MailerModule {
|
||||||
|
static async register() {
|
||||||
|
const env = await loadInfraConfiguration();
|
||||||
|
|
||||||
|
let mailerSmtpUrl = env.INFRA.MAILER_SMTP_URL;
|
||||||
|
let mailerAddressFrom = env.INFRA.MAILER_ADDRESS_FROM;
|
||||||
|
|
||||||
|
if (!env.INFRA.MAILER_SMTP_URL || !env.INFRA.MAILER_ADDRESS_FROM) {
|
||||||
|
const config = new ConfigService();
|
||||||
|
mailerSmtpUrl = config.get('MAILER_SMTP_URL');
|
||||||
|
mailerAddressFrom = config.get('MAILER_ADDRESS_FROM');
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
module: MailerModule,
|
||||||
|
imports: [
|
||||||
|
NestMailerModule.forRoot({
|
||||||
|
transport: mailerSmtpUrl ?? throwErr(MAILER_SMTP_URL_UNDEFINED),
|
||||||
|
defaults: {
|
||||||
|
from: mailerAddressFrom ?? throwErr(MAILER_FROM_ADDRESS_UNDEFINED),
|
||||||
|
},
|
||||||
|
template: {
|
||||||
|
dir: __dirname + '/templates',
|
||||||
|
adapter: new HandlebarsAdapter(),
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { Module } from '@nestjs/common';
|
import { Module } from '@nestjs/common';
|
||||||
import { MailerModule } from 'src/mailer/mailer.module';
|
|
||||||
import { PrismaModule } from 'src/prisma/prisma.module';
|
import { PrismaModule } from 'src/prisma/prisma.module';
|
||||||
import { PubSubModule } from 'src/pubsub/pubsub.module';
|
import { PubSubModule } from 'src/pubsub/pubsub.module';
|
||||||
import { TeamModule } from 'src/team/team.module';
|
import { TeamModule } from 'src/team/team.module';
|
||||||
@@ -12,7 +11,7 @@ import { TeamInviteeGuard } from './team-invitee.guard';
|
|||||||
import { TeamTeamInviteExtResolver } from './team-teaminvite-ext.resolver';
|
import { TeamTeamInviteExtResolver } from './team-teaminvite-ext.resolver';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [PrismaModule, TeamModule, PubSubModule, UserModule, MailerModule],
|
imports: [PrismaModule, TeamModule, PubSubModule, UserModule],
|
||||||
providers: [
|
providers: [
|
||||||
TeamInvitationService,
|
TeamInvitationService,
|
||||||
TeamInvitationResolver,
|
TeamInvitationResolver,
|
||||||
|
|||||||
Reference in New Issue
Block a user