add unsubscribe and view mail on the web buttons

This commit is contained in:
isUnknown 2025-02-04 17:35:09 +01:00
parent 8bdd63afe2
commit f095954a33
20 changed files with 289 additions and 224 deletions

View file

@ -2,43 +2,42 @@
return [
'pattern' => '/subscribe.json',
'method' => 'POST',
'method' => 'POST',
'action' => function () {
$jsonRequest = file_get_contents("php://input");
$jsonRequest = file_get_contents('php://input');
$email = Str::lower(json_decode($jsonRequest));
if (V::email($email)) {
kirby()->impersonate('kirby');
$page = page("inscription");
$page = page('lettre');
$subscribers = $page->subscribers()->yaml();
$emailExists = in_array(["email" => $email], $subscribers);
$emailExists = in_array(['email' => $email], $subscribers);
if ($emailExists) {
return [
"status" => "error",
"message" => "Cet email est déjà inscris."
'status' => 'error',
'message' => 'Cet email est déjà inscris.',
];
}
$newSubscriber = ["email" => $email];
$newSubscriber = ['email' => $email];
$subscribers[] = $newSubscriber;
$page->update([
'subscribers' => $subscribers
'subscribers' => $subscribers,
]);
return [
"status" => "success",
"message" => "Inscription réussie."
'status' => 'success',
'message' => 'lettre réussie.',
];
} else {
return [
"status" => "error",
"message" => "Email invalide."
'status' => 'error',
'message' => 'Email invalide.',
];
}
}
},
];