Kaynağa Gözat

Misc API: better REST semantics (#8232)

To allow minimal diagnostic from client side
Alexandre Alapetite 4 ay önce
ebeveyn
işleme
d3cb23118c
1 değiştirilmiş dosya ile 22 ekleme ve 20 silme
  1. 22 20
      p/api/misc.php

+ 22 - 20
p/api/misc.php

@@ -8,18 +8,6 @@ declare(strict_types=1);
 require dirname(__DIR__, 2) . '/constants.php';
 require LIB_PATH . '/lib_rss.php';	//Includes class autoloader
 
-function badRequest(): never {
-	header('HTTP/1.1 400 Bad Request');
-	header('Content-Type: text/plain; charset=UTF-8');
-	die('Bad Request!');
-}
-
-function serviceUnavailable(): never {
-	header('HTTP/1.1 503 Service Unavailable');
-	header('Content-Type: text/plain; charset=UTF-8');
-	die('Service Unavailable!');
-}
-
 $extensionName = is_string($_GET['ext'] ?? null) ? $_GET['ext'] : '';
 
 if ($extensionName === '') {
@@ -43,18 +31,30 @@ if ($extensionName === '') {
 }
 
 if ($extensionName === '') {
-	badRequest();
+	header('HTTP/1.1 400 Bad Request');
+	header('Content-Type: text/plain; charset=UTF-8');
+	die('Bad Request!');
 }
 
 Minz_Session::init('FreshRSS', volatile: true);
 
 FreshRSS_Context::initSystem();
-if (
-	!FreshRSS_Context::hasSystemConf() ||
-	!FreshRSS_Context::systemConf()->api_enabled ||
-	empty(FreshRSS_Context::systemConf()->extensions_enabled[$extensionName])
-) {
-	serviceUnavailable();
+if (!FreshRSS_Context::hasSystemConf()) {
+	header('HTTP/1.1 500 Internal Server Error');
+	header('Content-Type: text/plain; charset=UTF-8');
+	die('Internal Server Error!');
+}
+
+if (!FreshRSS_Context::systemConf()->api_enabled) {
+	header('HTTP/1.1 503 Service Unavailable');
+	header('Content-Type: text/plain; charset=UTF-8');
+	die('Service Unavailable!');
+}
+
+if (empty(FreshRSS_Context::systemConf()->extensions_enabled[$extensionName])) {
+	header('HTTP/1.1 404 Not Found');
+	header('Content-Type: text/plain; charset=UTF-8');
+	die('Not Found!');
 }
 
 // Only enable the extension that is being called
@@ -64,5 +64,7 @@ Minz_ExtensionManager::init();
 Minz_Translate::init();
 
 if (!Minz_ExtensionManager::callHookUnique(Minz_HookType::ApiMisc)) {
-	serviceUnavailable();
+	header('HTTP/1.1 501 Not Implemented');
+	header('Content-Type: text/plain; charset=UTF-8');
+	die('Not Implemented!');
 }