import { d as defineEventHandler, r as readBody, c as createError } from '../../../nitro/nitro.mjs';
import { r as readUsers, h as hashPassword, w as writeUsers } from '../../../_/auth.mjs';
import nodemailer from 'nodemailer';
import crypto from 'crypto';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import 'bcryptjs';
import 'jsonwebtoken';
import 'fs';
import 'path';
import '../../../_/encryption.mjs';

const resetPassword_post = defineEventHandler(async (event) => {
  try {
    const body = await readBody(event);
    const { email } = body;
    if (!email) {
      throw createError({
        statusCode: 400,
        message: "E-Mail-Adresse ist erforderlich"
      });
    }
    const users = await readUsers();
    const user = users.find((u) => u.email.toLowerCase() === email.toLowerCase());
    if (!user) {
      return {
        success: true,
        message: "Falls ein Konto mit dieser E-Mail existiert, wurde eine E-Mail gesendet."
      };
    }
    const tempPassword = crypto.randomBytes(8).toString("hex");
    const hashedPassword = await hashPassword(tempPassword);
    user.password = hashedPassword;
    user.passwordResetRequired = true;
    const updatedUsers = users.map((u) => u.id === user.id ? user : u);
    await writeUsers(updatedUsers);
    const transporter = nodemailer.createTransport({
      host: process.env.SMTP_HOST || "smtp.gmail.com",
      port: process.env.SMTP_PORT || 587,
      secure: false,
      auth: {
        user: process.env.SMTP_USER,
        pass: process.env.SMTP_PASS
      }
    });
    const mailOptions = {
      from: process.env.SMTP_FROM || "noreply@harheimertc.de",
      to: user.email,
      subject: "Passwort zur\xFCcksetzen - Harheimer TC",
      html: `
        <h2>Passwort zur\xFCcksetzen</h2>
        <p>Hallo ${user.name},</p>
        <p>Sie haben eine Anfrage zum Zur\xFCcksetzen Ihres Passworts gestellt.</p>
        <p>Ihr tempor\xE4res Passwort lautet: <strong>${tempPassword}</strong></p>
        <p>Bitte melden Sie sich damit an und \xE4ndern Sie Ihr Passwort im Mitgliederbereich.</p>
        <br>
        <p>Falls Sie diese Anfrage nicht gestellt haben, ignorieren Sie diese E-Mail.</p>
        <br>
        <p>Mit sportlichen Gr\xFC\xDFen,<br>Ihr Harheimer TC</p>
      `
    };
    await transporter.sendMail(mailOptions);
    return {
      success: true,
      message: "Falls ein Konto mit dieser E-Mail existiert, wurde eine E-Mail gesendet."
    };
  } catch (error) {
    console.error("Password-Reset-Fehler:", error);
    return {
      success: true,
      message: "Falls ein Konto mit dieser E-Mail existiert, wurde eine E-Mail gesendet."
    };
  }
});

export { resetPassword_post as default };
//# sourceMappingURL=reset-password.post.mjs.map
