e949/api/_errorslist.php
shr3dd3r 12143c148d Продолжение разработки 23.10.31
Добавлен .gitignore, скрыты несколько нинужных файлов, в целом продолжен запил основных частей функционала, начат микрорефакторинг (теперь концентрация индусского кода будет чуть меньше).
2023-10-31 21:57:17 +03:00

104 lines
3.8 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
// 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"),
// 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 "";
}
?>