From d42be7aa6628d2dbdb5248bfdca9a8e8572257fb Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 7 Feb 2024 19:24:01 +1300 Subject: [PATCH] Fixes for nested query parsing and MFA route authentication types --- .../java/users/delete-authenticator.md | 24 ---- docs/examples/java/users/list-providers.md | 21 ---- .../kotlin/users/delete-authenticator.md | 16 --- docs/examples/kotlin/users/list-providers.md | 13 -- .../main/java/io/appwrite/models/Session.kt | 4 +- .../main/java/io/appwrite/services/Users.kt | 113 ------------------ 6 files changed, 2 insertions(+), 189 deletions(-) delete mode 100644 docs/examples/java/users/delete-authenticator.md delete mode 100644 docs/examples/java/users/list-providers.md delete mode 100644 docs/examples/kotlin/users/delete-authenticator.md delete mode 100644 docs/examples/kotlin/users/list-providers.md delete mode 100644 library/src/main/java/io/appwrite/services/Users.kt diff --git a/docs/examples/java/users/delete-authenticator.md b/docs/examples/java/users/delete-authenticator.md deleted file mode 100644 index 2de3df7..0000000 --- a/docs/examples/java/users/delete-authenticator.md +++ /dev/null @@ -1,24 +0,0 @@ -import io.appwrite.Client; -import io.appwrite.coroutines.CoroutineCallback; -import io.appwrite.services.Users; -import io.appwrite.enums.AuthenticatorProvider; - -Client client = new Client(context) - .setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint - .setProject("5df5acd0d48c2"); // Your project ID - -Users users = new Users(client); - -users.deleteAuthenticator( - "[USER_ID]", - AuthenticatorProvider.TOTP, - "[OTP]", - new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } - - Log.d("Appwrite", result.toString()); - }) -); \ No newline at end of file diff --git a/docs/examples/java/users/list-providers.md b/docs/examples/java/users/list-providers.md deleted file mode 100644 index ca2f27d..0000000 --- a/docs/examples/java/users/list-providers.md +++ /dev/null @@ -1,21 +0,0 @@ -import io.appwrite.Client; -import io.appwrite.coroutines.CoroutineCallback; -import io.appwrite.services.Users; - -Client client = new Client(context) - .setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint - .setProject("5df5acd0d48c2"); // Your project ID - -Users users = new Users(client); - -users.listProviders( - "[USER_ID]", - new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } - - Log.d("Appwrite", result.toString()); - }) -); \ No newline at end of file diff --git a/docs/examples/kotlin/users/delete-authenticator.md b/docs/examples/kotlin/users/delete-authenticator.md deleted file mode 100644 index 9c36173..0000000 --- a/docs/examples/kotlin/users/delete-authenticator.md +++ /dev/null @@ -1,16 +0,0 @@ -import io.appwrite.Client -import io.appwrite.coroutines.CoroutineCallback -import io.appwrite.services.Users -import io.appwrite.enums.AuthenticatorProvider - -val client = Client(context) - .setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint - .setProject("5df5acd0d48c2") // Your project ID - -val users = Users(client) - -val response = users.deleteAuthenticator( - userId = "[USER_ID]", - provider = AuthenticatorProvider.TOTP, - otp = "[OTP]", -) \ No newline at end of file diff --git a/docs/examples/kotlin/users/list-providers.md b/docs/examples/kotlin/users/list-providers.md deleted file mode 100644 index 008cf93..0000000 --- a/docs/examples/kotlin/users/list-providers.md +++ /dev/null @@ -1,13 +0,0 @@ -import io.appwrite.Client -import io.appwrite.coroutines.CoroutineCallback -import io.appwrite.services.Users - -val client = Client(context) - .setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint - .setProject("5df5acd0d48c2") // Your project ID - -val users = Users(client) - -val response = users.listProviders( - userId = "[USER_ID]", -) \ No newline at end of file diff --git a/library/src/main/java/io/appwrite/models/Session.kt b/library/src/main/java/io/appwrite/models/Session.kt index acf70cd..da71926 100644 --- a/library/src/main/java/io/appwrite/models/Session.kt +++ b/library/src/main/java/io/appwrite/models/Session.kt @@ -161,7 +161,7 @@ data class Session( * Returns a list of active session factors. */ @SerializedName("factors") - val factors: Long, + val factors: List, /** * Secret used to authenticate the user. Only included if the request was made with an API key @@ -231,7 +231,7 @@ data class Session( countryCode = map["countryCode"] as String, countryName = map["countryName"] as String, current = map["current"] as Boolean, - factors = (map["factors"] as Number).toLong(), + factors = map["factors"] as List, secret = map["secret"] as String, ) } diff --git a/library/src/main/java/io/appwrite/services/Users.kt b/library/src/main/java/io/appwrite/services/Users.kt deleted file mode 100644 index e425c70..0000000 --- a/library/src/main/java/io/appwrite/services/Users.kt +++ /dev/null @@ -1,113 +0,0 @@ -package io.appwrite.services - -import android.net.Uri -import io.appwrite.Client -import io.appwrite.models.* -import io.appwrite.enums.* -import io.appwrite.exceptions.AppwriteException -import io.appwrite.extensions.classOf -import okhttp3.Cookie -import java.io.File - -/** - * The Users service allows you to manage your project users. -**/ -class Users(client: Client) : Service(client) { - - /** - * Delete Authenticator - * - * - * - * @param userId User ID. - * @param provider Provider. - * @param otp Valid verification token. - * @return [io.appwrite.models.User] - */ - suspend fun deleteAuthenticator( - userId: String, - provider: AuthenticatorProvider, - otp: String, - nestedType: Class, - ): io.appwrite.models.User { - val apiPath = "/users/{userId}/mfa/{provider}" - .replace("{userId}", userId) - .replace("{provider}", provider.value) - - val apiParams = mutableMapOf( - "otp" to otp, - ) - val apiHeaders = mutableMapOf( - "content-type" to "application/json", - ) - val converter: (Any) -> io.appwrite.models.User = { - @Suppress("UNCHECKED_CAST") - io.appwrite.models.User.from(map = it as Map, nestedType) - } - return client.call( - "DELETE", - apiPath, - apiHeaders, - apiParams, - responseType = classOf(), - converter, - ) - } - - /** - * Delete Authenticator - * - * - * - * @param userId User ID. - * @param provider Provider. - * @param otp Valid verification token. - * @return [io.appwrite.models.User] - */ - @Throws(AppwriteException::class) - suspend fun deleteAuthenticator( - userId: String, - provider: AuthenticatorProvider, - otp: String, - ): io.appwrite.models.User> = deleteAuthenticator( - userId, - provider, - otp, - nestedType = classOf(), - ) - - /** - * List Providers - * - * - * - * @param userId User ID. - * @return [io.appwrite.models.MfaProviders] - */ - suspend fun listProviders( - userId: String, - ): io.appwrite.models.MfaProviders { - val apiPath = "/users/{userId}/providers" - .replace("{userId}", userId) - - val apiParams = mutableMapOf( - ) - val apiHeaders = mutableMapOf( - "content-type" to "application/json", - ) - val converter: (Any) -> io.appwrite.models.MfaProviders = { - @Suppress("UNCHECKED_CAST") - io.appwrite.models.MfaProviders.from(map = it as Map) - } - return client.call( - "GET", - apiPath, - apiHeaders, - apiParams, - responseType = io.appwrite.models.MfaProviders::class.java, - converter, - ) - } - - -} \ No newline at end of file