From 4e38cf9d407a6788c2a2232e5e4a91bab1e6b8af Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 29 Feb 2024 00:48:55 -0500 Subject: [PATCH] [+] Keychip endpoint --- .../java/icu/samnyan/aqua/net/UserRegistrar.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt b/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt index e274d031..bfa479a4 100644 --- a/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt +++ b/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt @@ -166,4 +166,19 @@ class UserRegistrar( SUCCESS } + + val keychipRange = 1e9.toULong()..1e10.toULong() - 1UL + + @API("/keychip") + @Doc("Get a Keychip ID so that the user can connect to the server.", "Success message") + suspend fun setupConnection(@RP token: Str) = jwt.auth(token) { u -> + if (u.keychip != null) mapOf("keychip" to u.keychip) + + // Generate a keychip id with 10 digits (e.g. A1234567890) + var new = "A" + keychipRange.random() + while (async { userRepo.findByKeychip(new) != null }) new = "A" + keychipRange.random() + async { userRepo.save(u.apply { keychip = new }) } + + mapOf("keychip" to new) + } } \ No newline at end of file