feat: Simple nodemailer integration

This commit is contained in:
SauravDhakal
2026-03-07 07:38:50 +05:45
parent 496d689ec1
commit 6fc494687a
12 changed files with 266 additions and 7 deletions

View File

@@ -6,6 +6,7 @@ import { AuthGuard } from './guards/auth.guard';
import { UserModule } from 'src/user/user.module';
import { JwtModule } from '@nestjs/jwt';
import { RequestContextModule } from 'core/als/request-context.module';
import { MailModule } from 'core/mail/mail.module';
@Global()
@Module({
@@ -17,6 +18,11 @@ import { RequestContextModule } from 'core/als/request-context.module';
},
],
controllers: [AuthController],
imports: [UserModule, JwtModule, RequestContextModule],
imports: [
UserModule,
JwtModule,
RequestContextModule,
MailModule
],
})
export class AuthModule {}
export class AuthModule { }

View File

@@ -5,6 +5,8 @@ import * as bcrypt from 'bcrypt';
import { UserService } from 'src/user/user.service';
import { TokenInputType } from './types';
import { JwtService } from '@nestjs/jwt';
import { MailService } from 'core/mail/mail.service';
import EmailTemplates from 'common/emails';
@Injectable()
@Public()
@@ -12,7 +14,8 @@ export class AuthService {
constructor(
private readonly userService: UserService,
private readonly jwtService: JwtService,
) {}
private readonly mailService: MailService,
) { }
async register(dto: RegisterUserRequestDTO) {
const hashedPassword = await bcrypt.hash(dto.password, 10);
@@ -21,6 +24,11 @@ export class AuthService {
password: hashedPassword,
});
this.mailService.sendMail({
to: dto.email,
subject: "Welcome onboard",
body: EmailTemplates.welcomeToApp
})
return true;
}
@@ -50,9 +58,9 @@ export class AuthService {
};
}
logout() {}
logout() { }
resetPassword() {}
resetPassword() { }
// TODO: Use nest jwt
private async genSignedTokens(token: TokenInputType) {