export default ({filter}, {services, env}) => { const checkEmailExists = async (email, database) => { const user = await database('directus_users') .select('id') .where({email}) .first() return user !== undefined } filter('users.create', async (input, {schema}, {database}) => { if (!services.MailService) { console.error('Le service MailService est manquant.') return input } const adminEmail = env.EMAIL_NEW_USER const directusURL = env.DIRECTUS_URL || 'http://0.0.0.0:8055' if (!adminEmail) { console.error('La variable EMAIL_NEW_USER est manquante.') return input } const emailExists = await checkEmailExists(input.email, database) if (emailExists) { console.error('L’adresse e-mail est déjà utilisée.') return input } try { const mailService = new services.MailService({schema}) mailService.send({ to: adminEmail, subject: `Nouvel utilisateur : ${input.email}`, text: `Un nouvel utilisateur a été créé :\n Nom: ${input.first_name || 'N/A'} Email: ${input.email || 'N/A'}\n Pour valider => ${directusURL}/admin/users`, html: `
Un nouvel utilisateur a été créé :
Pour valider, cliquez ici ou sur ce lien => ${directusURL}/admin/users
`, }) console.log('Email envoyé avec succès à', adminEmail) } catch (err) { console.error("Erreur lors de l’envoi de l’e-mail via MailService:", err) } return input }) }