<?php

require_once "php/model/UserManager.php";

/*
    Verarbeitung der Registrierungsbestätigung
    Funktion: Liest die zwischengespeicherten Registrierungsdaten aus,
    legt den Benutzer an und gibt das Ergebnis für die View zurück.
*/

$title = "Registrierung";
$message = "";
$link = "";
$isSuccess = false;

$token = basename($_GET["token"] ?? "");
$file = "data/pending/" . $token . ".json";

if (empty($token) || !file_exists($file)) {

    $message = "Der Registrierungslink ist ungültig oder bereits abgelaufen.";

} else {

    $data = json_decode(file_get_contents($file), true);

    if (
        $data === null ||
        empty($data["email"]) ||
        empty($data["vorname"]) ||
        empty($data["nachname"]) ||
        empty($data["password"])
    ) {

        $message = "Die Registrierungsdaten konnten nicht gelesen werden.";

    } else {

        try {

            $dao = UserManager::getInstance();

            if ($dao->findUser($data["email"]) === null) {

                $dao->addUser(
                    $data["email"],
                    $data["vorname"],
                    $data["nachname"],
                    $data["password"]
                );
            }

            unlink($file);

            $_SESSION["message"] = "registration_confirmed";
            header("Location: index.php?pfad=login");
            exit();

        } catch (Exception $e) {

            $message = "Die Registrierung konnte nicht abgeschlossen werden.";
        }
    }
}