headers->get("authorization") ?: ""); $user = Database::getInstance()->query(<< $accessToken, ])->fetch(); # TODO: token validation if (empty($user)) { throw new UnauthorizedError(); } $filter = $request->query->get("filter", ""); $syncFullState = $request->query->get("full_state", false); $setPresence = PresenceState::tryFrom($request->query->get("set_presence") ?? "") ?? PresenceState::ONLINE; $since = $request->query->get("since", ""); $timeout = $request->query->get("timeout", 0); return new JsonResponse([ "account_data" => [ "events" => [ ], ], "device_lists" => [], "device_one_time_keys_count" => 10, "next_batch" => "next_batch_id", "presence" => [ "events" => [ (new PresenceEvent(sender: $user["id"]))->toJsonEncodeable(), ], ], "rooms" => [ "invite" => [], "join" => [], "knock" => [], "leave" => [], ], "to_device" => [ "events" => [], ], ]); } }