diff --git a/README.md b/README.md index 5ced453..745f21c 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,12 @@ ![Maven Central](https://img.shields.io/maven-central/v/io.appwrite/sdk-for-android.svg?color=green&style=flat-square) ![License](https://img.shields.io/github/license/appwrite/sdk-for-android.svg?style=flat-square) -![Version](https://img.shields.io/badge/api%20version-1.8.0-blue.svg?style=flat-square) +![Version](https://img.shields.io/badge/api%20version-1.7.4-blue.svg?style=flat-square) [![Build Status](https://img.shields.io/travis/com/appwrite/sdk-generator?style=flat-square)](https://travis-ci.com/appwrite/sdk-generator) [![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite) [![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord) -**This SDK is compatible with Appwrite server version 1.8.x. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-android/releases).** +**This SDK is compatible with Appwrite server version 1.7.x. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-android/releases).** Appwrite is an open-source backend as a service server that abstract and simplify complex and repetitive development tasks behind a very simple to use REST API. Appwrite aims to help you develop your apps faster and in a more secure way. Use the Android SDK to integrate your app with the Appwrite server to easily start interacting with all of Appwrite backend APIs and tools. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs) @@ -38,7 +38,7 @@ repositories { Next, add the dependency to your project's `build.gradle(.kts)` file: ```groovy -implementation("io.appwrite:sdk-for-android:9.0.0") +implementation("io.appwrite:sdk-for-android:8.2.0") ``` ### Maven @@ -49,7 +49,7 @@ Add this to your project's `pom.xml` file: io.appwrite sdk-for-android - 9.0.0 + 8.2.0 ``` diff --git a/docs/examples/java/databases/create-document.md b/docs/examples/java/databases/create-document.md index 7fb129b..4804d75 100644 --- a/docs/examples/java/databases/create-document.md +++ b/docs/examples/java/databases/create-document.md @@ -4,9 +4,7 @@ import io.appwrite.services.Databases; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setSession("") // The user session to authenticate with - .setKey("") // - .setJWT(""); // Your secret JSON Web Token + .setProject(""); // Your project ID Databases databases = new Databases(client); diff --git a/docs/examples/java/tables/list-rows.md b/docs/examples/java/databases/decrement-document-attribute.md similarity index 64% rename from docs/examples/java/tables/list-rows.md rename to docs/examples/java/databases/decrement-document-attribute.md index 4d37570..de6a4ab 100644 --- a/docs/examples/java/tables/list-rows.md +++ b/docs/examples/java/databases/decrement-document-attribute.md @@ -1,17 +1,20 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; -import io.appwrite.services.Tables; +import io.appwrite.services.Databases; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint .setProject(""); // Your project ID -Tables tables = new Tables(client); +Databases databases = new Databases(client); -tables.listRows( +databases.decrementDocumentAttribute( "", // databaseId - "", // tableId - listOf(), // queries (optional) + "", // collectionId + "", // documentId + "", // attribute + 0, // value (optional) + 0, // min (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/java/tables/update-row.md b/docs/examples/java/databases/increment-document-attribute.md similarity index 64% rename from docs/examples/java/tables/update-row.md rename to docs/examples/java/databases/increment-document-attribute.md index 0421c9c..94ffa9d 100644 --- a/docs/examples/java/tables/update-row.md +++ b/docs/examples/java/databases/increment-document-attribute.md @@ -1,19 +1,20 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; -import io.appwrite.services.Tables; +import io.appwrite.services.Databases; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint .setProject(""); // Your project ID -Tables tables = new Tables(client); +Databases databases = new Databases(client); -tables.updateRow( +databases.incrementDocumentAttribute( "", // databaseId - "", // tableId - "", // rowId - mapOf( "a" to "b" ), // data (optional) - listOf("read("any")"), // permissions (optional) + "", // collectionId + "", // documentId + "", // attribute + 0, // value (optional) + 0, // max (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/java/databases/upsert-document.md b/docs/examples/java/databases/upsert-document.md index ba7336f..868576b 100644 --- a/docs/examples/java/databases/upsert-document.md +++ b/docs/examples/java/databases/upsert-document.md @@ -4,9 +4,7 @@ import io.appwrite.services.Databases; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setSession("") // The user session to authenticate with - .setKey("") // - .setJWT(""); // Your secret JSON Web Token + .setProject(""); // Your project ID Databases databases = new Databases(client); @@ -14,6 +12,8 @@ databases.upsertDocument( "", // databaseId "", // collectionId "", // documentId + mapOf( "a" to "b" ), // data + listOf("read("any")"), // permissions (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/java/tables/create-row.md b/docs/examples/java/tables/create-row.md deleted file mode 100644 index 8102b82..0000000 --- a/docs/examples/java/tables/create-row.md +++ /dev/null @@ -1,28 +0,0 @@ -import io.appwrite.Client; -import io.appwrite.coroutines.CoroutineCallback; -import io.appwrite.services.Tables; - -Client client = new Client(context) - .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setSession("") // The user session to authenticate with - .setKey("") // - .setJWT(""); // Your secret JSON Web Token - -Tables tables = new Tables(client); - -tables.createRow( - "", // databaseId - "", // tableId - "", // rowId - mapOf( "a" to "b" ), // data - listOf("read("any")"), // permissions (optional) - new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } - - Log.d("Appwrite", result.toString()); - }) -); - diff --git a/docs/examples/java/tables/create-rows.md b/docs/examples/java/tables/create-rows.md deleted file mode 100644 index 26f5d67..0000000 --- a/docs/examples/java/tables/create-rows.md +++ /dev/null @@ -1,25 +0,0 @@ -import io.appwrite.Client; -import io.appwrite.coroutines.CoroutineCallback; -import io.appwrite.services.Tables; - -Client client = new Client(context) - .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setAdmin("") // - .setKey(""); // - -Tables tables = new Tables(client); - -tables.createRows( - "", // databaseId - "", // tableId - listOf(), // rows - new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } - - Log.d("Appwrite", result.toString()); - }) -); - diff --git a/docs/examples/java/tables/delete-row.md b/docs/examples/java/tables/delete-row.md deleted file mode 100644 index 596a8b7..0000000 --- a/docs/examples/java/tables/delete-row.md +++ /dev/null @@ -1,24 +0,0 @@ -import io.appwrite.Client; -import io.appwrite.coroutines.CoroutineCallback; -import io.appwrite.services.Tables; - -Client client = new Client(context) - .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setProject(""); // Your project ID - -Tables tables = new Tables(client); - -tables.deleteRow( - "", // databaseId - "", // tableId - "", // rowId - new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } - - Log.d("Appwrite", result.toString()); - }) -); - diff --git a/docs/examples/java/tables/get-row.md b/docs/examples/java/tables/get-row.md deleted file mode 100644 index 882a195..0000000 --- a/docs/examples/java/tables/get-row.md +++ /dev/null @@ -1,25 +0,0 @@ -import io.appwrite.Client; -import io.appwrite.coroutines.CoroutineCallback; -import io.appwrite.services.Tables; - -Client client = new Client(context) - .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setProject(""); // Your project ID - -Tables tables = new Tables(client); - -tables.getRow( - "", // databaseId - "", // tableId - "", // rowId - listOf(), // queries (optional) - new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } - - Log.d("Appwrite", result.toString()); - }) -); - diff --git a/docs/examples/java/tables/upsert-row.md b/docs/examples/java/tables/upsert-row.md deleted file mode 100644 index a8be0cf..0000000 --- a/docs/examples/java/tables/upsert-row.md +++ /dev/null @@ -1,26 +0,0 @@ -import io.appwrite.Client; -import io.appwrite.coroutines.CoroutineCallback; -import io.appwrite.services.Tables; - -Client client = new Client(context) - .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setSession("") // The user session to authenticate with - .setKey("") // - .setJWT(""); // Your secret JSON Web Token - -Tables tables = new Tables(client); - -tables.upsertRow( - "", // databaseId - "", // tableId - "", // rowId - new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } - - Log.d("Appwrite", result.toString()); - }) -); - diff --git a/docs/examples/kotlin/databases/create-document.md b/docs/examples/kotlin/databases/create-document.md index 0bafb31..849a636 100644 --- a/docs/examples/kotlin/databases/create-document.md +++ b/docs/examples/kotlin/databases/create-document.md @@ -4,9 +4,7 @@ import io.appwrite.services.Databases val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setSession("") // The user session to authenticate with - .setKey("") // - .setJWT("") // Your secret JSON Web Token + .setProject("") // Your project ID val databases = Databases(client) diff --git a/docs/examples/kotlin/tables/update-row.md b/docs/examples/kotlin/databases/decrement-document-attribute.md similarity index 50% rename from docs/examples/kotlin/tables/update-row.md rename to docs/examples/kotlin/databases/decrement-document-attribute.md index e9b515c..c500fa8 100644 --- a/docs/examples/kotlin/tables/update-row.md +++ b/docs/examples/kotlin/databases/decrement-document-attribute.md @@ -1,17 +1,18 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback -import io.appwrite.services.Tables +import io.appwrite.services.Databases val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint .setProject("") // Your project ID -val tables = Tables(client) +val databases = Databases(client) -val result = tables.updateRow( +val result = databases.decrementDocumentAttribute( databaseId = "", - tableId = "", - rowId = "", - data = mapOf( "a" to "b" ), // (optional) - permissions = listOf("read("any")"), // (optional) + collectionId = "", + documentId = "", + attribute = "", + value = 0, // (optional) + min = 0, // (optional) ) \ No newline at end of file diff --git a/docs/examples/kotlin/tables/get-row.md b/docs/examples/kotlin/databases/increment-document-attribute.md similarity index 50% rename from docs/examples/kotlin/tables/get-row.md rename to docs/examples/kotlin/databases/increment-document-attribute.md index 15dabff..0ae6b02 100644 --- a/docs/examples/kotlin/tables/get-row.md +++ b/docs/examples/kotlin/databases/increment-document-attribute.md @@ -1,16 +1,18 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback -import io.appwrite.services.Tables +import io.appwrite.services.Databases val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint .setProject("") // Your project ID -val tables = Tables(client) +val databases = Databases(client) -val result = tables.getRow( +val result = databases.incrementDocumentAttribute( databaseId = "", - tableId = "", - rowId = "", - queries = listOf(), // (optional) + collectionId = "", + documentId = "", + attribute = "", + value = 0, // (optional) + max = 0, // (optional) ) \ No newline at end of file diff --git a/docs/examples/kotlin/databases/upsert-document.md b/docs/examples/kotlin/databases/upsert-document.md index 7939fde..a31dfc8 100644 --- a/docs/examples/kotlin/databases/upsert-document.md +++ b/docs/examples/kotlin/databases/upsert-document.md @@ -4,9 +4,7 @@ import io.appwrite.services.Databases val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setSession("") // The user session to authenticate with - .setKey("") // - .setJWT("") // Your secret JSON Web Token + .setProject("") // Your project ID val databases = Databases(client) @@ -14,4 +12,6 @@ val result = databases.upsertDocument( databaseId = "", collectionId = "", documentId = "", + data = mapOf( "a" to "b" ), + permissions = listOf("read("any")"), // (optional) ) \ No newline at end of file diff --git a/docs/examples/kotlin/tables/create-row.md b/docs/examples/kotlin/tables/create-row.md deleted file mode 100644 index 8c581bf..0000000 --- a/docs/examples/kotlin/tables/create-row.md +++ /dev/null @@ -1,19 +0,0 @@ -import io.appwrite.Client -import io.appwrite.coroutines.CoroutineCallback -import io.appwrite.services.Tables - -val client = Client(context) - .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setSession("") // The user session to authenticate with - .setKey("") // - .setJWT("") // Your secret JSON Web Token - -val tables = Tables(client) - -val result = tables.createRow( - databaseId = "", - tableId = "", - rowId = "", - data = mapOf( "a" to "b" ), - permissions = listOf("read("any")"), // (optional) -) \ No newline at end of file diff --git a/docs/examples/kotlin/tables/create-rows.md b/docs/examples/kotlin/tables/create-rows.md deleted file mode 100644 index 1fde9c5..0000000 --- a/docs/examples/kotlin/tables/create-rows.md +++ /dev/null @@ -1,16 +0,0 @@ -import io.appwrite.Client -import io.appwrite.coroutines.CoroutineCallback -import io.appwrite.services.Tables - -val client = Client(context) - .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setAdmin("") // - .setKey("") // - -val tables = Tables(client) - -val result = tables.createRows( - databaseId = "", - tableId = "", - rows = listOf(), -) \ No newline at end of file diff --git a/docs/examples/kotlin/tables/delete-row.md b/docs/examples/kotlin/tables/delete-row.md deleted file mode 100644 index ffa3229..0000000 --- a/docs/examples/kotlin/tables/delete-row.md +++ /dev/null @@ -1,15 +0,0 @@ -import io.appwrite.Client -import io.appwrite.coroutines.CoroutineCallback -import io.appwrite.services.Tables - -val client = Client(context) - .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setProject("") // Your project ID - -val tables = Tables(client) - -val result = tables.deleteRow( - databaseId = "", - tableId = "", - rowId = "", -) \ No newline at end of file diff --git a/docs/examples/kotlin/tables/list-rows.md b/docs/examples/kotlin/tables/list-rows.md deleted file mode 100644 index ff36543..0000000 --- a/docs/examples/kotlin/tables/list-rows.md +++ /dev/null @@ -1,15 +0,0 @@ -import io.appwrite.Client -import io.appwrite.coroutines.CoroutineCallback -import io.appwrite.services.Tables - -val client = Client(context) - .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setProject("") // Your project ID - -val tables = Tables(client) - -val result = tables.listRows( - databaseId = "", - tableId = "", - queries = listOf(), // (optional) -) \ No newline at end of file diff --git a/docs/examples/kotlin/tables/upsert-row.md b/docs/examples/kotlin/tables/upsert-row.md deleted file mode 100644 index 6b7cb66..0000000 --- a/docs/examples/kotlin/tables/upsert-row.md +++ /dev/null @@ -1,17 +0,0 @@ -import io.appwrite.Client -import io.appwrite.coroutines.CoroutineCallback -import io.appwrite.services.Tables - -val client = Client(context) - .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint - .setSession("") // The user session to authenticate with - .setKey("") // - .setJWT("") // Your secret JSON Web Token - -val tables = Tables(client) - -val result = tables.upsertRow( - databaseId = "", - tableId = "", - rowId = "", -) \ No newline at end of file diff --git a/library/src/main/java/io/appwrite/Client.kt b/library/src/main/java/io/appwrite/Client.kt index 10f9255..bf0480f 100644 --- a/library/src/main/java/io/appwrite/Client.kt +++ b/library/src/main/java/io/appwrite/Client.kt @@ -87,8 +87,8 @@ class Client @JvmOverloads constructor( "x-sdk-name" to "Android", "x-sdk-platform" to "client", "x-sdk-language" to "android", - "x-sdk-version" to "9.0.0", - "x-appwrite-response-format" to "1.8.0" + "x-sdk-version" to "8.2.0", + "x-appwrite-response-format" to "1.7.0" ) config = mutableMapOf() diff --git a/library/src/main/java/io/appwrite/models/ContinentList.kt b/library/src/main/java/io/appwrite/models/ContinentList.kt index a6ec310..fdd490a 100644 --- a/library/src/main/java/io/appwrite/models/ContinentList.kt +++ b/library/src/main/java/io/appwrite/models/ContinentList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class ContinentList( /** - * Total number of continents rows that matched your query. + * Total number of continents documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/CountryList.kt b/library/src/main/java/io/appwrite/models/CountryList.kt index 546cf73..350a894 100644 --- a/library/src/main/java/io/appwrite/models/CountryList.kt +++ b/library/src/main/java/io/appwrite/models/CountryList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class CountryList( /** - * Total number of countries rows that matched your query. + * Total number of countries documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/CurrencyList.kt b/library/src/main/java/io/appwrite/models/CurrencyList.kt index 95dec92..fe1e001 100644 --- a/library/src/main/java/io/appwrite/models/CurrencyList.kt +++ b/library/src/main/java/io/appwrite/models/CurrencyList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class CurrencyList( /** - * Total number of currencies rows that matched your query. + * Total number of currencies documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/DocumentList.kt b/library/src/main/java/io/appwrite/models/DocumentList.kt index 6f40579..fa3dd20 100644 --- a/library/src/main/java/io/appwrite/models/DocumentList.kt +++ b/library/src/main/java/io/appwrite/models/DocumentList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class DocumentList( /** - * Total number of documents rows that matched your query. + * Total number of documents documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/ExecutionList.kt b/library/src/main/java/io/appwrite/models/ExecutionList.kt index ac11e4f..322aeee 100644 --- a/library/src/main/java/io/appwrite/models/ExecutionList.kt +++ b/library/src/main/java/io/appwrite/models/ExecutionList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class ExecutionList( /** - * Total number of executions rows that matched your query. + * Total number of executions documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/FileList.kt b/library/src/main/java/io/appwrite/models/FileList.kt index ba69ea8..5af18f1 100644 --- a/library/src/main/java/io/appwrite/models/FileList.kt +++ b/library/src/main/java/io/appwrite/models/FileList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class FileList( /** - * Total number of files rows that matched your query. + * Total number of files documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/IdentityList.kt b/library/src/main/java/io/appwrite/models/IdentityList.kt index 2e1a33a..1cbb07d 100644 --- a/library/src/main/java/io/appwrite/models/IdentityList.kt +++ b/library/src/main/java/io/appwrite/models/IdentityList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class IdentityList( /** - * Total number of identities rows that matched your query. + * Total number of identities documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/LanguageList.kt b/library/src/main/java/io/appwrite/models/LanguageList.kt index ab78452..07559b9 100644 --- a/library/src/main/java/io/appwrite/models/LanguageList.kt +++ b/library/src/main/java/io/appwrite/models/LanguageList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class LanguageList( /** - * Total number of languages rows that matched your query. + * Total number of languages documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/LocaleCodeList.kt b/library/src/main/java/io/appwrite/models/LocaleCodeList.kt index 6f47333..3973a03 100644 --- a/library/src/main/java/io/appwrite/models/LocaleCodeList.kt +++ b/library/src/main/java/io/appwrite/models/LocaleCodeList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class LocaleCodeList( /** - * Total number of localeCodes rows that matched your query. + * Total number of localeCodes documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/LogList.kt b/library/src/main/java/io/appwrite/models/LogList.kt index d2e0b00..b9f381c 100644 --- a/library/src/main/java/io/appwrite/models/LogList.kt +++ b/library/src/main/java/io/appwrite/models/LogList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class LogList( /** - * Total number of logs rows that matched your query. + * Total number of logs documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/MembershipList.kt b/library/src/main/java/io/appwrite/models/MembershipList.kt index efcffc4..7feaaaa 100644 --- a/library/src/main/java/io/appwrite/models/MembershipList.kt +++ b/library/src/main/java/io/appwrite/models/MembershipList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class MembershipList( /** - * Total number of memberships rows that matched your query. + * Total number of memberships documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/PhoneList.kt b/library/src/main/java/io/appwrite/models/PhoneList.kt index 675295f..b17de4f 100644 --- a/library/src/main/java/io/appwrite/models/PhoneList.kt +++ b/library/src/main/java/io/appwrite/models/PhoneList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class PhoneList( /** - * Total number of phones rows that matched your query. + * Total number of phones documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/Row.kt b/library/src/main/java/io/appwrite/models/Row.kt deleted file mode 100644 index bb5c14f..0000000 --- a/library/src/main/java/io/appwrite/models/Row.kt +++ /dev/null @@ -1,105 +0,0 @@ -package io.appwrite.models - -import com.google.gson.annotations.SerializedName -import io.appwrite.extensions.jsonCast - -/** - * Row - */ -data class Row( - /** - * Row ID. - */ - @SerializedName("\$id") - val id: String, - - /** - * Row automatically incrementing ID. - */ - @SerializedName("\$sequence") - val sequence: Long, - - /** - * Table ID. - */ - @SerializedName("\$tableId") - val tableId: String, - - /** - * Database ID. - */ - @SerializedName("\$databaseId") - val databaseId: String, - - /** - * Row creation date in ISO 8601 format. - */ - @SerializedName("\$createdAt") - val createdAt: String, - - /** - * Row update date in ISO 8601 format. - */ - @SerializedName("\$updatedAt") - val updatedAt: String, - - /** - * Row permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). - */ - @SerializedName("\$permissions") - val permissions: List, - - /** - * Additional properties - */ - @SerializedName("data") - val data: T -) { - fun toMap(): Map = mapOf( - "\$id" to id as Any, - "\$sequence" to sequence as Any, - "\$tableId" to tableId as Any, - "\$databaseId" to databaseId as Any, - "\$createdAt" to createdAt as Any, - "\$updatedAt" to updatedAt as Any, - "\$permissions" to permissions as Any, - "data" to data!!.jsonCast(to = Map::class.java) - ) - - companion object { - operator fun invoke( - id: String, - sequence: Long, - tableId: String, - databaseId: String, - createdAt: String, - updatedAt: String, - permissions: List, - data: Map - ) = Row>( - id, - sequence, - tableId, - databaseId, - createdAt, - updatedAt, - permissions, - data - ) - - @Suppress("UNCHECKED_CAST") - fun from( - map: Map, - nestedType: Class - ) = Row( - id = map["\$id"] as String, - sequence = (map["\$sequence"] as Number).toLong(), - tableId = map["\$tableId"] as String, - databaseId = map["\$databaseId"] as String, - createdAt = map["\$createdAt"] as String, - updatedAt = map["\$updatedAt"] as String, - permissions = map["\$permissions"] as List, - data = map.jsonCast(to = nestedType) - ) - } -} \ No newline at end of file diff --git a/library/src/main/java/io/appwrite/models/RowList.kt b/library/src/main/java/io/appwrite/models/RowList.kt deleted file mode 100644 index 289f39b..0000000 --- a/library/src/main/java/io/appwrite/models/RowList.kt +++ /dev/null @@ -1,46 +0,0 @@ -package io.appwrite.models - -import com.google.gson.annotations.SerializedName -import io.appwrite.extensions.jsonCast - -/** - * Rows List - */ -data class RowList( - /** - * Total number of rows rows that matched your query. - */ - @SerializedName("total") - val total: Long, - - /** - * List of rows. - */ - @SerializedName("rows") - val rows: List>, - -) { - fun toMap(): Map = mapOf( - "total" to total as Any, - "rows" to rows.map { it.toMap() } as Any, - ) - - companion object { - operator fun invoke( - total: Long, - rows: List>>, - ) = RowList>( - total, - rows, - ) - - @Suppress("UNCHECKED_CAST") - fun from( - map: Map, - nestedType: Class - ) = RowList( - total = (map["total"] as Number).toLong(), - rows = (map["rows"] as List>).map { Row.from(map = it, nestedType) }, - ) - } -} \ No newline at end of file diff --git a/library/src/main/java/io/appwrite/models/SessionList.kt b/library/src/main/java/io/appwrite/models/SessionList.kt index 13e0c36..c7080e6 100644 --- a/library/src/main/java/io/appwrite/models/SessionList.kt +++ b/library/src/main/java/io/appwrite/models/SessionList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class SessionList( /** - * Total number of sessions rows that matched your query. + * Total number of sessions documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/models/TeamList.kt b/library/src/main/java/io/appwrite/models/TeamList.kt index f1a1968..17ccd6b 100644 --- a/library/src/main/java/io/appwrite/models/TeamList.kt +++ b/library/src/main/java/io/appwrite/models/TeamList.kt @@ -8,7 +8,7 @@ import io.appwrite.extensions.jsonCast */ data class TeamList( /** - * Total number of teams rows that matched your query. + * Total number of teams documents that matched your query. */ @SerializedName("total") val total: Long, diff --git a/library/src/main/java/io/appwrite/services/Account.kt b/library/src/main/java/io/appwrite/services/Account.kt index bebf4db..f50f074 100644 --- a/library/src/main/java/io/appwrite/services/Account.kt +++ b/library/src/main/java/io/appwrite/services/Account.kt @@ -1067,9 +1067,6 @@ class Account(client: Client) : Service(client) { * @param secret Valid verification token. * @return [io.appwrite.models.Session] */ - @Deprecated( - message = "This API has been deprecated." - ) suspend fun updateMagicURLSession( userId: String, secret: String, @@ -1177,9 +1174,6 @@ class Account(client: Client) : Service(client) { * @param secret Valid verification token. * @return [io.appwrite.models.Session] */ - @Deprecated( - message = "This API has been deprecated." - ) suspend fun updatePhoneSession( userId: String, secret: String, diff --git a/library/src/main/java/io/appwrite/services/Databases.kt b/library/src/main/java/io/appwrite/services/Databases.kt index d219644..edc10f5 100644 --- a/library/src/main/java/io/appwrite/services/Databases.kt +++ b/library/src/main/java/io/appwrite/services/Databases.kt @@ -23,11 +23,6 @@ class Databases(client: Client) : Service(client) { * @param queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. * @return [io.appwrite.models.DocumentList] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.listRows` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.listRows"), - since = "1.8.0" - ) @JvmOverloads suspend fun listDocuments( databaseId: String, @@ -66,11 +61,6 @@ class Databases(client: Client) : Service(client) { * @param queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. * @return [io.appwrite.models.DocumentList] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.listRows` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.listRows"), - since = "1.8.0" - ) @JvmOverloads @Throws(AppwriteException::class) suspend fun listDocuments( @@ -94,11 +84,6 @@ class Databases(client: Client) : Service(client) { * @param permissions An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). * @return [io.appwrite.models.Document] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.createRow` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.createRow"), - since = "1.8.0" - ) @JvmOverloads suspend fun createDocument( databaseId: String, @@ -144,11 +129,6 @@ class Databases(client: Client) : Service(client) { * @param permissions An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). * @return [io.appwrite.models.Document] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.createRow` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.createRow"), - since = "1.8.0" - ) @JvmOverloads @Throws(AppwriteException::class) suspend fun createDocument( @@ -175,11 +155,6 @@ class Databases(client: Client) : Service(client) { * @param queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. * @return [io.appwrite.models.Document] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.getRow` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.getRow"), - since = "1.8.0" - ) @JvmOverloads suspend fun getDocument( databaseId: String, @@ -221,11 +196,6 @@ class Databases(client: Client) : Service(client) { * @param queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. * @return [io.appwrite.models.Document] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.getRow` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.getRow"), - since = "1.8.0" - ) @JvmOverloads @Throws(AppwriteException::class) suspend fun getDocument( @@ -247,17 +217,17 @@ class Databases(client: Client) : Service(client) { * @param databaseId Database ID. * @param collectionId Collection ID. * @param documentId Document ID. + * @param data Document data as JSON object. Include all required attributes of the document to be created or updated. + * @param permissions An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions). * @return [io.appwrite.models.Document] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.upsertRow` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.upsertRow"), - since = "1.8.0" - ) + @JvmOverloads suspend fun upsertDocument( databaseId: String, collectionId: String, documentId: String, + data: Any, + permissions: List? = null, nestedType: Class, ): io.appwrite.models.Document { val apiPath = "/databases/{databaseId}/collections/{collectionId}/documents/{documentId}" @@ -266,6 +236,8 @@ class Databases(client: Client) : Service(client) { .replace("{documentId}", documentId) val apiParams = mutableMapOf( + "data" to data, + "permissions" to permissions, ) val apiHeaders = mutableMapOf( "content-type" to "application/json", @@ -290,22 +262,24 @@ class Databases(client: Client) : Service(client) { * @param databaseId Database ID. * @param collectionId Collection ID. * @param documentId Document ID. + * @param data Document data as JSON object. Include all required attributes of the document to be created or updated. + * @param permissions An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions). * @return [io.appwrite.models.Document] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.upsertRow` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.upsertRow"), - since = "1.8.0" - ) + @JvmOverloads @Throws(AppwriteException::class) suspend fun upsertDocument( databaseId: String, collectionId: String, documentId: String, + data: Any, + permissions: List? = null, ): io.appwrite.models.Document> = upsertDocument( databaseId, collectionId, documentId, + data, + permissions, nestedType = classOf(), ) @@ -319,11 +293,6 @@ class Databases(client: Client) : Service(client) { * @param permissions An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions). * @return [io.appwrite.models.Document] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.updateRow` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.updateRow"), - since = "1.8.0" - ) @JvmOverloads suspend fun updateDocument( databaseId: String, @@ -369,11 +338,6 @@ class Databases(client: Client) : Service(client) { * @param permissions An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions). * @return [io.appwrite.models.Document] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.updateRow` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.updateRow"), - since = "1.8.0" - ) @JvmOverloads @Throws(AppwriteException::class) suspend fun updateDocument( @@ -399,11 +363,6 @@ class Databases(client: Client) : Service(client) { * @param documentId Document ID. * @return [Any] */ - @Deprecated( - message = "This API has been deprecated since 1.8.0. Please use `Tables.deleteRow` instead.", - replaceWith = ReplaceWith("io.appwrite.services.Tables.deleteRow"), - since = "1.8.0" - ) suspend fun deleteDocument( databaseId: String, collectionId: String, @@ -429,4 +388,160 @@ class Databases(client: Client) : Service(client) { } + /** + * Decrement a specific attribute of a document by a given value. + * + * @param databaseId Database ID. + * @param collectionId Collection ID. + * @param documentId Document ID. + * @param attribute Attribute key. + * @param value Value to decrement the attribute by. The value must be a number. + * @param min Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown. + * @return [io.appwrite.models.Document] + */ + @JvmOverloads + suspend fun decrementDocumentAttribute( + databaseId: String, + collectionId: String, + documentId: String, + attribute: String, + value: Double? = null, + min: Double? = null, + nestedType: Class, + ): io.appwrite.models.Document { + val apiPath = "/databases/{databaseId}/collections/{collectionId}/documents/{documentId}/{attribute}/decrement" + .replace("{databaseId}", databaseId) + .replace("{collectionId}", collectionId) + .replace("{documentId}", documentId) + .replace("{attribute}", attribute) + + val apiParams = mutableMapOf( + "value" to value, + "min" to min, + ) + val apiHeaders = mutableMapOf( + "content-type" to "application/json", + ) + val converter: (Any) -> io.appwrite.models.Document = { + @Suppress("UNCHECKED_CAST") + io.appwrite.models.Document.from(map = it as Map, nestedType) + } + return client.call( + "PATCH", + apiPath, + apiHeaders, + apiParams, + responseType = classOf(), + converter, + ) + } + + /** + * Decrement a specific attribute of a document by a given value. + * + * @param databaseId Database ID. + * @param collectionId Collection ID. + * @param documentId Document ID. + * @param attribute Attribute key. + * @param value Value to decrement the attribute by. The value must be a number. + * @param min Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown. + * @return [io.appwrite.models.Document] + */ + @JvmOverloads + @Throws(AppwriteException::class) + suspend fun decrementDocumentAttribute( + databaseId: String, + collectionId: String, + documentId: String, + attribute: String, + value: Double? = null, + min: Double? = null, + ): io.appwrite.models.Document> = decrementDocumentAttribute( + databaseId, + collectionId, + documentId, + attribute, + value, + min, + nestedType = classOf(), + ) + + /** + * Increment a specific attribute of a document by a given value. + * + * @param databaseId Database ID. + * @param collectionId Collection ID. + * @param documentId Document ID. + * @param attribute Attribute key. + * @param value Value to increment the attribute by. The value must be a number. + * @param max Maximum value for the attribute. If the current value is greater than this value, an error will be thrown. + * @return [io.appwrite.models.Document] + */ + @JvmOverloads + suspend fun incrementDocumentAttribute( + databaseId: String, + collectionId: String, + documentId: String, + attribute: String, + value: Double? = null, + max: Double? = null, + nestedType: Class, + ): io.appwrite.models.Document { + val apiPath = "/databases/{databaseId}/collections/{collectionId}/documents/{documentId}/{attribute}/increment" + .replace("{databaseId}", databaseId) + .replace("{collectionId}", collectionId) + .replace("{documentId}", documentId) + .replace("{attribute}", attribute) + + val apiParams = mutableMapOf( + "value" to value, + "max" to max, + ) + val apiHeaders = mutableMapOf( + "content-type" to "application/json", + ) + val converter: (Any) -> io.appwrite.models.Document = { + @Suppress("UNCHECKED_CAST") + io.appwrite.models.Document.from(map = it as Map, nestedType) + } + return client.call( + "PATCH", + apiPath, + apiHeaders, + apiParams, + responseType = classOf(), + converter, + ) + } + + /** + * Increment a specific attribute of a document by a given value. + * + * @param databaseId Database ID. + * @param collectionId Collection ID. + * @param documentId Document ID. + * @param attribute Attribute key. + * @param value Value to increment the attribute by. The value must be a number. + * @param max Maximum value for the attribute. If the current value is greater than this value, an error will be thrown. + * @return [io.appwrite.models.Document] + */ + @JvmOverloads + @Throws(AppwriteException::class) + suspend fun incrementDocumentAttribute( + databaseId: String, + collectionId: String, + documentId: String, + attribute: String, + value: Double? = null, + max: Double? = null, + ): io.appwrite.models.Document> = incrementDocumentAttribute( + databaseId, + collectionId, + documentId, + attribute, + value, + max, + nestedType = classOf(), + ) + } \ No newline at end of file diff --git a/library/src/main/java/io/appwrite/services/Tables.kt b/library/src/main/java/io/appwrite/services/Tables.kt deleted file mode 100644 index f1ff34d..0000000 --- a/library/src/main/java/io/appwrite/services/Tables.kt +++ /dev/null @@ -1,435 +0,0 @@ -package io.appwrite.services - -import android.net.Uri -import io.appwrite.Client -import io.appwrite.Service -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 Tables service allows you to create structured tables of rows, query and filter lists of rows -**/ -class Tables(client: Client) : Service(client) { - - /** - * Get a list of all the user's rows in a given table. You can use the query params to filter your results. - * - * @param databaseId Database ID. - * @param tableId Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/tables#tablesCreate). - * @param queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. - * @return [io.appwrite.models.RowList] - */ - @JvmOverloads - suspend fun listRows( - databaseId: String, - tableId: String, - queries: List? = null, - nestedType: Class, - ): io.appwrite.models.RowList { - val apiPath = "/databases/{databaseId}/tables/{tableId}/rows" - .replace("{databaseId}", databaseId) - .replace("{tableId}", tableId) - - val apiParams = mutableMapOf( - "queries" to queries, - ) - val apiHeaders = mutableMapOf( - ) - val converter: (Any) -> io.appwrite.models.RowList = { - @Suppress("UNCHECKED_CAST") - io.appwrite.models.RowList.from(map = it as Map, nestedType) - } - return client.call( - "GET", - apiPath, - apiHeaders, - apiParams, - responseType = classOf(), - converter, - ) - } - - /** - * Get a list of all the user's rows in a given table. You can use the query params to filter your results. - * - * @param databaseId Database ID. - * @param tableId Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/tables#tablesCreate). - * @param queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. - * @return [io.appwrite.models.RowList] - */ - @JvmOverloads - @Throws(AppwriteException::class) - suspend fun listRows( - databaseId: String, - tableId: String, - queries: List? = null, - ): io.appwrite.models.RowList> = listRows( - databaseId, - tableId, - queries, - nestedType = classOf(), - ) - - /** - * Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateTable) API or directly from your database console. - * - * @param databaseId Database ID. - * @param tableId Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/tables#tablesCreate). Make sure to define columns before creating rows. - * @param rowId Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. - * @param data Row data as JSON object. - * @param permissions An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). - * @return [io.appwrite.models.Row] - */ - @JvmOverloads - suspend fun createRow( - databaseId: String, - tableId: String, - rowId: String, - data: Any, - permissions: List? = null, - nestedType: Class, - ): io.appwrite.models.Row { - val apiPath = "/databases/{databaseId}/tables/{tableId}/rows" - .replace("{databaseId}", databaseId) - .replace("{tableId}", tableId) - - val apiParams = mutableMapOf( - "rowId" to rowId, - "data" to data, - "permissions" to permissions, - ) - val apiHeaders = mutableMapOf( - "content-type" to "application/json", - ) - val converter: (Any) -> io.appwrite.models.Row = { - @Suppress("UNCHECKED_CAST") - io.appwrite.models.Row.from(map = it as Map, nestedType) - } - return client.call( - "POST", - apiPath, - apiHeaders, - apiParams, - responseType = classOf(), - converter, - ) - } - - /** - * Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateTable) API or directly from your database console. - * - * @param databaseId Database ID. - * @param tableId Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/tables#tablesCreate). Make sure to define columns before creating rows. - * @param rowId Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. - * @param data Row data as JSON object. - * @param permissions An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). - * @return [io.appwrite.models.Row] - */ - @JvmOverloads - @Throws(AppwriteException::class) - suspend fun createRow( - databaseId: String, - tableId: String, - rowId: String, - data: Any, - permissions: List? = null, - ): io.appwrite.models.Row> = createRow( - databaseId, - tableId, - rowId, - data, - permissions, - nestedType = classOf(), - ) - - /** - * Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateTable) API or directly from your database console. - * - * @param databaseId Database ID. - * @param tableId Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/tables#tablesCreate). Make sure to define columns before creating rows. - * @param rows Array of documents data as JSON objects. - * @return [io.appwrite.models.RowList] - */ - suspend fun createRows( - databaseId: String, - tableId: String, - rows: List, - nestedType: Class, - ): io.appwrite.models.RowList { - val apiPath = "/databases/{databaseId}/tables/{tableId}/rows" - .replace("{databaseId}", databaseId) - .replace("{tableId}", tableId) - - val apiParams = mutableMapOf( - "rows" to rows, - ) - val apiHeaders = mutableMapOf( - "content-type" to "application/json", - ) - val converter: (Any) -> io.appwrite.models.RowList = { - @Suppress("UNCHECKED_CAST") - io.appwrite.models.RowList.from(map = it as Map, nestedType) - } - return client.call( - "POST", - apiPath, - apiHeaders, - apiParams, - responseType = classOf(), - converter, - ) - } - - /** - * Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateTable) API or directly from your database console. - * - * @param databaseId Database ID. - * @param tableId Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/tables#tablesCreate). Make sure to define columns before creating rows. - * @param rows Array of documents data as JSON objects. - * @return [io.appwrite.models.RowList] - */ - @Throws(AppwriteException::class) - suspend fun createRows( - databaseId: String, - tableId: String, - rows: List, - ): io.appwrite.models.RowList> = createRows( - databaseId, - tableId, - rows, - nestedType = classOf(), - ) - - /** - * Get a row by its unique ID. This endpoint response returns a JSON object with the row data. - * - * @param databaseId Database ID. - * @param tableId Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/tables#tablesCreate). - * @param rowId Row ID. - * @param queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. - * @return [io.appwrite.models.Row] - */ - @JvmOverloads - suspend fun getRow( - databaseId: String, - tableId: String, - rowId: String, - queries: List? = null, - nestedType: Class, - ): io.appwrite.models.Row { - val apiPath = "/databases/{databaseId}/tables/{tableId}/rows/{rowId}" - .replace("{databaseId}", databaseId) - .replace("{tableId}", tableId) - .replace("{rowId}", rowId) - - val apiParams = mutableMapOf( - "queries" to queries, - ) - val apiHeaders = mutableMapOf( - ) - val converter: (Any) -> io.appwrite.models.Row = { - @Suppress("UNCHECKED_CAST") - io.appwrite.models.Row.from(map = it as Map, nestedType) - } - return client.call( - "GET", - apiPath, - apiHeaders, - apiParams, - responseType = classOf(), - converter, - ) - } - - /** - * Get a row by its unique ID. This endpoint response returns a JSON object with the row data. - * - * @param databaseId Database ID. - * @param tableId Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/tables#tablesCreate). - * @param rowId Row ID. - * @param queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. - * @return [io.appwrite.models.Row] - */ - @JvmOverloads - @Throws(AppwriteException::class) - suspend fun getRow( - databaseId: String, - tableId: String, - rowId: String, - queries: List? = null, - ): io.appwrite.models.Row> = getRow( - databaseId, - tableId, - rowId, - queries, - nestedType = classOf(), - ) - - /** - * Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateTable) API or directly from your database console. - * - * @param databaseId Database ID. - * @param tableId Table ID. - * @param rowId Row ID. - * @return [io.appwrite.models.Row] - */ - suspend fun upsertRow( - databaseId: String, - tableId: String, - rowId: String, - nestedType: Class, - ): io.appwrite.models.Row { - val apiPath = "/databases/{databaseId}/tables/{tableId}/rows/{rowId}" - .replace("{databaseId}", databaseId) - .replace("{tableId}", tableId) - .replace("{rowId}", rowId) - - val apiParams = mutableMapOf( - ) - val apiHeaders = mutableMapOf( - "content-type" to "application/json", - ) - val converter: (Any) -> io.appwrite.models.Row = { - @Suppress("UNCHECKED_CAST") - io.appwrite.models.Row.from(map = it as Map, nestedType) - } - return client.call( - "PUT", - apiPath, - apiHeaders, - apiParams, - responseType = classOf(), - converter, - ) - } - - /** - * Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateTable) API or directly from your database console. - * - * @param databaseId Database ID. - * @param tableId Table ID. - * @param rowId Row ID. - * @return [io.appwrite.models.Row] - */ - @Throws(AppwriteException::class) - suspend fun upsertRow( - databaseId: String, - tableId: String, - rowId: String, - ): io.appwrite.models.Row> = upsertRow( - databaseId, - tableId, - rowId, - nestedType = classOf(), - ) - - /** - * Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated. - * - * @param databaseId Database ID. - * @param tableId Table ID. - * @param rowId Row ID. - * @param data Row data as JSON object. Include only columns and value pairs to be updated. - * @param permissions An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions). - * @return [io.appwrite.models.Row] - */ - @JvmOverloads - suspend fun updateRow( - databaseId: String, - tableId: String, - rowId: String, - data: Any? = null, - permissions: List? = null, - nestedType: Class, - ): io.appwrite.models.Row { - val apiPath = "/databases/{databaseId}/tables/{tableId}/rows/{rowId}" - .replace("{databaseId}", databaseId) - .replace("{tableId}", tableId) - .replace("{rowId}", rowId) - - val apiParams = mutableMapOf( - "data" to data, - "permissions" to permissions, - ) - val apiHeaders = mutableMapOf( - "content-type" to "application/json", - ) - val converter: (Any) -> io.appwrite.models.Row = { - @Suppress("UNCHECKED_CAST") - io.appwrite.models.Row.from(map = it as Map, nestedType) - } - return client.call( - "PATCH", - apiPath, - apiHeaders, - apiParams, - responseType = classOf(), - converter, - ) - } - - /** - * Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated. - * - * @param databaseId Database ID. - * @param tableId Table ID. - * @param rowId Row ID. - * @param data Row data as JSON object. Include only columns and value pairs to be updated. - * @param permissions An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions). - * @return [io.appwrite.models.Row] - */ - @JvmOverloads - @Throws(AppwriteException::class) - suspend fun updateRow( - databaseId: String, - tableId: String, - rowId: String, - data: Any? = null, - permissions: List? = null, - ): io.appwrite.models.Row> = updateRow( - databaseId, - tableId, - rowId, - data, - permissions, - nestedType = classOf(), - ) - - /** - * Delete a row by its unique ID. - * - * @param databaseId Database ID. - * @param tableId Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/tables#tablesCreate). - * @param rowId Row ID. - * @return [Any] - */ - suspend fun deleteRow( - databaseId: String, - tableId: String, - rowId: String, - ): Any { - val apiPath = "/databases/{databaseId}/tables/{tableId}/rows/{rowId}" - .replace("{databaseId}", databaseId) - .replace("{tableId}", tableId) - .replace("{rowId}", rowId) - - val apiParams = mutableMapOf( - ) - val apiHeaders = mutableMapOf( - "content-type" to "application/json", - ) - return client.call( - "DELETE", - apiPath, - apiHeaders, - apiParams, - responseType = Any::class.java, - ) - } - - -} \ No newline at end of file