From ec55fae1ecd6f43f5e560614e3fbfd06be1134ae Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Tue, 20 Feb 2024 15:47:25 -0500 Subject: [PATCH] [+] Settings API --- .../java/icu/samnyan/aqua/net/UserRegistrar.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt b/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt index 08d4b949..81e8da8f 100644 --- a/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt +++ b/src/main/java/icu/samnyan/aqua/net/UserRegistrar.kt @@ -131,4 +131,20 @@ class UserRegistrar( @API("/me") suspend fun getUser(@RP token: Str) = jwt.auth(token) + + @API("/setting") + suspend fun setting(@RP token: Str, @RP key: Str, @RP value: Str) = jwt.auth(token) { u -> + // Check if the key is a settable field + val field = SETTING_FIELDS.find { it.name == key } ?: (400 - "Invalid setting") + + async { + // Set the validated field + field.setter.call(u, field.checker.call(validator, value)) + + // Save the user + userRepo.save(u) + } + + SUCCESS + } } \ No newline at end of file