From fe8c5ca3503ec9390c8eed9943452ab09f6c8fd1 Mon Sep 17 00:00:00 2001 From: netkas Date: Thu, 5 Jun 2025 15:08:09 -0400 Subject: [PATCH] Add ListBlacklist request handler to retrieve blacklist records --- .../Methods/Blacklist/ListBlacklist.php | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/FederationServer/Methods/Blacklist/ListBlacklist.php diff --git a/src/FederationServer/Methods/Blacklist/ListBlacklist.php b/src/FederationServer/Methods/Blacklist/ListBlacklist.php new file mode 100644 index 0000000..f0a8a9c --- /dev/null +++ b/src/FederationServer/Methods/Blacklist/ListBlacklist.php @@ -0,0 +1,51 @@ +isBlacklistPublic() && $authenticatedOperator === null) + { + throw new RequestException('Unauthorized: You must be authenticated to list blacklist records', 401); + } + + $limit = (int) (FederationServer::getParameter('limit') ?? Configuration::getServerConfiguration()->getListBlacklistMaxItems()); + $page = (int) (FederationServer::getParameter('page') ?? 1); + + if($limit < 1 || $limit > Configuration::getServerConfiguration()->getListBlacklistMaxItems()) + { + $limit = Configuration::getServerConfiguration()->getListBlacklistMaxItems(); + } + + if($page < 1) + { + $page = 1; + } + + try + { + $blacklistRecords = BlacklistManager::getEntries($limit, $page); + } + catch (DatabaseOperationException $e) + { + throw new RequestException('Internal Server Error: Unable to retrieve blacklist records', 500, $e); + } + + self::successResponse(array_map(fn($evidence) => $evidence->toArray(), $blacklistRecords)); + } + } +