[+] Keychip endpoint

This commit is contained in:
Azalea 2024-02-29 00:48:55 -05:00
parent 6026f6aebd
commit 4e38cf9d40

View File

@ -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)
}
}