From 88619b044a4a10081b2bab9b42a3473864ffcaea Mon Sep 17 00:00:00 2001 From: Infi Date: Sat, 26 Apr 2025 00:59:01 +0200 Subject: [PATCH] feat: use livekit compatible root schema Signed-off-by: Infi --- .../java/chat/revolt/api/routes/misc/Root.kt | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/chat/revolt/api/routes/misc/Root.kt b/app/src/main/java/chat/revolt/api/routes/misc/Root.kt index 99b63a88..dfc22cd3 100644 --- a/app/src/main/java/chat/revolt/api/routes/misc/Root.kt +++ b/app/src/main/java/chat/revolt/api/routes/misc/Root.kt @@ -18,36 +18,48 @@ data class Root( @Serializable data class Features( - val captcha: CAPTCHA, + val captcha: CAPTCHAFeature, val email: Boolean, - - @SerialName("invite_only") - val inviteOnly: Boolean, - - val autumn: Autumn, - val january: Autumn, - val voso: Voso + @SerialName("invite_only") val inviteOnly: Boolean, + val autumn: AutumnJanuaryFeature, + val january: AutumnJanuaryFeature, + val voso: LegacyVoiceFeature? = null, + val livekit: LiveKitFeature? = null, ) @Serializable -data class Autumn( +data class AutumnJanuaryFeature( val enabled: Boolean, val url: String ) @Serializable -data class CAPTCHA( +data class CAPTCHAFeature( val enabled: Boolean, val key: String ) @Serializable -data class Voso( +data class LegacyVoiceFeature( val enabled: Boolean, val url: String, val ws: String ) +@Serializable +data class LiveKitFeature( + val enabled: Boolean, + val nodes: List +) + +@Serializable +data class LiveKitNode( + val name: String, + val lat: Double, + val lon: Double, + @SerialName("public_url") val publicUrl: String, +) + suspend fun getRootRoute(): Root { return RevoltHttp.get("/".api()).body() }