controller cleanup
This commit is contained in:
parent
fc03444fa1
commit
fed05235a4
|
@ -15,9 +15,12 @@ class DisplayEmailsController {
|
||||||
public static function invoke(ImapClient $imapClient, array $config) {
|
public static function invoke(ImapClient $imapClient, array $config) {
|
||||||
$address = $_SERVER['QUERY_STRING'] ?? '';
|
$address = $_SERVER['QUERY_STRING'] ?? '';
|
||||||
|
|
||||||
// print emails with html template
|
|
||||||
$user = User::parseDomain($address, $config['blocked_usernames']);
|
$user = User::parseDomain($address, $config['blocked_usernames']);
|
||||||
$user->isInvalid($config['domains']) && RedirectToRandomAddressController::invoke($imapClient, $config);
|
if ($user->isInvalid($config['domains'])) {
|
||||||
|
RedirectToRandomAddressController::invoke($imapClient, $config);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$emails = $imapClient->get_emails($user);
|
$emails = $imapClient->get_emails($user);
|
||||||
|
|
||||||
DisplayEmailsController::render($emails, $config, $user);
|
DisplayEmailsController::render($emails, $config, $user);
|
||||||
|
@ -53,15 +56,11 @@ class RedirectToRandomAddressController {
|
||||||
|
|
||||||
public static function invoke(ImapClient $imapClient, array $config) {
|
public static function invoke(ImapClient $imapClient, array $config) {
|
||||||
$address = User::get_random_address($config{'domains'});
|
$address = User::get_random_address($config{'domains'});
|
||||||
|
|
||||||
RedirectToAddressController::render($address);
|
RedirectToAddressController::render($address);
|
||||||
|
|
||||||
// finish rendering, this might be called from another controller as a fallback
|
|
||||||
exit();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class HasNewMessagesController {
|
class HasNewMessagesControllerJson {
|
||||||
public static function matches() {
|
public static function matches() {
|
||||||
return ($_GET['action'] ?? null) === "has_new_messages"
|
return ($_GET['action'] ?? null) === "has_new_messages"
|
||||||
&& isset($_GET['email_ids'])
|
&& isset($_GET['email_ids'])
|
||||||
|
@ -74,18 +73,19 @@ class HasNewMessagesController {
|
||||||
$address = $_GET['address'];
|
$address = $_GET['address'];
|
||||||
|
|
||||||
$user = User::parseDomain($address, $config['blocked_usernames']);
|
$user = User::parseDomain($address, $config['blocked_usernames']);
|
||||||
$user->isInvalid($config['domains']) && RedirectToRandomAddressController::invoke($imapClient, $config);
|
if ($user->isInvalid($config['domains'])) {
|
||||||
|
render_error(400, "invalid email address");
|
||||||
|
}
|
||||||
|
|
||||||
$emails = $imapClient->get_emails($user);
|
$emails = $imapClient->get_emails($user);
|
||||||
|
|
||||||
$knownMailIds = explode('|', $email_ids);
|
$knownMailIds = explode('|', $email_ids);
|
||||||
|
|
||||||
$newMailIds = array_map(function ($mail) {
|
$newMailIds = array_map(function ($mail) {
|
||||||
return $mail->id;
|
return $mail->id;
|
||||||
}, $emails);
|
}, $emails);
|
||||||
|
|
||||||
$onlyNewMailIds = array_diff($newMailIds, $knownMailIds);
|
$onlyNewMailIds = array_diff($newMailIds, $knownMailIds);
|
||||||
|
|
||||||
HasNewMessagesController::render(count($onlyNewMailIds));
|
HasNewMessagesControllerJson::render(count($onlyNewMailIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function render($counter) {
|
public static function render($counter) {
|
||||||
|
@ -107,7 +107,10 @@ class DownloadEmailController {
|
||||||
$address = $_GET['address'];
|
$address = $_GET['address'];
|
||||||
|
|
||||||
$user = User::parseDomain($address, $config['blocked_usernames']);
|
$user = User::parseDomain($address, $config['blocked_usernames']);
|
||||||
$user->isInvalid($config['domains']) && RedirectToRandomAddressController::invoke($imapClient, $config);
|
if ($user->isInvalid($config['domains'])) {
|
||||||
|
RedirectToRandomAddressController::invoke($imapClient, $config);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$download_email_id = filter_var($email_id, FILTER_SANITIZE_NUMBER_INT);
|
$download_email_id = filter_var($email_id, FILTER_SANITIZE_NUMBER_INT);
|
||||||
$full_email = $imapClient->load_one_email_fully($download_email_id, $user);
|
$full_email = $imapClient->load_one_email_fully($download_email_id, $user);
|
||||||
|
@ -138,7 +141,10 @@ class DeleteEmailController {
|
||||||
$address = $_GET['address'];
|
$address = $_GET['address'];
|
||||||
|
|
||||||
$user = User::parseDomain($address, $config['blocked_usernames']);
|
$user = User::parseDomain($address, $config['blocked_usernames']);
|
||||||
$user->isInvalid($config['domains']) && RedirectToRandomAddressController::invoke($imapClient, $config);
|
if ($user->isInvalid($config['domains'])) {
|
||||||
|
RedirectToRandomAddressController::invoke($imapClient, $config);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$delete_email_id = filter_var($email_id, FILTER_SANITIZE_NUMBER_INT);
|
$delete_email_id = filter_var($email_id, FILTER_SANITIZE_NUMBER_INT);
|
||||||
if ($imapClient->delete_email($delete_email_id, $user)) {
|
if ($imapClient->delete_email($delete_email_id, $user)) {
|
||||||
|
|
|
@ -28,8 +28,8 @@ if (DisplayEmailsController::matches()) {
|
||||||
DownloadEmailController::invoke($imapClient, $config);
|
DownloadEmailController::invoke($imapClient, $config);
|
||||||
} elseif (DeleteEmailController::matches()) {
|
} elseif (DeleteEmailController::matches()) {
|
||||||
DeleteEmailController::invoke($imapClient, $config);
|
DeleteEmailController::invoke($imapClient, $config);
|
||||||
} elseif (HasNewMessagesController::matches()) {
|
} elseif (HasNewMessagesControllerJson::matches()) {
|
||||||
HasNewMessagesController::invoke($imapClient, $config);
|
HasNewMessagesControllerJson::invoke($imapClient, $config);
|
||||||
} else {
|
} else {
|
||||||
// If requesting the main site, just redirect to a new random mailbox.
|
// If requesting the main site, just redirect to a new random mailbox.
|
||||||
RedirectToRandomAddressController::invoke($imapClient, $config);
|
RedirectToRandomAddressController::invoke($imapClient, $config);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user