diff --git a/CHANGELOG.md b/CHANGELOG.md index de61b02e..1a8a4bbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 11.0.1 + +* Fix between queries + ## 11.0.0 * Parameter `url` is now optional in the `createMembership` endpoint @@ -209,11 +213,11 @@ https://github.com/appwrite/appwrite/blob/master/CHANGES.md - Upgraded to Null-safety, minimum Dart SDK required 2.12.0 - Upgraded all underlying dependencies to null safe version - BREAKING Renamed parameter inviteId to membershipId on teams.updateMembershipStatus, teams.deleteMembership -- [Anonymous login](https://appwrite.io/docs/client/account?sdk=flutter#accountCreateAnonymousSession) -- [JWT Support](https://appwrite.io/docs/client/account?sdk=flutter#accountCreateJWT) +- [Anonymous login](https://appwrite.io/docs/references/cloud/client-flutter/account?sdk=flutter#createAnonymousSession) +- [JWT Support](https://appwrite.io/docs/references/cloud/client-flutter/account?sdk=flutter#createJWT) - Fallback Cookies for Flutter Web if 3rd party cookies are blocked - Custom User Agent Support -- [Update membership roles](https://appwrite.io/docs/client/teams?sdk=flutter#teamsUpdateMembershipRoles) +- [Update membership roles](https://appwrite.io/docs/references/cloud/client-flutter/teams?sdk=flutter#updateMembershipRoles) - New awesome image preview features, supports borderRadius, borderColor, borderWidth ## 0.5.0-dev.1 diff --git a/README.md b/README.md index 4e7930f5..1465cce5 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Add this to your package's `pubspec.yaml` file: ```yml dependencies: - appwrite: ^11.0.0 + appwrite: ^11.0.1 ``` You can install packages from the command line: diff --git a/lib/query.dart b/lib/query.dart index 73763885..c70f7abd 100644 --- a/lib/query.dart +++ b/lib/query.dart @@ -48,7 +48,7 @@ class Query { /// Filter resources where [attribute] is between [start] and [end] (inclusive). static String between(String attribute, dynamic start, dynamic end) => - _addQuery(attribute, 'between', [start, end]); + 'between("$attribute", ${_parseValues(start)}, ${_parseValues(end)})'; /// Filter resources where [attribute] starts with [value]. static String startsWith(String attribute, String value) => diff --git a/lib/services/account.dart b/lib/services/account.dart index 0d411e44..56bebc19 100644 --- a/lib/services/account.dart +++ b/lib/services/account.dart @@ -5,7 +5,7 @@ class Account extends Service { /// Initializes a [Account] service Account(super.client); - /// Get Account + /// Get account /// /// Get the currently logged in user. Future get() async { @@ -24,14 +24,15 @@ class Account extends Service { } - /// Create Account + /// Create account /// /// Use this endpoint to allow a new user to register a new account in your /// project. After the user registration completes successfully, you can use - /// the [/account/verfication](/docs/client/account#accountCreateVerification) + /// the + /// [/account/verfication](https://appwrite.io/docs/references/cloud/client-web/account#createVerification) /// route to start verifying the user email address. To allow the new user to /// login to their new account, you need to create a new [account - /// session](/docs/client/account#accountCreateSession). + /// session](https://appwrite.io/docs/references/cloud/client-web/account#createEmailSession). Future create({required String userId, required String email, required String password, String? name}) async { const String apiPath = '/account'; @@ -52,7 +53,7 @@ class Account extends Service { } - /// Update Email + /// Update email /// /// Update currently logged in user account email address. After changing user /// address, the user confirmation status will get reset. A new confirmation @@ -142,7 +143,7 @@ class Account extends Service { } - /// List Logs + /// List logs /// /// Get the list of latest security activity logs for the currently logged in /// user. Each log returns user IP address, location and date and time of log. @@ -163,7 +164,7 @@ class Account extends Service { } - /// Update Name + /// Update name /// /// Update currently logged in user account name. Future updateName({required String name}) async { @@ -183,7 +184,7 @@ class Account extends Service { } - /// Update Password + /// Update password /// /// Update currently logged in user password. For validation, user is required /// to pass in the new password, and the old password. For users created with @@ -206,12 +207,12 @@ class Account extends Service { } - /// Update Phone + /// Update phone /// /// Update the currently logged in user's phone number. After updating the /// phone number, the phone verification status will be reset. A confirmation /// SMS is not sent automatically, however you can use the [POST - /// /account/verification/phone](/docs/client/account#accountCreatePhoneVerification) + /// /account/verification/phone](https://appwrite.io/docs/references/cloud/client-web/account#createPhoneVerification) /// endpoint to send a confirmation SMS. Future updatePhone({required String phone, required String password}) async { const String apiPath = '/account/phone'; @@ -231,7 +232,7 @@ class Account extends Service { } - /// Get Account Preferences + /// Get account preferences /// /// Get the preferences as a key-value object for the currently logged in user. Future getPrefs() async { @@ -250,7 +251,7 @@ class Account extends Service { } - /// Update Preferences + /// Update preferences /// /// Update currently logged in user account preferences. The object you pass is /// stored as is, and replaces any previous value. The maximum allowed prefs @@ -272,16 +273,16 @@ class Account extends Service { } - /// Create Password Recovery + /// Create password recovery /// /// Sends the user an email with a temporary secret key for password reset. /// When the user clicks the confirmation link he is redirected back to your /// app password reset URL with the secret key and email address values /// attached to the URL query string. Use the query string params to submit a /// request to the [PUT - /// /account/recovery](/docs/client/account#accountUpdateRecovery) endpoint to - /// complete the process. The verification link sent to the user's email - /// address is valid for 1 hour. + /// /account/recovery](https://appwrite.io/docs/references/cloud/client-web/account#updateRecovery) + /// endpoint to complete the process. The verification link sent to the user's + /// email address is valid for 1 hour. Future createRecovery({required String email, required String url}) async { const String apiPath = '/account/recovery'; @@ -300,12 +301,13 @@ class Account extends Service { } - /// Create Password Recovery (confirmation) + /// Create password recovery (confirmation) /// /// Use this endpoint to complete the user account password reset. Both the /// **userId** and **secret** arguments will be passed as query parameters to /// the redirect URL you have provided when sending your request to the [POST - /// /account/recovery](/docs/client/account#accountCreateRecovery) endpoint. + /// /account/recovery](https://appwrite.io/docs/references/cloud/client-web/account#createRecovery) + /// endpoint. /// /// Please note that in order to avoid a [Redirect /// Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) @@ -331,7 +333,7 @@ class Account extends Service { } - /// List Sessions + /// List sessions /// /// Get the list of active sessions across different devices for the currently /// logged in user. @@ -351,7 +353,7 @@ class Account extends Service { } - /// Delete Sessions + /// Delete sessions /// /// Delete all sessions from the user account and remove any sessions cookies /// from the end client. @@ -371,14 +373,15 @@ class Account extends Service { } - /// Create Anonymous Session + /// Create anonymous session /// /// Use this endpoint to allow a new user to register an anonymous account in /// your project. This route will also create a new session for the user. To /// allow the new user to convert an anonymous account to a normal account, you /// need to update its [email and - /// password](/docs/client/account#accountUpdateEmail) or create an [OAuth2 - /// session](/docs/client/account#accountCreateOAuth2Session). + /// password](https://appwrite.io/docs/references/cloud/client-web/account#updateEmail) + /// or create an [OAuth2 + /// session](https://appwrite.io/docs/references/cloud/client-web/account#CreateOAuth2Session). Future createAnonymousSession() async { const String apiPath = '/account/sessions/anonymous'; @@ -395,13 +398,14 @@ class Account extends Service { } - /// Create Email Session + /// Create email session /// /// Allow the user to login into their account by providing a valid email and /// password combination. This route will create a new session for the user. /// /// A user is limited to 10 active sessions at a time by default. [Learn more - /// about session limits](/docs/authentication-security#limits). + /// about session + /// limits](https://appwrite.io/docs/authentication-security#limits). Future createEmailSession({required String email, required String password}) async { const String apiPath = '/account/sessions/email'; @@ -420,7 +424,7 @@ class Account extends Service { } - /// Create Magic URL session + /// Create magic URL session /// /// Sends the user an email with a secret key for creating a session. If the /// provided user ID has not been registered, a new user will be created. When @@ -428,14 +432,15 @@ class Account extends Service { /// URL you provided with the secret key and userId values attached to the URL /// query string. Use the query string parameters to submit a request to the /// [PUT - /// /account/sessions/magic-url](/docs/client/account#accountUpdateMagicURLSession) + /// /account/sessions/magic-url](https://appwrite.io/docs/references/cloud/client-web/account#updateMagicURLSession) /// endpoint to complete the login process. The link sent to the user's email /// address is valid for 1 hour. If you are on a mobile device you can leave /// the URL parameter empty, so that the login completion will be handled by /// your Appwrite instance by default. /// /// A user is limited to 10 active sessions at a time by default. [Learn more - /// about session limits](/docs/authentication-security#limits). + /// about session + /// limits](https://appwrite.io/docs/authentication-security#limits). /// Future createMagicURLSession({required String userId, required String email, String? url}) async { const String apiPath = '/account/sessions/magic-url'; @@ -456,13 +461,13 @@ class Account extends Service { } - /// Create Magic URL session (confirmation) + /// Create magic URL session (confirmation) /// /// Use this endpoint to complete creating the session with the Magic URL. Both /// the **userId** and **secret** arguments will be passed as query parameters /// to the redirect URL you have provided when sending your request to the /// [POST - /// /account/sessions/magic-url](/docs/client/account#accountCreateMagicURLSession) + /// /account/sessions/magic-url](https://appwrite.io/docs/references/cloud/client-web/account#createMagicURLSession) /// endpoint. /// /// Please note that in order to avoid a [Redirect @@ -487,7 +492,7 @@ class Account extends Service { } - /// Create OAuth2 Session + /// Create OAuth2 session /// /// Allow the user to login to their account using the OAuth2 provider of their /// choice. Each OAuth2 provider should be enabled from the Appwrite console @@ -502,7 +507,8 @@ class Account extends Service { /// user. /// /// A user is limited to 10 active sessions at a time by default. [Learn more - /// about session limits](/docs/authentication-security#limits). + /// about session + /// limits](https://appwrite.io/docs/authentication-security#limits). /// Future createOAuth2Session({required String provider, String? success, String? failure, List? scopes}) async { final String apiPath = '/account/sessions/oauth2/{provider}'.replaceAll('{provider}', provider); @@ -539,17 +545,18 @@ class Account extends Service { return client.webAuth(url, callbackUrlScheme: success); } - /// Create Phone session + /// Create phone session /// /// Sends the user an SMS with a secret key for creating a session. If the /// provided user ID has not be registered, a new user will be created. Use the /// returned user ID and secret and submit a request to the [PUT - /// /account/sessions/phone](/docs/client/account#accountUpdatePhoneSession) + /// /account/sessions/phone](https://appwrite.io/docs/references/cloud/client-web/account#updatePhoneSession) /// endpoint to complete the login process. The secret sent to the user's phone /// is valid for 15 minutes. /// /// A user is limited to 10 active sessions at a time by default. [Learn more - /// about session limits](/docs/authentication-security#limits). + /// about session + /// limits](https://appwrite.io/docs/authentication-security#limits). Future createPhoneSession({required String userId, required String phone}) async { const String apiPath = '/account/sessions/phone'; @@ -568,11 +575,11 @@ class Account extends Service { } - /// Create Phone Session (confirmation) + /// Create phone session (confirmation) /// /// Use this endpoint to complete creating a session with SMS. Use the /// **userId** from the - /// [createPhoneSession](/docs/client/account#accountCreatePhoneSession) + /// [createPhoneSession](https://appwrite.io/docs/references/cloud/client-web/account#createPhoneSession) /// endpoint and the **secret** received via SMS to successfully update and /// confirm the phone session. Future updatePhoneSession({required String userId, required String secret}) async { @@ -593,7 +600,7 @@ class Account extends Service { } - /// Get Session + /// Get session /// /// Use this endpoint to get a logged in user's session using a Session ID. /// Inputting 'current' will return the current session being used. @@ -613,7 +620,7 @@ class Account extends Service { } - /// Update OAuth Session (Refresh Tokens) + /// Update OAuth session (refresh tokens) /// /// Access tokens have limited lifespan and expire to mitigate security risks. /// If session was created using an OAuth provider, this route can be used to @@ -634,12 +641,13 @@ class Account extends Service { } - /// Delete Session + /// Delete session /// /// Logout the user. Use 'current' as the session ID to logout on this device, /// use a session ID to logout on another device. If you're looking to logout /// the user on all devices, use [Delete - /// Sessions](/docs/client/account#accountDeleteSessions) instead. + /// Sessions](https://appwrite.io/docs/references/cloud/client-web/account#deleteSessions) + /// instead. Future deleteSession({required String sessionId}) async { final String apiPath = '/account/sessions/{sessionId}'.replaceAll('{sessionId}', sessionId); @@ -656,7 +664,7 @@ class Account extends Service { } - /// Update Status + /// Update status /// /// Block the currently logged in user account. Behind the scene, the user /// record is not deleted but permanently blocked from any access. To @@ -677,7 +685,7 @@ class Account extends Service { } - /// Create Email Verification + /// Create email verification /// /// Use this endpoint to send a verification message to your user email address /// to confirm they are the valid owners of that address. Both the **userId** @@ -686,8 +694,8 @@ class Account extends Service { /// should redirect the user back to your app and allow you to complete the /// verification process by verifying both the **userId** and **secret** /// parameters. Learn more about how to [complete the verification - /// process](/docs/client/account#accountUpdateEmailVerification). The - /// verification link sent to the user's email address is valid for 7 days. + /// process](https://appwrite.io/docs/references/cloud/client-web/account#updateVerification). + /// The verification link sent to the user's email address is valid for 7 days. /// /// Please note that in order to avoid a [Redirect /// Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), @@ -711,7 +719,7 @@ class Account extends Service { } - /// Create Email Verification (confirmation) + /// Create email verification (confirmation) /// /// Use this endpoint to complete the user email verification process. Use both /// the **userId** and **secret** parameters that were attached to your app URL @@ -735,14 +743,16 @@ class Account extends Service { } - /// Create Phone Verification + /// Create phone verification /// /// Use this endpoint to send a verification SMS to the currently logged in /// user. This endpoint is meant for use after updating a user's phone number - /// using the [accountUpdatePhone](/docs/client/account#accountUpdatePhone) + /// using the + /// [accountUpdatePhone](https://appwrite.io/docs/references/cloud/client-web/account#updatePhone) /// endpoint. Learn more about how to [complete the verification - /// process](/docs/client/account#accountUpdatePhoneVerification). The - /// verification code sent to the user's phone number is valid for 15 minutes. + /// process](https://appwrite.io/docs/references/cloud/client-web/account#updatePhoneVerification). + /// The verification code sent to the user's phone number is valid for 15 + /// minutes. Future createPhoneVerification() async { const String apiPath = '/account/verification/phone'; @@ -759,7 +769,7 @@ class Account extends Service { } - /// Create Phone Verification (confirmation) + /// Create phone verification (confirmation) /// /// Use this endpoint to complete the user phone verification process. Use the /// **userId** and **secret** that were sent to your user's phone number to diff --git a/lib/services/avatars.dart b/lib/services/avatars.dart index 5751046c..2bf87239 100644 --- a/lib/services/avatars.dart +++ b/lib/services/avatars.dart @@ -6,12 +6,13 @@ class Avatars extends Service { /// Initializes a [Avatars] service Avatars(super.client); - /// Get Browser Icon + /// Get browser icon /// /// You can use this endpoint to show different browser icons to your users. /// The code argument receives the browser code as it appears in your user [GET - /// /account/sessions](/docs/client/account#accountGetSessions) endpoint. Use - /// width, height and quality arguments to change the output settings. + /// /account/sessions](https://appwrite.io/docs/references/cloud/client-web/account#getSessions) + /// endpoint. Use width, height and quality arguments to change the output + /// settings. /// /// When one dimension is specified and the other is 0, the image is scaled /// with preserved aspect ratio. If both dimensions are 0, the API provides an @@ -33,7 +34,7 @@ class Avatars extends Service { return res.data; } - /// Get Credit Card Icon + /// Get credit card icon /// /// The credit card endpoint will return you the icon of the credit card /// provider you need. Use width, height and quality arguments to change the @@ -60,7 +61,7 @@ class Avatars extends Service { return res.data; } - /// Get Favicon + /// Get favicon /// /// Use this endpoint to fetch the favorite icon (AKA favicon) of any remote /// website URL. @@ -79,12 +80,12 @@ class Avatars extends Service { return res.data; } - /// Get Country Flag + /// Get country flag /// /// You can use this endpoint to show different country flags icons to your /// users. The code argument receives the 2 letter country code. Use width, /// height and quality arguments to change the output settings. Country codes - /// follow the [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) standard. + /// follow the [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) standard. /// /// When one dimension is specified and the other is 0, the image is scaled /// with preserved aspect ratio. If both dimensions are 0, the API provides an @@ -107,7 +108,7 @@ class Avatars extends Service { return res.data; } - /// Get Image from URL + /// Get image from URL /// /// Use this endpoint to fetch a remote image URL and crop it to any image size /// you want. This endpoint is very useful if you need to crop and display @@ -135,7 +136,7 @@ class Avatars extends Service { return res.data; } - /// Get User Initials + /// Get user initials /// /// Use this endpoint to show your user initials avatar icon on your website or /// app. By default, this route will try to print your logged-in user name or @@ -170,7 +171,7 @@ class Avatars extends Service { return res.data; } - /// Get QR Code + /// Get QR code /// /// Converts a given plain text to a QR code image. You can use the query /// parameters to change the size and style of the resulting image. diff --git a/lib/services/databases.dart b/lib/services/databases.dart index d3470f1c..36f24ade 100644 --- a/lib/services/databases.dart +++ b/lib/services/databases.dart @@ -6,7 +6,7 @@ class Databases extends Service { /// Initializes a [Databases] service Databases(super.client); - /// List Documents + /// List documents /// /// Get a list of all the user's documents in a given collection. You can use /// the query params to filter your results. @@ -27,12 +27,12 @@ class Databases extends Service { } - /// Create Document + /// Create document /// /// Create a new Document. Before using this route, you should create a new /// collection resource using either a [server - /// integration](/docs/server/databases#databasesCreateCollection) API or - /// directly from your database console. + /// integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) + /// API or directly from your database console. Future createDocument({required String databaseId, required String collectionId, required String documentId, required Map data, List? permissions}) async { final String apiPath = '/databases/{databaseId}/collections/{collectionId}/documents'.replaceAll('{databaseId}', databaseId).replaceAll('{collectionId}', collectionId); @@ -52,7 +52,7 @@ class Databases extends Service { } - /// Get Document + /// Get document /// /// Get a document by its unique ID. This endpoint response returns a JSON /// object with the document data. @@ -73,7 +73,7 @@ class Databases extends Service { } - /// Update Document + /// Update document /// /// Update a document by its unique ID. Using the patch method you can pass /// only specific fields that will get updated. @@ -95,7 +95,7 @@ class Databases extends Service { } - /// Delete Document + /// Delete document /// /// Delete a document by its unique ID. Future deleteDocument({required String databaseId, required String collectionId, required String documentId}) async { diff --git a/lib/services/functions.dart b/lib/services/functions.dart index e4f0389b..83424948 100644 --- a/lib/services/functions.dart +++ b/lib/services/functions.dart @@ -6,7 +6,7 @@ class Functions extends Service { /// Initializes a [Functions] service Functions(super.client); - /// List Executions + /// List executions /// /// Get a list of all the current user function execution logs. You can use the /// query params to filter your results. @@ -28,7 +28,7 @@ class Functions extends Service { } - /// Create Execution + /// Create execution /// /// Trigger a function execution. The returned object will return you the /// current execution status. You can ping the `Get Execution` endpoint to get @@ -55,7 +55,7 @@ class Functions extends Service { } - /// Get Execution + /// Get execution /// /// Get a function execution log by its unique ID. Future getExecution({required String functionId, required String executionId}) async { diff --git a/lib/services/graphql.dart b/lib/services/graphql.dart index 743a9233..ccb81765 100644 --- a/lib/services/graphql.dart +++ b/lib/services/graphql.dart @@ -6,7 +6,7 @@ class Graphql extends Service { /// Initializes a [Graphql] service Graphql(super.client); - /// GraphQL Endpoint + /// GraphQL endpoint /// /// Execute a GraphQL mutation. Future query({required Map query}) async { @@ -26,7 +26,7 @@ class Graphql extends Service { } - /// GraphQL Endpoint + /// GraphQL endpoint /// /// Execute a GraphQL mutation. Future mutation({required Map query}) async { diff --git a/lib/services/locale.dart b/lib/services/locale.dart index 869c8e1d..cdfb818a 100644 --- a/lib/services/locale.dart +++ b/lib/services/locale.dart @@ -6,7 +6,7 @@ class Locale extends Service { /// Initializes a [Locale] service Locale(super.client); - /// Get User Locale + /// Get user locale /// /// Get the current user location based on IP. Returns an object with user /// country code, country name, continent name, continent code, ip address and @@ -50,7 +50,7 @@ class Locale extends Service { } - /// List Continents + /// List continents /// /// List of all continents. You can use the locale header to get the data in a /// supported language. @@ -70,7 +70,7 @@ class Locale extends Service { } - /// List Countries + /// List countries /// /// List of all countries. You can use the locale header to get the data in a /// supported language. @@ -90,7 +90,7 @@ class Locale extends Service { } - /// List EU Countries + /// List EU countries /// /// List of all countries that are currently members of the EU. You can use the /// locale header to get the data in a supported language. @@ -110,7 +110,7 @@ class Locale extends Service { } - /// List Countries Phone Codes + /// List countries phone codes /// /// List of all countries phone codes. You can use the locale header to get the /// data in a supported language. @@ -130,7 +130,7 @@ class Locale extends Service { } - /// List Currencies + /// List currencies /// /// List of all currencies, including currency symbol, name, plural, and /// decimal digits for all major and minor currencies. You can use the locale @@ -151,7 +151,7 @@ class Locale extends Service { } - /// List Languages + /// List languages /// /// List of all languages classified by ISO 639-1 including 2-letter code, name /// in English, and name in the respective language. diff --git a/lib/services/storage.dart b/lib/services/storage.dart index 17072606..affb323c 100644 --- a/lib/services/storage.dart +++ b/lib/services/storage.dart @@ -5,7 +5,7 @@ class Storage extends Service { /// Initializes a [Storage] service Storage(super.client); - /// List Files + /// List files /// /// Get a list of all the user files. You can use the query params to filter /// your results. @@ -27,12 +27,12 @@ class Storage extends Service { } - /// Create File + /// Create file /// /// Create a new file. Before using this route, you should create a new bucket /// resource using either a [server - /// integration](/docs/server/storage#storageCreateBucket) API or directly from - /// your Appwrite console. + /// integration](https://appwrite.io/docs/server/storage#storageCreateBucket) + /// API or directly from your Appwrite console. /// /// Larger files should be uploaded using multiple requests with the /// [content-range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range) @@ -78,7 +78,7 @@ class Storage extends Service { } - /// Get File + /// Get file /// /// Get a file by its unique ID. This endpoint response returns a JSON object /// with the file metadata. @@ -98,7 +98,7 @@ class Storage extends Service { } - /// Update File + /// Update file /// /// Update a file by its unique ID. Only users with write permissions have /// access to update this resource. @@ -140,7 +140,7 @@ class Storage extends Service { } - /// Get File for Download + /// Get file for download /// /// Get a file content by its unique ID. The endpoint response return with a /// 'Content-Disposition: attachment' header that tells the browser to start @@ -158,7 +158,7 @@ class Storage extends Service { return res.data; } - /// Get File Preview + /// Get file preview /// /// Get a file preview image. Currently, this method supports preview for image /// files (jpg, png, and gif), other supported formats, like pdf, docs, slides, @@ -189,7 +189,7 @@ class Storage extends Service { return res.data; } - /// Get File for View + /// Get file for view /// /// Get a file content by its unique ID. This endpoint is similar to the /// download method but returns with no 'Content-Disposition: attachment' diff --git a/lib/services/teams.dart b/lib/services/teams.dart index 28dc0039..475095a9 100644 --- a/lib/services/teams.dart +++ b/lib/services/teams.dart @@ -6,7 +6,7 @@ class Teams extends Service { /// Initializes a [Teams] service Teams(super.client); - /// List Teams + /// List teams /// /// Get a list of all the teams in which the current user is a member. You can /// use the parameters to filter your results. @@ -28,7 +28,7 @@ class Teams extends Service { } - /// Create Team + /// Create team /// /// Create a new team. The user who creates the team will automatically be /// assigned as the owner of the team. Only the users with the owner role can @@ -52,7 +52,7 @@ class Teams extends Service { } - /// Get Team + /// Get team /// /// Get a team by its ID. All team members have read access for this resource. Future get({required String teamId}) async { @@ -71,7 +71,7 @@ class Teams extends Service { } - /// Update Name + /// Update name /// /// Update the team's name by its unique ID. Future updateName({required String teamId, required String name}) async { @@ -91,7 +91,7 @@ class Teams extends Service { } - /// Delete Team + /// Delete team /// /// Delete a team using its ID. Only team members with the owner role can /// delete the team. @@ -111,7 +111,7 @@ class Teams extends Service { } - /// List Team Memberships + /// List team memberships /// /// Use this endpoint to list a team's members using the team's ID. All team /// members have read access to this endpoint. @@ -133,7 +133,7 @@ class Teams extends Service { } - /// Create Team Membership + /// Create team membership /// /// Invite a new member to join your team. Provide an ID for existing users, or /// invite unregistered users using an email or phone number. If initiated from @@ -148,8 +148,8 @@ class Teams extends Service { /// /// Use the `url` parameter to redirect the user from the invitation email to /// your app. After the user is redirected, use the [Update Team Membership - /// Status](/docs/client/teams#teamsUpdateMembershipStatus) endpoint to allow - /// the user to accept the invitation to the team. + /// Status](https://appwrite.io/docs/references/cloud/client-web/teams#updateMembershipStatus) + /// endpoint to allow the user to accept the invitation to the team. /// /// Please note that to avoid a [Redirect /// Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) @@ -178,7 +178,7 @@ class Teams extends Service { } - /// Get Team Membership + /// Get team membership /// /// Get a team member by the membership unique id. All team members have read /// access for this resource. @@ -198,11 +198,11 @@ class Teams extends Service { } - /// Update Membership + /// Update membership /// /// Modify the roles of a team member. Only team members with the owner role /// have access to this endpoint. Learn more about [roles and - /// permissions](/docs/permissions). + /// permissions](https://appwrite.io/docs/permissions). /// Future updateMembership({required String teamId, required String membershipId, required List roles}) async { final String apiPath = '/teams/{teamId}/memberships/{membershipId}'.replaceAll('{teamId}', teamId).replaceAll('{membershipId}', membershipId); @@ -221,7 +221,7 @@ class Teams extends Service { } - /// Delete Team Membership + /// Delete team membership /// /// This endpoint allows a user to leave a team or for a team owner to delete /// the membership of any other team member. You can also use this endpoint to @@ -242,7 +242,7 @@ class Teams extends Service { } - /// Update Team Membership Status + /// Update team membership status /// /// Use this endpoint to allow a user to accept an invitation to join a team /// after being redirected back to your app from the invitation email received @@ -269,11 +269,11 @@ class Teams extends Service { } - /// Get Team Preferences + /// Get team preferences /// /// Get the team's shared preferences by its unique ID. If a preference doesn't /// need to be shared by all team members, prefer storing them in [user - /// preferences](/docs/client/account#accountGetPrefs). + /// preferences](https://appwrite.io/docs/references/cloud/client-web/account#getPrefs). Future getPrefs({required String teamId}) async { final String apiPath = '/teams/{teamId}/prefs'.replaceAll('{teamId}', teamId); @@ -290,7 +290,7 @@ class Teams extends Service { } - /// Update Preferences + /// Update preferences /// /// Update the team's preferences by its unique ID. The object you pass is /// stored as is and replaces any previous value. The maximum allowed prefs diff --git a/lib/src/client_browser.dart b/lib/src/client_browser.dart index 6df6b3b9..c8c40b57 100644 --- a/lib/src/client_browser.dart +++ b/lib/src/client_browser.dart @@ -43,7 +43,7 @@ class ClientBrowser extends ClientBase with ClientMixin { 'x-sdk-name': 'Flutter', 'x-sdk-platform': 'client', 'x-sdk-language': 'flutter', - 'x-sdk-version': '11.0.0', + 'x-sdk-version': '11.0.1', 'X-Appwrite-Response-Format': '1.4.0', }; @@ -156,7 +156,7 @@ class ClientBrowser extends ClientBase with ClientMixin { while (offset < size) { var chunk; - final end = min(offset + CHUNK_SIZE - 1, size - 1); + final end = min(offset + CHUNK_SIZE, size); chunk = file.bytes!.getRange(offset, end).toList(); params[paramName] = http.MultipartFile.fromBytes(paramName, chunk, filename: file.filename); diff --git a/lib/src/client_io.dart b/lib/src/client_io.dart index 27696a39..e068d80f 100644 --- a/lib/src/client_io.dart +++ b/lib/src/client_io.dart @@ -64,7 +64,7 @@ class ClientIO extends ClientBase with ClientMixin { 'x-sdk-name': 'Flutter', 'x-sdk-platform': 'client', 'x-sdk-language': 'flutter', - 'x-sdk-version': '11.0.0', + 'x-sdk-version': '11.0.1', 'X-Appwrite-Response-Format' : '1.4.0', }; @@ -283,7 +283,7 @@ class ClientIO extends ClientBase with ClientMixin { while (offset < size) { List chunk = []; if (file.bytes != null) { - final end = min(offset + CHUNK_SIZE - 1, size - 1); + final end = min(offset + CHUNK_SIZE, size); chunk = file.bytes!.getRange(offset, end).toList(); } else { raf!.setPositionSync(offset); diff --git a/lib/src/models/document.dart b/lib/src/models/document.dart index 072f8859..ca8dad0f 100644 --- a/lib/src/models/document.dart +++ b/lib/src/models/document.dart @@ -12,7 +12,7 @@ class Document implements Model { final String $createdAt; /// Document update date in ISO 8601 format. final String $updatedAt; - /// Document permissions. [Learn more about permissions](/docs/permissions). + /// Document permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). final List $permissions; final Map data; diff --git a/lib/src/models/file.dart b/lib/src/models/file.dart index 0ab7fdab..a6f8b2d0 100644 --- a/lib/src/models/file.dart +++ b/lib/src/models/file.dart @@ -10,7 +10,7 @@ class File implements Model { final String $createdAt; /// File update date in ISO 8601 format. final String $updatedAt; - /// File permissions. [Learn more about permissions](/docs/permissions). + /// File permissions. [Learn more about permissions](https://appwrite.io/docs/permissions). final List $permissions; /// File name. final String name; diff --git a/pubspec.yaml b/pubspec.yaml index 75916e84..b4638263 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: appwrite -version: 11.0.0 +version: 11.0.1 description: Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API homepage: https://appwrite.io repository: https://github.com/appwrite/sdk-for-flutter