107 lines
3.9 KiB
PHP
107 lines
3.9 KiB
PHP
<?php
|
|
// All existing errors
|
|
|
|
|
|
|
|
// All existing error codes as integers
|
|
const E_NOERROR = 0; // No error
|
|
// Unknown (unspecific) errors
|
|
const E_UNS_UNEXPECTED = 101; // Unexpected result
|
|
const E_UNS_NOTFOUND = 102; // Object not found
|
|
const E_UNS_INTERNAL = 103; // Internal error occured
|
|
const E_UNS_JSONBADINP = 104; // Cant encode object to JSON string
|
|
const E_UNS_NOTIMPL = 105; // Not yet implemented
|
|
// User input errors
|
|
const E_UIN_WRONGID = 201; // Wrong object id (not found)
|
|
const E_UIN_WRONGPATH = 202; // Wrong object path (not found)
|
|
const E_UIN_FILE2LARGE = 203; // File size is too large
|
|
const E_UIN_FILETYPE = 204; // Wrong file type
|
|
const E_UIN_IMGBADRES = 205; // Invalid image resolution
|
|
const E_UIN_INSUFARGS = 206; // Not enough arguments was supplied to method
|
|
const E_UIN_BADARGS = 207; // Bad arguments
|
|
// Authentication errors
|
|
const E_AUT_ALRLOGIN = 301; // User is already logged in
|
|
const E_AUT_REGCLOSED = 302; // Registrations are closed
|
|
const E_AUT_PWD2WEAK = 303; // Password is too weak
|
|
const E_AUT_NOTAUTHED = 304; // Not authenticated
|
|
const E_AUT_WRONGCREDS = 305; // User with that credentials does not exist
|
|
// Access errors
|
|
const E_ACS_PERMDENIED = 401; // Permission to object denied
|
|
const E_ACS_INSUFROLE = 402; // Insufficient role
|
|
// Database-related errors
|
|
const E_DBE_INSERTFAIL = 501; // INSERT query failed
|
|
const E_DBE_SELECTFAIL = 502; // SELECT query failed
|
|
const E_DBE_DELETEFAIL = 503; // DELETE query failed
|
|
|
|
|
|
|
|
// All existing errors as two-dimensional array
|
|
$Errors_Enum = array(
|
|
array("noerror", E_NOERROR, "no error"),
|
|
// Unspecific errors
|
|
array("uns.unexpected", E_UNS_UNEXPECTED, "unexpected result"),
|
|
array("uns.notfound", E_UNS_NOTFOUND, "object not found"),
|
|
array("uns.internal", E_UNS_INTERNAL, "internal error occured"),
|
|
array("uns.jsonbadinp", E_UNS_JSONBADINP, "cant encode object to json string"),
|
|
array("uns.notimpl", E_UNS_NOTIMPL, "not yet implemented"),
|
|
// User input errors
|
|
array("uin.wrongid", E_UIN_WRONGID, "wrong object id (not found)"),
|
|
array("uin.wrongpath", E_UIN_WRONGPATH, "wrong object path (not found)"),
|
|
array("uin.file2large", E_UIN_FILE2LARGE, "file size is too large"),
|
|
array("uin.filetype", E_UIN_FILETYPE, "wrong file type"),
|
|
array("uin.imgbadres", E_UIN_IMGBADRES, "invalid image resolution"),
|
|
array("uin.insufargs", E_UIN_INSUFARGS, "not enough arguments was supplied to method"),
|
|
array("uin.badargs", E_UIN_BADARGS, "bad arguments"),
|
|
// Authentication errors
|
|
array("aut.alrlogin", E_AUT_ALRLOGIN, "already logged in"),
|
|
array("aut.regclosed", E_AUT_REGCLOSED, "registrations are closed"),
|
|
array("aut.pwd2weak", E_AUT_PWD2WEAK, "password is too weak"),
|
|
array("aut.notauthed", E_AUT_NOTAUTHED, "not authenticated"),
|
|
array("aut.wrongcreds", E_AUT_WRONGCREDS, "no such user name and/or password"),
|
|
// Access errors
|
|
array("acs.permdenied", E_ACS_PERMDENIED, "permission denied"),
|
|
array("acs.insufrole", E_ACS_INSUFROLE, "insufficient role"),
|
|
// Database-related errors
|
|
array("dbe.insertfail", E_DBE_INSERTFAIL, "insert query failed"),
|
|
array("dbe.selectfail", E_DBE_SELECTFAIL, "select query failed"),
|
|
array("dbe.deletefail", E_DBE_DELETEFAIL, "delete query failed")
|
|
);
|
|
|
|
|
|
|
|
// Get error code by its name
|
|
function Errors_ResolveCodeByName (string $name): int {
|
|
global $Errors_Enum;
|
|
$m = count($Errors_Enum);
|
|
for ($i = 0; $i < $m; ++$i) {
|
|
if ($Errors_Enum[$i][0] === $name)
|
|
return $Errors_Enum[$i][1];
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
// Get error name by its code
|
|
function Errors_ResolveNameByCode (int $id): string {
|
|
global $Errors_Enum;
|
|
$m = count($Errors_Enum);
|
|
for ($i = 0; $i < $m; ++$i) {
|
|
if ($Errors_Enum[$i][1] === $id)
|
|
return $Errors_Enum[$i][0];
|
|
}
|
|
return "";
|
|
}
|
|
|
|
// Get error short description by its code
|
|
function Errors_ResolveDescByCode (int $id): string {
|
|
global $Errors_Enum;
|
|
$m = count($Errors_Enum);
|
|
for ($i = 0; $i < $m; ++$i) {
|
|
if ($Errors_Enum[$i][1] === $id)
|
|
return $Errors_Enum[$i][2];
|
|
}
|
|
return "";
|
|
}
|
|
|
|
|
|
|
|
?>
|