summaryrefslogtreecommitdiff
path: root/src/Controllers/Client/ServerInformationController.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Controllers/Client/ServerInformationController.php')
-rw-r--r--src/Controllers/Client/ServerInformationController.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/Controllers/Client/ServerInformationController.php b/src/Controllers/Client/ServerInformationController.php
new file mode 100644
index 0000000..51e68e6
--- /dev/null
+++ b/src/Controllers/Client/ServerInformationController.php
@@ -0,0 +1,57 @@
+<?php
+
+namespace App\Controllers\Client;
+
+use Matrix\Responses\ClientVersionsGetResponse;
+use Symfony\Component\HttpFoundation\JsonResponse;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\Routing\Attribute\Route;
+
+class ServerInformationController
+{
+ #[Route(path: "/.well-known/matrix/client", methods: ["GET"])]
+ public function client(Request $request): Response
+ {
+ return new JsonResponse([
+ "m.homeserver" => [
+ "base_url" => "https://$_ENV[DOMAIN]",
+ ],
+ ]);
+ }
+
+ #[Route(path: "/.well-known/matrix/support", methods: ["GET"])]
+ public function support(Request $request): Response
+ {
+ return new JsonResponse([
+ "contacts" => [],
+ "support_page" => "",
+ ]);
+ }
+
+ #[Route(path: "/_matrix/client/versions", methods: ["GET"])]
+ public function versions(Request $request): Response
+ {
+ return new JsonResponse(new ClientVersionsGetResponse([
+ "r0.0.1",
+ "v1.1",
+ ]));
+ }
+
+ public function server(Request $request): Response
+ {
+ return new JsonResponse([
+ "m.server" => "$_ENV[DOMAIN]:443",
+ ]);
+ }
+
+ public function version(Request $request): Response
+ {
+ return new JsonResponse([
+ "server" => [
+ "name" => "Matrix PHP",
+ "version" => "0.1.0",
+ ],
+ ]);
+ }
+}