Make email service initialization asynchronous
Build And Push Image / docker (push) Successful in 3m10s
Details
Build And Push Image / docker (push) Successful in 3m10s
Details
Convert getEmailService() to async function and update all callers to use await. Replace synchronous require() with dynamic import() for admin-config module. Add SMTP config loading to admin configuration dialog.
This commit is contained in:
parent
97a0b5eea6
commit
dcb7840825
|
|
@ -673,6 +673,12 @@ const loadConfigurations = async () => {
|
|||
if (registrationResponse.success && registrationResponse.data) {
|
||||
registrationForm.value = { ...registrationResponse.data };
|
||||
}
|
||||
|
||||
// Load SMTP/Email config
|
||||
const smtpResponse = await $fetch<{ success: boolean; data?: SMTPConfig }>('/api/admin/smtp-config');
|
||||
if (smtpResponse.success && smtpResponse.data) {
|
||||
emailForm.value = { ...smtpResponse.data };
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to load configurations:', error);
|
||||
errorMessage.value = 'Failed to load current settings';
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ export default defineEventHandler(async (event) => {
|
|||
|
||||
// Get email service and send test email
|
||||
const { getEmailService } = await import('~/server/utils/email');
|
||||
const emailService = getEmailService();
|
||||
const emailService = await getEmailService();
|
||||
|
||||
// Verify connection first
|
||||
const connectionOk = await emailService.verifyConnection();
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ export default defineEventHandler(async (event) => {
|
|||
|
||||
// Send verification email
|
||||
const { getEmailService } = await import('~/server/utils/email');
|
||||
const emailService = getEmailService();
|
||||
const emailService = await getEmailService();
|
||||
|
||||
try {
|
||||
await emailService.sendWelcomeEmail(email, {
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ export default defineEventHandler(async (event) => {
|
|||
const { getEmailService } = await import('~/server/utils/email');
|
||||
const { generateEmailVerificationToken } = await import('~/server/utils/email-tokens');
|
||||
|
||||
const emailService = getEmailService();
|
||||
const emailService = await getEmailService();
|
||||
const verificationToken = await generateEmailVerificationToken(keycloakId, member.email);
|
||||
const config = useRuntimeConfig();
|
||||
const verificationLink = `${config.public.domain}/api/auth/verify-email?token=${verificationToken}`;
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ export default defineEventHandler(async (event) => {
|
|||
const { getEmailService } = await import('~/server/utils/email');
|
||||
const { generateEmailVerificationToken } = await import('~/server/utils/email-tokens');
|
||||
|
||||
const emailService = getEmailService();
|
||||
const emailService = await getEmailService();
|
||||
const verificationToken = await generateEmailVerificationToken(createdKeycloakId, body.email);
|
||||
const config = useRuntimeConfig();
|
||||
const verificationLink = `${config.public.domain}/api/auth/verify-email?token=${verificationToken}`;
|
||||
|
|
|
|||
|
|
@ -334,8 +334,8 @@ let emailServiceInstance: EmailService | null = null;
|
|||
/**
|
||||
* Get or create EmailService instance with current SMTP config
|
||||
*/
|
||||
export function getEmailService(): EmailService {
|
||||
const { getSMTPConfig } = require('./admin-config');
|
||||
export async function getEmailService(): Promise<EmailService> {
|
||||
const { getSMTPConfig } = await import('./admin-config');
|
||||
const config = getSMTPConfig();
|
||||
|
||||
if (!emailServiceInstance) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue