summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2025-08-13 10:45:10 +0200
committerDaniel Weipert <git@mail.dweipert.de>2025-08-13 10:46:40 +0200
commitbeb68ad3ddc48f9e913815e0e18f11965201f32e (patch)
treec8f3cdabedb6f2635bd0f5378bc5e426ba8c5f65
parent6b7e857f21bef9ba71ac36c202678ec0d84eeff5 (diff)
whitespace :]
-rw-r--r--docker-compose.yml4
-rw-r--r--phpunit.xml4
-rw-r--r--src/App.php2
-rw-r--r--src/Controllers/KeyController.php2
-rw-r--r--src/Controllers/ServerDiscoveryController.php4
-rw-r--r--src/Controllers/ServerImplementationController.php2
-rw-r--r--src/DB.php6
-rw-r--r--src/ErrorCode.php2
-rw-r--r--src/Router.php22
-rw-r--r--src/Singleton.php4
-rw-r--r--src/routes.php14
-rw-r--r--tests/PHPUnit/Extensions/ServerExtension/PostRunSubscriber.php2
-rw-r--r--tests/PHPUnit/Extensions/ServerExtension/PreRunSubscriber.php2
-rw-r--r--tests/PHPUnit/Extensions/ServerExtension/ServerExtension.php2
-rw-r--r--tests/PHPUnit/TestCases/HttpResponseTestCase.php6
-rw-r--r--tests/ServerImplementationTest.php14
16 files changed, 46 insertions, 46 deletions
diff --git a/docker-compose.yml b/docker-compose.yml
index 2fd644f..4ec2c2e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -9,12 +9,12 @@ services:
- "POSTGRES_PASSWORD=${DB_PASSWORD}"
volumes:
- "db:/var/lib/postgresql/data"
-
+
php:
build: "docker/php"
volumes:
- "./:/var/www/html"
-
+
web:
build: "docker/nginx"
ports:
diff --git a/phpunit.xml b/phpunit.xml
index becac3d..a2c5ea5 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -19,13 +19,13 @@
<directory>tests</directory>
</testsuite>
</testsuites>
-
+
<source ignoreIndirectDeprecations="true" restrictNotices="true" restrictWarnings="true">
<include>
<directory>src</directory>
</include>
</source>
-
+
<extensions>
<bootstrap class="Tests\PHPUnit\Extensions\ServerExtension\ServerExtension" />
</extensions>
diff --git a/src/App.php b/src/App.php
index 4c67f76..33f71ef 100644
--- a/src/App.php
+++ b/src/App.php
@@ -11,7 +11,7 @@ class App
$dotenv = new Dotenv();
$dotenv->load(dirname(__DIR__) . "/.env");
}
-
+
public function run(): void
{
Router::getInstance()->run()->send();
diff --git a/src/Controllers/KeyController.php b/src/Controllers/KeyController.php
index bde1642..04f2c6d 100644
--- a/src/Controllers/KeyController.php
+++ b/src/Controllers/KeyController.php
@@ -16,7 +16,7 @@ class KeyController
],
]);
}
-
+
public function query(string $serverName): Response
{}
}
diff --git a/src/Controllers/ServerDiscoveryController.php b/src/Controllers/ServerDiscoveryController.php
index 076329b..c4e5ea7 100644
--- a/src/Controllers/ServerDiscoveryController.php
+++ b/src/Controllers/ServerDiscoveryController.php
@@ -13,7 +13,7 @@ class ServerDiscoveryController
"m.server" => "$_ENV[DOMAIN]:443",
]);
}
-
+
public function client(): Response
{
return new JsonResponse([
@@ -22,7 +22,7 @@ class ServerDiscoveryController
],
]);
}
-
+
public function support(): Response
{
return new JsonResponse([
diff --git a/src/Controllers/ServerImplementationController.php b/src/Controllers/ServerImplementationController.php
index b5d9d0f..e168a65 100644
--- a/src/Controllers/ServerImplementationController.php
+++ b/src/Controllers/ServerImplementationController.php
@@ -16,7 +16,7 @@ class ServerImplementationController
],
]);
}
-
+
public function versions(): Response
{
return new JsonResponse([
diff --git a/src/DB.php b/src/DB.php
index b536079..53d078b 100644
--- a/src/DB.php
+++ b/src/DB.php
@@ -5,9 +5,9 @@ namespace App;
class DB
{
use Singleton;
-
+
private \PDO $connection;
-
+
public function __construct()
{
$driver = $_ENV['DB_DRIVER'] ?? 'pgsql';
@@ -16,7 +16,7 @@ class DB
$dbname = $_ENV['DB_NAME'];
$user = $_ENV['DB_USER'];
$password = $_ENV['DB_PASSWORD'];
-
+
$this->connection = new \PDO("$driver:host=$host;port=$port;dbname=$dbname", $user, $password);
}
}
diff --git a/src/ErrorCode.php b/src/ErrorCode.php
index 048ef34..7a99374 100644
--- a/src/ErrorCode.php
+++ b/src/ErrorCode.php
@@ -6,6 +6,6 @@ enum ErrorCode: string
{
case FORBIDDEN = "M_FORBIDDEN";
case UNKNOWN_TOKEN = "M_UNKNOWN_TOKEN";
-
+
case UNKNOWN = "M_UNKNOWN";
}
diff --git a/src/Router.php b/src/Router.php
index e0b09ad..437d995 100644
--- a/src/Router.php
+++ b/src/Router.php
@@ -12,18 +12,18 @@ use Symfony\Component\Routing\RouteCollection;
class Router
{
use Singleton;
-
+
private RouteCollection $routes;
private RouteConfigurator $configurator;
-
+
public function __construct()
{
$this->routes = new RouteCollection();
$this->configurator = new RouteConfigurator($this->routes, $this->routes);
-
+
$this->addRoutes();
}
-
+
/**
* match the current url against the routes.
* also add preflight CORS headers on OPTIONS requests.
@@ -31,7 +31,7 @@ class Router
public function run(): Response
{
$request = Request::createFromGlobals();
-
+
if ($request->isMethod("OPTIONS")) {
$response = new Response();
$response->headers->add([
@@ -39,26 +39,26 @@ class Router
"Access-Control-Allow-Methods" => "GET, POST, PUT, DELETE, OPTIONS, PATCH, HEAD",
"Access-Control-Allow-Headers" => "X-Requested-With, Content-Type, Authorization",
]);
-
+
return $response;
}
-
+
$context = new RequestContext();
$context->fromRequest($request);
-
+
try {
$matcher = new UrlMatcher($this->routes, $context);
$match = $matcher->matchRequest($request);
-
+
$class = $match["_controller"][0];
$method = $match["_controller"][1];
-
+
return (new $class)->$method();
} catch (\Exception $exception) {
return new ErrorResponse(ErrorCode::UNKNOWN, "Unknown error occured");
}
}
-
+
/**
* add routes from the routes file
*/
diff --git a/src/Singleton.php b/src/Singleton.php
index b4d4598..864da59 100644
--- a/src/Singleton.php
+++ b/src/Singleton.php
@@ -5,13 +5,13 @@ namespace App;
trait Singleton
{
private static self $instance;
-
+
public static function getInstance(): self
{
if (! isset(self::$instance)) {
self::$instance = new self();
}
-
+
return self::$instance;
}
}
diff --git a/src/routes.php b/src/routes.php
index 25e2e1f..21113dc 100644
--- a/src/routes.php
+++ b/src/routes.php
@@ -12,30 +12,30 @@ return function (RouteConfigurator $routes): void
->add("well_known_matrix_server", "/.well-known/matrix/server")
->controller([ServerDiscoveryController::class, "server"])
->methods(["GET"]);
-
+
$routes
->add("well_known_matrix_client", "/.well-known/matrix/client")
->controller([ServerDiscoveryController::class, "client"])
->methods(["GET"]);
-
+
$routes
->add("well_known_matrix_support", "/.well-known/matrix/support")
->controller([ServerDiscoveryController::class, "support"])
->methods(["GET"]);
-
+
$routes
->add("matrix_federation_version", "/_matrix/federation/v1/version")
->controller([ServerImplementationController::class, "version"])
->methods(["GET"]);
-
+
$routes
->add("matrix_client_versions", "/_matrix/client/versions")
->controller([ServerImplementationController::class, "versions"])
->methods(["GET"]);
-
+
# /_matrix/key/v2/server
# /_matrix/key/v2/query
# /_matrix/key/v2/query/{serverName}
-
-
+
+
};
diff --git a/tests/PHPUnit/Extensions/ServerExtension/PostRunSubscriber.php b/tests/PHPUnit/Extensions/ServerExtension/PostRunSubscriber.php
index 308394e..46b9377 100644
--- a/tests/PHPUnit/Extensions/ServerExtension/PostRunSubscriber.php
+++ b/tests/PHPUnit/Extensions/ServerExtension/PostRunSubscriber.php
@@ -9,7 +9,7 @@ class PostRunSubscriber implements ExecutionFinishedSubscriber
{
public function __construct(private readonly \stdClass $dataObject)
{}
-
+
public function notify(ExecutionFinished $event): void
{
if ($this->dataObject->process_id > 0) {
diff --git a/tests/PHPUnit/Extensions/ServerExtension/PreRunSubscriber.php b/tests/PHPUnit/Extensions/ServerExtension/PreRunSubscriber.php
index ba35ee7..db5cdb4 100644
--- a/tests/PHPUnit/Extensions/ServerExtension/PreRunSubscriber.php
+++ b/tests/PHPUnit/Extensions/ServerExtension/PreRunSubscriber.php
@@ -9,7 +9,7 @@ class PreRunSubscriber implements ExecutionStartedSubscriber
{
public function __construct(private \stdClass $dataObject)
{}
-
+
public function notify(ExecutionStarted $event): void
{
$this->dataObject->process_id = (int)shell_exec("php -S localhost:8080 -t public > /dev/null 2>&1 & echo $!");
diff --git a/tests/PHPUnit/Extensions/ServerExtension/ServerExtension.php b/tests/PHPUnit/Extensions/ServerExtension/ServerExtension.php
index a98f593..9656a14 100644
--- a/tests/PHPUnit/Extensions/ServerExtension/ServerExtension.php
+++ b/tests/PHPUnit/Extensions/ServerExtension/ServerExtension.php
@@ -12,7 +12,7 @@ class ServerExtension implements Extension
public function bootstrap(Configuration $configuration, Facade $facade, ParameterCollection $parameters): void
{
$dataObject = new \stdClass();
-
+
$facade->registerSubscriber(new PreRunSubscriber($dataObject));
$facade->registerSubscriber(new PostRunSubscriber($dataObject));
}
diff --git a/tests/PHPUnit/TestCases/HttpResponseTestCase.php b/tests/PHPUnit/TestCases/HttpResponseTestCase.php
index 855e594..31dc1d7 100644
--- a/tests/PHPUnit/TestCases/HttpResponseTestCase.php
+++ b/tests/PHPUnit/TestCases/HttpResponseTestCase.php
@@ -9,14 +9,14 @@ use PHPUnit\Framework\TestCase;
class HttpResponseTestCase extends TestCase
{
protected Client $client;
-
+
protected function setUp(): void
{
$this->client = new Client([
"base_uri" => "http://localhost:8080",
]);
}
-
+
/**
* @param array $options
*/
@@ -28,7 +28,7 @@ class HttpResponseTestCase extends TestCase
["http_errors" => false] + $options
);
}
-
+
public function hasJsonBody(Response $response): bool
{
json_decode((string)$response->getBody());
diff --git a/tests/ServerImplementationTest.php b/tests/ServerImplementationTest.php
index 88be7c4..a48a8b8 100644
--- a/tests/ServerImplementationTest.php
+++ b/tests/ServerImplementationTest.php
@@ -10,26 +10,26 @@ class ServerImplementationTest extends HttpResponseTestCase
public function testVersion(): void
{
$response = $this->request("GET", "/_matrix/federation/v1/version");
-
+
$this->assertEquals(Response::HTTP_OK, $response->getStatusCode());
$this->assertTrue($this->hasJsonBody($response));
-
+
$body = json_decode((string)$response->getBody(), true);
-
+
$this->assertArrayHasKey("server", $body);
$this->assertArrayHasKey("name", $body["server"]);
$this->assertArrayHasKey("version", $body["server"]);
}
-
+
public function testVersions(): void
{
$response = $this->request("GET", "/_matrix/client/versions");
-
+
$this->assertEquals(Response::HTTP_OK, $response->getStatusCode());
$this->assertTrue($this->hasJsonBody($response));
-
+
$body = json_decode((string)$response->getBody(), true);
-
+
$this->assertIsArray($body["versions"]);
$this->assertTrue(count($body["versions"]) > 0);
}