mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-13 12:25:56 +00:00
drop errors.php and simplify error handling
This commit is contained in:
@@ -6,6 +6,13 @@ class API extends Handler {
|
||||
const STATUS_OK = 0;
|
||||
const STATUS_ERR = 1;
|
||||
|
||||
const E_API_DISABLED = "API_DISABLED";
|
||||
const E_NOT_LOGGED_IN = "NOT_LOGGED_IN";
|
||||
const E_LOGIN_ERROR = "LOGIN_ERROR";
|
||||
const E_INCORRECT_USAGE = "INCORRECT_USAGE";
|
||||
const E_UNKNOWN_METHOD = "UNKNOWN_METHOD";
|
||||
const E_OPERATION_FAILED = "E_OPERATION_FAILED";
|
||||
|
||||
private $seq;
|
||||
|
||||
private static function _param_to_bool($p) {
|
||||
@@ -13,9 +20,11 @@ class API extends Handler {
|
||||
}
|
||||
|
||||
private function _wrap($status, $reply) {
|
||||
print json_encode(array("seq" => $this->seq,
|
||||
"status" => $status,
|
||||
"content" => $reply));
|
||||
print json_encode([
|
||||
"seq" => $this->seq,
|
||||
"status" => $status,
|
||||
"content" => $reply
|
||||
]);
|
||||
}
|
||||
|
||||
function before($method) {
|
||||
@@ -23,12 +32,12 @@ class API extends Handler {
|
||||
header("Content-Type: text/json");
|
||||
|
||||
if (empty($_SESSION["uid"]) && $method != "login" && $method != "isloggedin") {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => 'NOT_LOGGED_IN'));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_NOT_LOGGED_IN));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!empty($_SESSION["uid"]) && $method != "logout" && !get_pref('ENABLE_API_ACCESS')) {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => 'API_DISABLED'));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_API_DISABLED));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -69,13 +78,13 @@ class API extends Handler {
|
||||
"api_level" => self::API_LEVEL));
|
||||
} else { // else we are not logged in
|
||||
user_error("Failed login attempt for $login from " . UserHelper::get_user_ip(), E_USER_WARNING);
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR"));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_LOGIN_ERROR));
|
||||
}
|
||||
} else {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => "API_DISABLED"));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_API_DISABLED));
|
||||
}
|
||||
} else {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR"));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_LOGIN_ERROR));
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -221,7 +230,7 @@ class API extends Handler {
|
||||
$this->_wrap(self::STATUS_OK, $headlines);
|
||||
}
|
||||
} else {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_INCORRECT_USAGE));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,7 +290,7 @@ class API extends Handler {
|
||||
"updated" => $num_updated));
|
||||
|
||||
} else {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_INCORRECT_USAGE));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -356,7 +365,7 @@ class API extends Handler {
|
||||
|
||||
$this->_wrap(self::STATUS_OK, $articles);
|
||||
} else {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_INCORRECT_USAGE));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -481,7 +490,7 @@ class API extends Handler {
|
||||
$this->_wrap($reply[0], $reply[1]);
|
||||
|
||||
} else {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => 'UNKNOWN_METHOD', "method" => $method));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_UNKNOWN_METHOD, "method" => $method));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -493,7 +502,7 @@ class API extends Handler {
|
||||
if (Article::_create_published_article($title, $url, $content, "", $_SESSION["uid"])) {
|
||||
$this->_wrap(self::STATUS_OK, array("status" => 'OK'));
|
||||
} else {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => 'Publishing failed'));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_OPERATION_FAILED));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -816,7 +825,7 @@ class API extends Handler {
|
||||
Pref_Feeds::remove_feed($feed_id, $_SESSION["uid"]);
|
||||
$this->_wrap(self::STATUS_OK, array("status" => "OK"));
|
||||
} else {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => "FEED_NOT_FOUND"));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_OPERATION_FAILED));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -831,7 +840,7 @@ class API extends Handler {
|
||||
|
||||
$this->_wrap(self::STATUS_OK, array("status" => $rc));
|
||||
} else {
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
|
||||
$this->_wrap(self::STATUS_ERR, array("error" => self::E_INCORRECT_USAGE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -499,15 +499,7 @@ class Feeds extends Handler_Protected {
|
||||
// this is parsed by handleRpcJson() on first viewfeed() to set cdm expanded, etc
|
||||
$reply['runtime-info'] = RPC::make_runtime_info();
|
||||
|
||||
$reply_json = json_encode($reply);
|
||||
|
||||
if (!$reply_json) {
|
||||
$reply_json = json_encode(["error" => ["code" => 15,
|
||||
"message" => json_last_error_msg()]]);
|
||||
}
|
||||
|
||||
print $reply_json;
|
||||
|
||||
print json_encode($reply);
|
||||
}
|
||||
|
||||
private function _generate_dashboard_feed() {
|
||||
|
||||
@@ -240,7 +240,7 @@ class Handler_Public extends Handler {
|
||||
|
||||
} else {
|
||||
header("Content-Type: text/plain; charset=utf-8");
|
||||
print json_encode(array("error" => array("message" => "Unknown format")));
|
||||
print "Unknown format: $format.";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -290,7 +290,7 @@ class Handler_Public extends Handler {
|
||||
header("Location: index.php");
|
||||
} else {
|
||||
header("Content-Type: text/json");
|
||||
print error_json(6);
|
||||
print Errors::to_json(Errors::E_UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -408,7 +408,7 @@ class Handler_Public extends Handler {
|
||||
|
||||
function index() {
|
||||
header("Content-Type: text/plain");
|
||||
print error_json(13);
|
||||
print Errors::to_json(Errors::E_UNKNOWN_METHOD);
|
||||
}
|
||||
|
||||
function forgotpass() {
|
||||
@@ -659,7 +659,7 @@ class Handler_Public extends Handler {
|
||||
<div class="content">
|
||||
|
||||
<?php
|
||||
@$op = clean($_REQUEST["subop"]);
|
||||
@$op = clean($_REQUEST["subop"] ?? "");
|
||||
$updater = new DbUpdater(Db::pdo(), Config::get(Config::DB_TYPE), SCHEMA_VERSION);
|
||||
|
||||
if ($op == "performupdate") {
|
||||
@@ -802,17 +802,17 @@ class Handler_Public extends Handler {
|
||||
} else {
|
||||
user_error("PluginHandler[PUBLIC]: Requested private method '$method' of plugin '$plugin_name'.", E_USER_WARNING);
|
||||
header("Content-Type: text/json");
|
||||
print error_json(6);
|
||||
print Errors::to_json(Errors::E_UNAUTHORIZED);
|
||||
}
|
||||
} else {
|
||||
user_error("PluginHandler[PUBLIC]: Requested unknown method '$method' of plugin '$plugin_name'.", E_USER_WARNING);
|
||||
header("Content-Type: text/json");
|
||||
print error_json(13);
|
||||
print Errors::to_json(Errors::E_UNKNOWN_METHOD);
|
||||
}
|
||||
} else {
|
||||
user_error("PluginHandler[PUBLIC]: Requested method '$method' of unknown plugin '$plugin_name'.", E_USER_WARNING);
|
||||
header("Content-Type: text/json");
|
||||
print error_json(14);
|
||||
print Errors::to_json(Errors::E_UNKNOWN_PLUGIN);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,15 +15,15 @@ class PluginHandler extends Handler_Protected {
|
||||
$plugin->$method();
|
||||
} else {
|
||||
user_error("Rejected ${plugin_name}->${method}(): invalid CSRF token.", E_USER_WARNING);
|
||||
print error_json(6);
|
||||
print Errors::to_json(Errors::E_UNAUTHORIZED);
|
||||
}
|
||||
} else {
|
||||
user_error("Rejected ${plugin_name}->${method}(): unknown method.", E_USER_WARNING);
|
||||
print error_json(13);
|
||||
print Errors::to_json(Errors::E_UNKNOWN_METHOD);
|
||||
}
|
||||
} else {
|
||||
user_error("Rejected ${plugin_name}->${method}(): unknown plugin.", E_USER_WARNING);
|
||||
print error_json(14);
|
||||
print Errors::to_json(Errors::E_UNKNOWN_PLUGIN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -561,8 +561,6 @@ class Pref_Feeds extends Handler_Protected {
|
||||
"all" => $this::get_ts_languages(),
|
||||
]
|
||||
]);
|
||||
} else {
|
||||
print json_encode(["error" => "FEED_NOT_FOUND"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,8 +16,6 @@ class Pref_Labels extends Handler_Protected {
|
||||
|
||||
if ($line = $sth->fetch(PDO::FETCH_ASSOC)) {
|
||||
print json_encode($line);
|
||||
} else {
|
||||
print json_encode(["error" => "LABEL_NOT_FOUND"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1063,7 +1063,7 @@ class Pref_Prefs extends Handler_Protected {
|
||||
}
|
||||
} else {
|
||||
header("Content-Type: text/json");
|
||||
print error_json(6);
|
||||
print Errors::to_json(Errors::E_UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,8 +19,6 @@ class Pref_Users extends Handler_Administrative {
|
||||
"user" => $row,
|
||||
"access_level_names" => $access_level_names
|
||||
]);
|
||||
} else {
|
||||
print json_encode(["error" => "USER_NOT_FOUND"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -118,16 +118,22 @@ class RPC extends Handler_Protected {
|
||||
$_SESSION["hasSandbox"] = clean($_REQUEST["hasSandbox"]) === "true";
|
||||
$_SESSION["clientTzOffset"] = clean($_REQUEST["clientTzOffset"]);
|
||||
|
||||
$reply = array();
|
||||
$error = Errors::E_SUCCESS;
|
||||
|
||||
$reply['error'] = sanity_check();
|
||||
|
||||
if ($reply['error']['code'] == 0) {
|
||||
$reply['init-params'] = $this->make_init_params();
|
||||
$reply['runtime-info'] = $this->make_runtime_info();
|
||||
if (get_schema_version(true) != SCHEMA_VERSION) {
|
||||
$error = Errors::E_SCHEMA_MISMATCH;
|
||||
}
|
||||
|
||||
print json_encode($reply);
|
||||
if ($error == Errors::E_SUCCESS) {
|
||||
$reply = [];
|
||||
|
||||
$reply['init-params'] = $this->make_init_params();
|
||||
$reply['runtime-info'] = $this->make_runtime_info();
|
||||
|
||||
print json_encode($reply);
|
||||
} else {
|
||||
print Errors::to_json($error);
|
||||
}
|
||||
}
|
||||
|
||||
/*function completeLabels() {
|
||||
@@ -315,10 +321,7 @@ class RPC extends Handler_Protected {
|
||||
$msg, 'client-js:' . $file, $line, $context);
|
||||
|
||||
echo json_encode(array("message" => "HOST_ERROR_LOGGED"));
|
||||
} else {
|
||||
echo json_encode(array("error" => "MESSAGE_NOT_FOUND"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function checkforupdates() {
|
||||
|
||||
Reference in New Issue
Block a user