Routes Frontend + Improvements

This commit is contained in:
2024-03-28 11:56:17 +01:00
parent 50ae32595d
commit 90e7024a73
10 changed files with 314 additions and 42 deletions

View File

@@ -5,6 +5,7 @@ namespace Core\API {
use Core\API\Routes\GenerateCache;
use Core\Objects\Context;
use Core\Objects\DatabaseEntity\Route;
use Core\Objects\Router\ApiRoute;
abstract class RoutesAPI extends Request {
@@ -24,6 +25,8 @@ namespace Core\API {
return false;
} else if ($route === null) {
return $this->createError("Route not found");
} else if ($route instanceof ApiRoute) {
return $this->createError("This route cannot be modified");
}
$route->setActive($active);
@@ -71,6 +74,7 @@ namespace Core\API\Routes {
use Core\Objects\Context;
use Core\Objects\DatabaseEntity\Group;
use Core\Objects\DatabaseEntity\Route;
use Core\Objects\Router\ApiRoute;
use Core\Objects\Router\Router;
class Fetch extends RoutesAPI {
@@ -87,10 +91,7 @@ namespace Core\API\Routes {
$this->success = ($routes !== FALSE);
if ($this->success) {
$this->result["routes"] = [];
foreach ($routes as $route) {
$this->result["routes"][$route->getId()] = $route->jsonSerialize();
}
$this->result["routes"] = $routes;
}
return $this->success;
@@ -307,7 +308,6 @@ namespace Core\API\Routes {
parent::__construct($context, $externalCall, array(
"id" => new Parameter("id", Parameter::TYPE_INT)
));
$this->isPublic = false;
}
public function _execute(): bool {
@@ -319,6 +319,8 @@ namespace Core\API\Routes {
return $this->createError("Error fetching route: " . $sql->getLastError());
} else if ($route === null) {
return $this->createError("Route not found");
} else if ($route instanceof ApiRoute) {
return $this->createError("This route cannot be deleted");
}
$this->success = $route->delete($sql) !== false;
@@ -336,7 +338,6 @@ namespace Core\API\Routes {
parent::__construct($context, $externalCall, array(
"id" => new Parameter("id", Parameter::TYPE_INT)
));
$this->isPublic = false;
}
public function _execute(): bool {
@@ -354,7 +355,6 @@ namespace Core\API\Routes {
parent::__construct($context, $externalCall, array(
"id" => new Parameter("id", Parameter::TYPE_INT)
));
$this->isPublic = false;
}
public function _execute(): bool {
@@ -373,7 +373,6 @@ namespace Core\API\Routes {
public function __construct(Context $context, bool $externalCall = false) {
parent::__construct($context, $externalCall, []);
$this->isPublic = false;
$this->router = null;
}
@@ -408,7 +407,10 @@ namespace Core\API\Routes {
}
public static function getDefaultACL(Insert $insert): void {
$insert->addRow(self::getEndpoint(), [Group::ADMIN, Group::SUPPORT], "Allows users to regenerate the routing cache", true);
$insert->addRow(self::getEndpoint(),
[Group::ADMIN, Group::SUPPORT],
"Allows users to regenerate the routing cache", true
);
}
}

View File

@@ -5,6 +5,7 @@ namespace Core\Objects\Router;
use Core\Driver\SQL\SQL;
use Core\Elements\Document;
use Core\Objects\Context;
use Core\Objects\DatabaseEntity\Attribute\Transient;
use Core\Objects\DatabaseEntity\Route;
use Core\Objects\Search\Searchable;
use Core\Objects\Search\SearchQuery;
@@ -15,7 +16,10 @@ class DocumentRoute extends Route {
use Searchable;
#[Transient]
private array $args;
#[Transient]
private ?\ReflectionClass $reflectionClass = null;
public function __construct(string $pattern, bool $exact, string $className, ...$args) {

View File

@@ -2,11 +2,13 @@
namespace Core\Objects\Router;
use Core\Objects\DatabaseEntity\Attribute\Transient;
use Core\Objects\DatabaseEntity\Route;
use JetBrains\PhpStorm\Pure;
class RedirectRoute extends Route {
#[Transient]
private int $code;
public function __construct(string $type, string $pattern, bool $exact, string $destination, int $code = 307) {

View File

@@ -4,6 +4,7 @@ namespace Core\Objects\Router;
use Core\Driver\SQL\SQL;
use Core\Objects\Context;
use Core\Objects\DatabaseEntity\Attribute\Transient;
use Core\Objects\DatabaseEntity\Route;
use Core\Objects\Search\Searchable;
use Core\Objects\Search\SearchQuery;
@@ -14,6 +15,7 @@ class StaticFileRoute extends Route {
use Searchable;
#[Transient]
private int $code;
public function __construct(string $pattern, bool $exact, string $path, int $code = 200) {

View File

@@ -2,11 +2,15 @@
namespace Core\Objects\Router;
use Core\Objects\DatabaseEntity\Attribute\Transient;
use Core\Objects\DatabaseEntity\Route;
class StaticRoute extends Route {
#[Transient]
private string $data;
#[Transient]
private int $code;
public function __construct(string $pattern, bool $exact, string $data, int $code = 200) {