Browse Source

add a wrapper for standard error codes returned by backend, also add explanation to the error object if possible

Andrew Dolgov 2 years ago
parent
commit
27f7b59353
7 changed files with 23 additions and 17 deletions
  1. 4 11
      backend.php
  2. 1 1
      classes/handler/public.php
  3. 2 2
      classes/pluginhandler.php
  4. 4 0
      errors.php
  5. 10 0
      include/functions2.php
  6. 1 1
      plugins/instances/init.php
  7. 1 2
      public.php

+ 4 - 11
backend.php

@@ -63,7 +63,7 @@
 	if ($_SESSION["uid"]) {
 		if (!validate_session()) {
 			header("Content-Type: text/json");
-			print json_encode(array("error" => array("code" => 6)));
+			print error_json(6);
 			return;
 		}
 		load_user_plugins( $_SESSION["uid"]);
@@ -104,13 +104,6 @@
 		5 => __("Power User"),
 		10 => __("Administrator"));
 
-	#$error = sanity_check();
-
-	#if ($error['code'] != 0 && $op != "logout") {
-	#	print json_encode(array("error" => $error));
-	#	return;
-	#}
-
 	$op = str_replace("-", "_", $op);
 
 	$override = PluginHost::getInstance()->lookup_handler($op, $method);
@@ -137,18 +130,18 @@
 					return;
 				} else {
 					header("Content-Type: text/json");
-					print json_encode(array("error" => array("code" => 6)));
+					print error_json(6);
 					return;
 				}
 			} else {
 				header("Content-Type: text/json");
-				print json_encode(array("error" => array("code" => 6)));
+				print error_json(6);
 				return;
 			}
 		}
 	}
 
 	header("Content-Type: text/json");
-	print json_encode(array("error" => array("code" => 7)));
+	print error_json(13);
 
 ?>

+ 1 - 1
classes/handler/public.php

@@ -706,7 +706,7 @@ class Handler_Public extends Handler {
 
 	function index() {
 		header("Content-Type: text/plain");
-		print json_encode(array("error" => array("code" => 7)));
+		print error_json(13);
 	}
 
 	function forgotpass() {

+ 2 - 2
classes/pluginhandler.php

@@ -11,10 +11,10 @@ class PluginHandler extends Handler_Protected {
 			if (method_exists($plugin, $method)) {
 				$plugin->$method();
 			} else {
-				print json_encode(array("error" => "METHOD_NOT_FOUND"));
+				print error_json(13);
 			}
 		} else {
-			print json_encode(array("error" => "PLUGIN_NOT_FOUND"));
+			print error_json(14);
 		}
 	}
 }

+ 4 - 0
errors.php

@@ -34,6 +34,10 @@
 
 	$ERRORS[12] = __("SQL escaping test failed, check your database and PHP configuration");
 
+	$ERRORS[13] = __("Method not found");
+
+	$ERRORS[14] = __("Plugin not found");
+
 	if ($_REQUEST['mode'] == 'js') {
 		header("Content-Type: text/javascript; charset=UTF-8");
 

+ 10 - 0
include/functions2.php

@@ -2452,4 +2452,14 @@
 
 		return false;
 	}
+
+	function error_json($code) {
+		require_once "errors.php";
+
+		@$message = $ERRORS[$code];
+
+		return json_encode(array("error" =>
+			array("code" => $code, "message" => $message)));
+
+	}
 ?>

+ 1 - 1
plugins/instances/init.php

@@ -384,7 +384,7 @@ class Instances extends Plugin implements IHandler {
 
 			print json_encode(array("feeds" => $feeds));
 		} else {
-			print json_encode(array("error" => array("code" => 6)));
+			print error_json(6);
 		}
 	}
 

+ 1 - 2
public.php

@@ -56,6 +56,5 @@
 	}
 
 	header("Content-Type: text/plain");
-	print json_encode(array("error" => array("code" => 7)));
-
+	print error_json(13);
 ?>