diff --git a/CHANGES.md b/CHANGES.md index 11f67a9ecd..4647807320 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,11 +2,11 @@ - Anonymous login -# Version 0.7.1 (Not Released Yet) +# Version 0.7.1 ## Features -- Better error logs on appwrite cretificates worker +- Better error logs on appwrite certificates worker - Added option for Redis authentication - Force adding a security email on setup - SMTP is now disabled by default, no dummy SMTP is included in setup @@ -22,10 +22,15 @@ - Upgraded influxdb/influxdb-php lib to version 1.15.2 - Upgraded phpmailer/phpmailer lib to version 6.3.0 - Upgraded adhocore/jwt lib to version 1.1.2 +- Upgraded domnikl/statsd to slickdeals/statsd version 3.0 ## Bug Fixes - Updated missing storage env vars +- Fixed a bug, that added a wrong timzone offset to user log timestamps +- Fixed a bug, that Response format header was not added in the access-control-allow-header list. +- Fixed a bug where countryName is unknown on sessions (#933) +- Added missing event users.update.prefs (#952) ## Security diff --git a/README.md b/README.md index 950c5a3010..3d4bd75733 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ docker run -it --rm \ --volume /var/run/docker.sock:/var/run/docker.sock \ --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \ --entrypoint="install" \ - appwrite/appwrite:0.7.0 + appwrite/appwrite:0.7.1 ``` ### Windows @@ -65,7 +65,7 @@ docker run -it --rm ^ --volume //var/run/docker.sock:/var/run/docker.sock ^ --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^ --entrypoint="install" ^ - appwrite/appwrite:0.7.0 + appwrite/appwrite:0.7.1 ``` #### PowerShell @@ -75,7 +75,7 @@ docker run -it --rm , --volume /var/run/docker.sock:/var/run/docker.sock , --volume ${pwd}/appwrite:/usr/src/code/appwrite:rw , --entrypoint="install" , - appwrite/appwrite:0.7.0 + appwrite/appwrite:0.7.1 ``` Once the Docker installation completes, go to http://localhost to access the Appwrite console from your browser. Please note that on non-linux native hosts, the server might take a few minutes to start after installation completes. diff --git a/app/config/events.php b/app/config/events.php index 2bb3862fdf..601b502163 100644 --- a/app/config/events.php +++ b/app/config/events.php @@ -117,6 +117,11 @@ return [ 'model' => Response::MODEL_USER, 'note' => 'version >= 0.7', ], + 'users.update.prefs' => [ + 'description' => 'This event triggers when a user preference is updated from the users API.', + 'model' => Response::MODEL_ANY, + 'note' => 'version >= 0.7', + ], 'users.update.status' => [ 'description' => 'This event triggers when a user status is updated from the users API.', 'model' => Response::MODEL_USER, diff --git a/app/config/platforms.php b/app/config/platforms.php index 399d52e74b..4e4bde824a 100644 --- a/app/config/platforms.php +++ b/app/config/platforms.php @@ -32,7 +32,7 @@ return [ [ 'key' => 'flutter', 'name' => 'Flutter', - 'version' => '0.3.0', + 'version' => '0.4.0-dev.2', 'url' => 'https://github.com/appwrite/sdk-for-flutter', 'package' => 'https://pub.dev/packages/appwrite', 'enabled' => true, @@ -165,7 +165,7 @@ return [ [ 'key' => 'deno', 'name' => 'Deno', - 'version' => '0.1.0', + 'version' => '0.1.1', 'url' => 'https://github.com/appwrite/sdk-for-deno', 'package' => 'https://deno.land/x/appwrite', 'enabled' => true, @@ -199,7 +199,7 @@ return [ [ 'key' => 'python', 'name' => 'Python', - 'version' => '0.1.0', + 'version' => '0.1.1', 'url' => 'https://github.com/appwrite/sdk-for-python', 'package' => 'https://pypi.org/project/appwrite/', 'enabled' => true, @@ -216,7 +216,7 @@ return [ [ 'key' => 'ruby', 'name' => 'Ruby', - 'version' => '2.0.0', + 'version' => '2.0.2', 'url' => 'https://github.com/appwrite/sdk-for-ruby', 'package' => 'https://rubygems.org/gems/appwrite', 'enabled' => true, @@ -284,7 +284,7 @@ return [ [ 'key' => 'dart', 'name' => 'Dart', - 'version' => '0.2.0', + 'version' => '0.3.1', 'url' => 'https://github.com/appwrite/sdk-for-dart', 'package' => 'https://pub.dev/packages/dart_appwrite', 'enabled' => true, @@ -301,7 +301,7 @@ return [ [ 'key' => 'cli', 'name' => 'Command Line', - 'version' => '0.5.0', + 'version' => '0.6.0', 'url' => 'https://github.com/appwrite/sdk-for-cli', 'package' => 'https://github.com/appwrite/sdk-for-cli', 'enabled' => true, diff --git a/app/config/variables.php b/app/config/variables.php index 14b29bc451..369a860fe2 100644 --- a/app/config/variables.php +++ b/app/config/variables.php @@ -107,8 +107,8 @@ return [ 'name' => '_APP_SYSTEM_SECURITY_EMAIL_ADDRESS', 'description' => 'This is the email address used to issue SSL certificates for custom domains or the user agent in your webhooks payload.', 'introduction' => '0.7.0', - 'default' => '', - 'required' => true, + 'default' => 'certs@appwrite.io', + 'required' => false, 'question' => '', ], [ diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index e8ae76312b..cab25eb746 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -236,9 +236,11 @@ App::post('/v1/account/sessions') ->setStatusCode(Response::STATUS_CODE_CREATED) ; + $countries = $locale->getText('countries'); + $session ->setAttribute('current', true) - ->setAttribute('countryName', (isset($countries[$session->getAttribute('countryCode')])) ? $countries[$session->getAttribute('countryCode')] : $locale->getText('locale.country.unknown')) + ->setAttribute('countryName', (isset($countries[strtoupper($session->getAttribute('countryCode'))])) ? $countries[strtoupper($session->getAttribute('countryCode'))] : $locale->getText('locale.country.unknown')) ; $response->dynamic($session, Response::MODEL_SESSION); @@ -679,8 +681,8 @@ App::get('/v1/account/sessions') continue; } - $token->setAttribute('countryName', (isset($countries[$token->getAttribute('contryCode')])) - ? $countries[$token->getAttribute('contryCode')] + $token->setAttribute('countryName', (isset($countries[strtoupper($token->getAttribute('countryCode'))])) + ? $countries[strtoupper($token->getAttribute('countryCode'))] : $locale->getText('locale.country.unknown')); $token->setAttribute('current', ($current == $token->getId()) ? true : false); diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index efb0041cee..0394cd8c0c 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -205,8 +205,8 @@ App::get('/v1/users/:userId/sessions') continue; } - $token->setAttribute('countryName', (isset($countries[$token->getAttribute('contryCode')])) - ? $countries[$token->getAttribute('contryCode')] + $token->setAttribute('countryName', (isset($countries[strtoupper($token->getAttribute('contryCode'))])) + ? $countries[strtoupper($token->getAttribute('contryCode'))] : $locale->getText('locale.country.unknown')); $token->setAttribute('current', false); @@ -373,6 +373,7 @@ App::patch('/v1/users/:userId/status') App::patch('/v1/users/:userId/prefs') ->desc('Update User Preferences') ->groups(['api', 'users']) + ->label('event', 'users.update.prefs') ->label('scope', 'users.write') ->label('sdk.platform', [APP_PLATFORM_SERVER]) ->label('sdk.namespace', 'users') diff --git a/app/controllers/general.php b/app/controllers/general.php index 614c400048..fe00160388 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -117,7 +117,7 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo ->addHeader('Server', 'Appwrite') ->addHeader('X-Content-Type-Options', 'nosniff') ->addHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE') - ->addHeader('Access-Control-Allow-Headers', 'Origin, Cookie, Set-Cookie, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Request-Headers, Accept, X-Appwrite-Project, X-Appwrite-Key, X-Appwrite-Locale, X-Appwrite-Mode, X-Appwrite-JWT, X-SDK-Version, Cache-Control, Expires, Pragma') + ->addHeader('Access-Control-Allow-Headers', 'Origin, Cookie, Set-Cookie, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Request-Headers, Accept, X-Appwrite-Project, X-Appwrite-Key, X-Appwrite-Locale, X-Appwrite-Mode, X-Appwrite-JWT, X-Appwrite-Response-Format, X-SDK-Version, Cache-Control, Expires, Pragma') ->addHeader('Access-Control-Expose-Headers', 'X-Fallback-Cookies') ->addHeader('Access-Control-Allow-Origin', $refDomain) ->addHeader('Access-Control-Allow-Credentials', 'true') @@ -237,7 +237,7 @@ App::options(function ($request, $response) { $response ->addHeader('Server', 'Appwrite') ->addHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE') - ->addHeader('Access-Control-Allow-Headers', 'Origin, Cookie, Set-Cookie, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Request-Headers, Accept, X-Appwrite-Project, X-Appwrite-Key, X-Appwrite-Locale, X-Appwrite-Mode, X-Appwrite-JWT, X-SDK-Version, Cache-Control, Expires, Pragma, X-Fallback-Cookies') + ->addHeader('Access-Control-Allow-Headers', 'Origin, Cookie, Set-Cookie, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Request-Headers, Accept, X-Appwrite-Project, X-Appwrite-Key, X-Appwrite-Locale, X-Appwrite-Mode, X-Appwrite-JWT, X-Appwrite-Response-Format, X-SDK-Version, Cache-Control, Expires, Pragma, X-Fallback-Cookies') ->addHeader('Access-Control-Expose-Headers', 'X-Fallback-Cookies') ->addHeader('Access-Control-Allow-Origin', $origin) ->addHeader('Access-Control-Allow-Credentials', 'true') diff --git a/app/http.php b/app/http.php index 1a0def5413..f67ff2ea7c 100644 --- a/app/http.php +++ b/app/http.php @@ -88,7 +88,7 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo return; } - $app = new App('America/New_York'); + $app = new App('UTC'); try { Authorization::cleanRoles(); diff --git a/app/init.php b/app/init.php index 9f7d531219..9621f53051 100644 --- a/app/init.php +++ b/app/init.php @@ -50,7 +50,7 @@ const APP_MODE_DEFAULT = 'default'; const APP_MODE_ADMIN = 'admin'; const APP_PAGING_LIMIT = 12; const APP_CACHE_BUSTER = 144; -const APP_VERSION_STABLE = '0.7.0'; +const APP_VERSION_STABLE = '0.7.1'; const APP_STORAGE_UPLOADS = '/storage/uploads'; const APP_STORAGE_FUNCTIONS = '/storage/functions'; const APP_STORAGE_CACHE = '/storage/cache'; diff --git a/app/preload.php b/app/preload.php index f73aaea61a..7c8ae00938 100644 --- a/app/preload.php +++ b/app/preload.php @@ -28,10 +28,9 @@ foreach ([ realpath(__DIR__ . '/../vendor/felixfbecker'), realpath(__DIR__ . '/../vendor/twig/twig'), realpath(__DIR__ . '/../vendor/guzzlehttp/guzzle'), - realpath(__DIR__ . '/../vendor/domnikl'), - realpath(__DIR__ . '/../vendor/domnikl'), + realpath(__DIR__ . '/../vendor/slickdeals'), realpath(__DIR__ . '/../vendor/psr/log'), - realpath(__DIR__ . '/../vendor/piwik'), + realpath(__DIR__ . '/../vendor/matomo'), realpath(__DIR__ . '/../vendor/symfony'), ] as $key => $value) { if($value !== false) { diff --git a/app/tasks/sdks.php b/app/tasks/sdks.php index 6b17104f6c..f8d4ed3976 100644 --- a/app/tasks/sdks.php +++ b/app/tasks/sdks.php @@ -96,6 +96,16 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND $config = new CLI(); $config->setComposerVendor('appwrite'); $config->setComposerPackage('cli'); + $config->setExecutableName('appwrite'); + $config->setExecutableName('appwrite'); + $config->setLogo(" + _ _ _ ___ __ _____ + /_\ _ __ _ ____ ___ __(_) |_ ___ / __\ / / \_ \ + //_\\| '_ \| '_ \ \ /\ / / '__| | __/ _ \ / / / / / /\/ + / _ \ |_) | |_) \ V V /| | | | || __/ / /___/ /___/\/ /_ + \_/ \_/ .__/| .__/ \_/\_/ |_| |_|\__\___| \____/\____/\____/ + |_| |_| + "); break; case 'php': $config = new PHP(); diff --git a/composer.json b/composer.json index 6ad3501986..f4401c1985 100644 --- a/composer.json +++ b/composer.json @@ -53,14 +53,14 @@ "resque/php-resque": "1.3.6", "matomo/device-detector": "4.1.0", "dragonmantank/cron-expression": "3.1.0", - "domnikl/statsd": "3.0.2", "influxdb/influxdb-php": "1.15.2", "phpmailer/phpmailer": "6.3.0", "chillerlan/php-qrcode": "4.3.0", - "adhocore/jwt": "1.1.2" + "adhocore/jwt": "1.1.2", + "slickdeals/statsd": "~3.0" }, "require-dev": { - "appwrite/sdk-generator": "0.5.5", + "appwrite/sdk-generator": "0.6.2", "phpunit/phpunit": "9.4.2", "swoole/ide-helper": "4.5.5", "textalk/websocket": "1.5.2", diff --git a/composer.lock b/composer.lock index ad243a5cd7..f3de94cfc7 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b579d6ac34eb119446727d63b21acca2", + "content-hash": "442d6d8b6c76ef7ae5ea26e500af6479", "packages": [ { "name": "adhocore/jwt", @@ -297,61 +297,6 @@ }, "time": "2020-11-06T16:09:14+00:00" }, - { - "name": "domnikl/statsd", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/domnikl/statsd-php.git", - "reference": "393c6565efbfb23c8296ae3099a62fb6366c6ce3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/domnikl/statsd-php/zipball/393c6565efbfb23c8296ae3099a62fb6366c6ce3", - "reference": "393c6565efbfb23c8296ae3099a62fb6366c6ce3", - "shasum": "" - }, - "require": { - "php": ">= 7.2" - }, - "require-dev": { - "flyeralarm/php-code-validator": "^2.2", - "phpunit/phpunit": "~8.0", - "vimeo/psalm": "^3.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Domnikl\\Statsd\\": "src/", - "Domnikl\\Test\\Statsd\\": "tests/unit" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dominik Liebler", - "email": "liebler.dominik@gmail.com" - } - ], - "description": "a PHP client for statsd", - "homepage": "https://domnikl.github.com/statsd-php", - "keywords": [ - "Metrics", - "monitoring", - "statistics", - "statsd", - "udp" - ], - "support": { - "issues": "https://github.com/domnikl/statsd-php/issues", - "source": "https://github.com/domnikl/statsd-php/tree/master" - }, - "abandoned": "slickdeals/statsd", - "time": "2020-01-03T14:24:58+00:00" - }, { "name": "dragonmantank/cron-expression", "version": "v3.1.0", @@ -577,12 +522,12 @@ "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "d7fe0a0eabc266c3dcf2f20aa12121044ff196a4" + "reference": "2f3e4f6cf8fd4aad7624c90a94f0ab38fde25976" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/d7fe0a0eabc266c3dcf2f20aa12121044ff196a4", - "reference": "d7fe0a0eabc266c3dcf2f20aa12121044ff196a4", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/2f3e4f6cf8fd4aad7624c90a94f0ab38fde25976", + "reference": "2f3e4f6cf8fd4aad7624c90a94f0ab38fde25976", "shasum": "" }, "require": { @@ -644,7 +589,7 @@ "issues": "https://github.com/guzzle/psr7/issues", "source": "https://github.com/guzzle/psr7/tree/1.x" }, - "time": "2021-03-09T14:42:40+00:00" + "time": "2021-03-02T18:57:24+00:00" }, { "name": "influxdb/influxdb-php", @@ -1192,6 +1137,59 @@ }, "time": "2020-04-16T16:39:50+00:00" }, + { + "name": "slickdeals/statsd", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/Slickdeals/statsd-php.git", + "reference": "393c6565efbfb23c8296ae3099a62fb6366c6ce3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Slickdeals/statsd-php/zipball/393c6565efbfb23c8296ae3099a62fb6366c6ce3", + "reference": "393c6565efbfb23c8296ae3099a62fb6366c6ce3", + "shasum": "" + }, + "require": { + "php": ">= 7.2" + }, + "require-dev": { + "flyeralarm/php-code-validator": "^2.2", + "phpunit/phpunit": "~8.0", + "vimeo/psalm": "^3.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Domnikl\\Statsd\\": "src/", + "Domnikl\\Test\\Statsd\\": "tests/unit" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dominik Liebler", + "email": "liebler.dominik@gmail.com" + } + ], + "description": "a PHP client for statsd", + "homepage": "https://domnikl.github.com/statsd-php", + "keywords": [ + "Metrics", + "monitoring", + "statistics", + "statsd", + "udp" + ], + "support": { + "source": "https://github.com/Slickdeals/statsd-php/tree/3.0.2" + }, + "time": "2020-01-03T14:24:58+00:00" + }, { "name": "symfony/polyfill-ctype", "version": "dev-main", @@ -2070,12 +2068,12 @@ "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" + "reference": "4631e2c7d2d7132adac9fd84d4c1a98c10a6e049" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/4631e2c7d2d7132adac9fd84d4c1a98c10a6e049", + "reference": "4631e2c7d2d7132adac9fd84d4c1a98c10a6e049", "shasum": "" }, "require": { @@ -2115,7 +2113,7 @@ "issues": "https://github.com/webmozarts/assert/issues", "source": "https://github.com/webmozarts/assert/tree/1.9.1" }, - "time": "2020-07-08T17:02:28+00:00" + "time": "2021-02-28T20:01:57+00:00" } ], "packages-dev": [ @@ -2289,11 +2287,11 @@ }, { "name": "appwrite/sdk-generator", - "version": "0.5.5", + "version": "0.6.2", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator", - "reference": "08d6dc72f83ec99cfc0f7a50cb7fc0be0c029ac1" + "reference": "d96376295c9265a054634d21dcdbfc02b832c677" }, "require": { "ext-curl": "*", @@ -2323,7 +2321,7 @@ } ], "description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms", - "time": "2021-02-18T16:37:32+00:00" + "time": "2021-03-03T12:53:32+00:00" }, { "name": "composer/package-versions-deprecated", diff --git a/docs/examples/0.7.0/client-flutter/examples/account/create-o-auth2session.md b/docs/examples/0.7.0/client-flutter/examples/account/create-o-auth2session.md index 0e26dd27af..a100378a00 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/create-o-auth2session.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/create-o-auth2session.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.createOAuth2Session( provider: 'amazon', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/create-recovery.md b/docs/examples/0.7.0/client-flutter/examples/account/create-recovery.md index 50db45b15d..2a5df1aa49 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/create-recovery.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/create-recovery.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.createRecovery( email: 'email@example.com', url: 'https://example.com', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/create-session.md b/docs/examples/0.7.0/client-flutter/examples/account/create-session.md index ef824b4eca..6233665a43 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/create-session.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/create-session.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.createSession( email: 'email@example.com', password: 'password', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/create-verification.md b/docs/examples/0.7.0/client-flutter/examples/account/create-verification.md index 6b9b1ace40..18fa98aed2 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/create-verification.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/create-verification.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.createVerification( url: 'https://example.com', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/create.md b/docs/examples/0.7.0/client-flutter/examples/account/create.md index 384258ae68..33f7169477 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/create.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/create.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.create( email: 'email@example.com', password: 'password', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/delete-session.md b/docs/examples/0.7.0/client-flutter/examples/account/delete-session.md index 80a3f505d0..c116ef1188 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/delete-session.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/delete-session.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.deleteSession( sessionId: '[SESSION_ID]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/delete-sessions.md b/docs/examples/0.7.0/client-flutter/examples/account/delete-sessions.md index 74e494db25..0d84b9d121 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/delete-sessions.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/delete-sessions.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.deleteSessions(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/delete.md b/docs/examples/0.7.0/client-flutter/examples/account/delete.md index 2d9d302af0..c08891e787 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/delete.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/delete.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.delete(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/get-logs.md b/docs/examples/0.7.0/client-flutter/examples/account/get-logs.md index 4240e55eec..82da1f46ef 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/get-logs.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/get-logs.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.getLogs(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/get-prefs.md b/docs/examples/0.7.0/client-flutter/examples/account/get-prefs.md index d98dcd7290..2d6efd54db 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/get-prefs.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/get-prefs.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.getPrefs(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/get-sessions.md b/docs/examples/0.7.0/client-flutter/examples/account/get-sessions.md index b5ecd34e45..a44eac144b 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/get-sessions.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/get-sessions.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.getSessions(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/get.md b/docs/examples/0.7.0/client-flutter/examples/account/get.md index a77fbf3ad5..733d8842ce 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/get.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/get.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.get(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/update-email.md b/docs/examples/0.7.0/client-flutter/examples/account/update-email.md index 4a1a002db4..30dff9b7c9 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/update-email.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/update-email.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.updateEmail( email: 'email@example.com', password: 'password', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/update-name.md b/docs/examples/0.7.0/client-flutter/examples/account/update-name.md index fa432bb34a..01ff7a0b62 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/update-name.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/update-name.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.updateName( name: '[NAME]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/update-password.md b/docs/examples/0.7.0/client-flutter/examples/account/update-password.md index 9bd8ad9b77..203dccb2bf 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/update-password.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/update-password.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.updatePassword( password: 'password', oldPassword: 'password', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/update-prefs.md b/docs/examples/0.7.0/client-flutter/examples/account/update-prefs.md index 443252f89a..bb7b8f800e 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/update-prefs.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/update-prefs.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.updatePrefs( prefs: {}, ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/update-recovery.md b/docs/examples/0.7.0/client-flutter/examples/account/update-recovery.md index 5140235d49..df9f144600 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/update-recovery.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/update-recovery.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.updateRecovery( userId: '[USER_ID]', secret: '[SECRET]', @@ -22,4 +21,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/account/update-verification.md b/docs/examples/0.7.0/client-flutter/examples/account/update-verification.md index b795cde92d..2bfbaed75c 100644 --- a/docs/examples/0.7.0/client-flutter/examples/account/update-verification.md +++ b/docs/examples/0.7.0/client-flutter/examples/account/update-verification.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = account.updateVerification( userId: '[USER_ID]', secret: '[SECRET]', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/avatars/get-browser.md b/docs/examples/0.7.0/client-flutter/examples/avatars/get-browser.md index 464767c4c0..474b4a2097 100644 --- a/docs/examples/0.7.0/client-flutter/examples/avatars/get-browser.md +++ b/docs/examples/0.7.0/client-flutter/examples/avatars/get-browser.md @@ -8,10 +8,18 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; +} - String result = avatars.getBrowser( +//displaying image +FutureBuilder( + future: avatars.getBrowser( code: 'aa', - ); - - print(result); // Resource URL string -} \ No newline at end of file + ), //works for both public file and private file, for private files you need to be logged in + builder: (context, snapshot) { + return snapshot.hasData && snapshot.data != null + ? Image.memory( + snapshot.data.data, + ) + : CircularProgressIndicator(); + }, +); diff --git a/docs/examples/0.7.0/client-flutter/examples/avatars/get-credit-card.md b/docs/examples/0.7.0/client-flutter/examples/avatars/get-credit-card.md index 482c642402..5611b0ba9a 100644 --- a/docs/examples/0.7.0/client-flutter/examples/avatars/get-credit-card.md +++ b/docs/examples/0.7.0/client-flutter/examples/avatars/get-credit-card.md @@ -8,10 +8,18 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; +} - String result = avatars.getCreditCard( +//displaying image +FutureBuilder( + future: avatars.getCreditCard( code: 'amex', - ); - - print(result); // Resource URL string -} \ No newline at end of file + ), //works for both public file and private file, for private files you need to be logged in + builder: (context, snapshot) { + return snapshot.hasData && snapshot.data != null + ? Image.memory( + snapshot.data.data, + ) + : CircularProgressIndicator(); + }, +); diff --git a/docs/examples/0.7.0/client-flutter/examples/avatars/get-favicon.md b/docs/examples/0.7.0/client-flutter/examples/avatars/get-favicon.md index 60397b0af2..5e1aad08ed 100644 --- a/docs/examples/0.7.0/client-flutter/examples/avatars/get-favicon.md +++ b/docs/examples/0.7.0/client-flutter/examples/avatars/get-favicon.md @@ -8,10 +8,18 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; +} - String result = avatars.getFavicon( +//displaying image +FutureBuilder( + future: avatars.getFavicon( url: 'https://example.com', - ); - - print(result); // Resource URL string -} \ No newline at end of file + ), //works for both public file and private file, for private files you need to be logged in + builder: (context, snapshot) { + return snapshot.hasData && snapshot.data != null + ? Image.memory( + snapshot.data.data, + ) + : CircularProgressIndicator(); + }, +); diff --git a/docs/examples/0.7.0/client-flutter/examples/avatars/get-flag.md b/docs/examples/0.7.0/client-flutter/examples/avatars/get-flag.md index a9f7a711d9..f729dccdd7 100644 --- a/docs/examples/0.7.0/client-flutter/examples/avatars/get-flag.md +++ b/docs/examples/0.7.0/client-flutter/examples/avatars/get-flag.md @@ -8,10 +8,18 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; +} - String result = avatars.getFlag( +//displaying image +FutureBuilder( + future: avatars.getFlag( code: 'af', - ); - - print(result); // Resource URL string -} \ No newline at end of file + ), //works for both public file and private file, for private files you need to be logged in + builder: (context, snapshot) { + return snapshot.hasData && snapshot.data != null + ? Image.memory( + snapshot.data.data, + ) + : CircularProgressIndicator(); + }, +); diff --git a/docs/examples/0.7.0/client-flutter/examples/avatars/get-image.md b/docs/examples/0.7.0/client-flutter/examples/avatars/get-image.md index 7cead1cb2f..21ac6f80f0 100644 --- a/docs/examples/0.7.0/client-flutter/examples/avatars/get-image.md +++ b/docs/examples/0.7.0/client-flutter/examples/avatars/get-image.md @@ -8,10 +8,18 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; +} - String result = avatars.getImage( +//displaying image +FutureBuilder( + future: avatars.getImage( url: 'https://example.com', - ); - - print(result); // Resource URL string -} \ No newline at end of file + ), //works for both public file and private file, for private files you need to be logged in + builder: (context, snapshot) { + return snapshot.hasData && snapshot.data != null + ? Image.memory( + snapshot.data.data, + ) + : CircularProgressIndicator(); + }, +); diff --git a/docs/examples/0.7.0/client-flutter/examples/avatars/get-initials.md b/docs/examples/0.7.0/client-flutter/examples/avatars/get-initials.md index b2e70788d6..6ee824559d 100644 --- a/docs/examples/0.7.0/client-flutter/examples/avatars/get-initials.md +++ b/docs/examples/0.7.0/client-flutter/examples/avatars/get-initials.md @@ -8,9 +8,17 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; +} - String result = avatars.getInitials( - ); - - print(result); // Resource URL string -} \ No newline at end of file +//displaying image +FutureBuilder( + future: avatars.getInitials( + ), //works for both public file and private file, for private files you need to be logged in + builder: (context, snapshot) { + return snapshot.hasData && snapshot.data != null + ? Image.memory( + snapshot.data.data, + ) + : CircularProgressIndicator(); + }, +); diff --git a/docs/examples/0.7.0/client-flutter/examples/avatars/get-q-r.md b/docs/examples/0.7.0/client-flutter/examples/avatars/get-q-r.md index a5bcfd2c05..5c828ba98b 100644 --- a/docs/examples/0.7.0/client-flutter/examples/avatars/get-q-r.md +++ b/docs/examples/0.7.0/client-flutter/examples/avatars/get-q-r.md @@ -8,10 +8,18 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; +} - String result = avatars.getQR( +//displaying image +FutureBuilder( + future: avatars.getQR( text: '[TEXT]', - ); - - print(result); // Resource URL string -} \ No newline at end of file + ), //works for both public file and private file, for private files you need to be logged in + builder: (context, snapshot) { + return snapshot.hasData && snapshot.data != null + ? Image.memory( + snapshot.data.data, + ) + : CircularProgressIndicator(); + }, +); diff --git a/docs/examples/0.7.0/client-flutter/examples/database/create-document.md b/docs/examples/0.7.0/client-flutter/examples/database/create-document.md index b7d540bc2d..b2305f6602 100644 --- a/docs/examples/0.7.0/client-flutter/examples/database/create-document.md +++ b/docs/examples/0.7.0/client-flutter/examples/database/create-document.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = database.createDocument( collectionId: '[COLLECTION_ID]', data: {}, @@ -22,4 +21,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/database/delete-document.md b/docs/examples/0.7.0/client-flutter/examples/database/delete-document.md index 40c1cbdfe2..94479a0949 100644 --- a/docs/examples/0.7.0/client-flutter/examples/database/delete-document.md +++ b/docs/examples/0.7.0/client-flutter/examples/database/delete-document.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = database.deleteDocument( collectionId: '[COLLECTION_ID]', documentId: '[DOCUMENT_ID]', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/database/get-document.md b/docs/examples/0.7.0/client-flutter/examples/database/get-document.md index 0c98142315..153ad8e0f9 100644 --- a/docs/examples/0.7.0/client-flutter/examples/database/get-document.md +++ b/docs/examples/0.7.0/client-flutter/examples/database/get-document.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = database.getDocument( collectionId: '[COLLECTION_ID]', documentId: '[DOCUMENT_ID]', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/database/list-documents.md b/docs/examples/0.7.0/client-flutter/examples/database/list-documents.md index 0685e7f1aa..dc6893a285 100644 --- a/docs/examples/0.7.0/client-flutter/examples/database/list-documents.md +++ b/docs/examples/0.7.0/client-flutter/examples/database/list-documents.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = database.listDocuments( collectionId: '[COLLECTION_ID]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/database/update-document.md b/docs/examples/0.7.0/client-flutter/examples/database/update-document.md index 2f37cd767a..cc85817374 100644 --- a/docs/examples/0.7.0/client-flutter/examples/database/update-document.md +++ b/docs/examples/0.7.0/client-flutter/examples/database/update-document.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = database.updateDocument( collectionId: '[COLLECTION_ID]', documentId: '[DOCUMENT_ID]', @@ -23,4 +22,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/functions/create-execution.md b/docs/examples/0.7.0/client-flutter/examples/functions/create-execution.md index af61896d75..70b617ffab 100644 --- a/docs/examples/0.7.0/client-flutter/examples/functions/create-execution.md +++ b/docs/examples/0.7.0/client-flutter/examples/functions/create-execution.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = functions.createExecution( functionId: '[FUNCTION_ID]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/functions/get-execution.md b/docs/examples/0.7.0/client-flutter/examples/functions/get-execution.md index 22135bbedd..a10f7933c2 100644 --- a/docs/examples/0.7.0/client-flutter/examples/functions/get-execution.md +++ b/docs/examples/0.7.0/client-flutter/examples/functions/get-execution.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = functions.getExecution( functionId: '[FUNCTION_ID]', executionId: '[EXECUTION_ID]', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/functions/list-executions.md b/docs/examples/0.7.0/client-flutter/examples/functions/list-executions.md index fe53f4a82b..3f59aa3f20 100644 --- a/docs/examples/0.7.0/client-flutter/examples/functions/list-executions.md +++ b/docs/examples/0.7.0/client-flutter/examples/functions/list-executions.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = functions.listExecutions( functionId: '[FUNCTION_ID]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/locale/get-continents.md b/docs/examples/0.7.0/client-flutter/examples/locale/get-continents.md index 60d4f32c4f..63920e735a 100644 --- a/docs/examples/0.7.0/client-flutter/examples/locale/get-continents.md +++ b/docs/examples/0.7.0/client-flutter/examples/locale/get-continents.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = locale.getContinents(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/locale/get-countries-e-u.md b/docs/examples/0.7.0/client-flutter/examples/locale/get-countries-e-u.md index 766006fecc..39f3a1d709 100644 --- a/docs/examples/0.7.0/client-flutter/examples/locale/get-countries-e-u.md +++ b/docs/examples/0.7.0/client-flutter/examples/locale/get-countries-e-u.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = locale.getCountriesEU(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/locale/get-countries-phones.md b/docs/examples/0.7.0/client-flutter/examples/locale/get-countries-phones.md index 786eeb0b70..44ff02603b 100644 --- a/docs/examples/0.7.0/client-flutter/examples/locale/get-countries-phones.md +++ b/docs/examples/0.7.0/client-flutter/examples/locale/get-countries-phones.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = locale.getCountriesPhones(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/locale/get-countries.md b/docs/examples/0.7.0/client-flutter/examples/locale/get-countries.md index 0570421ef9..97ef85e1e6 100644 --- a/docs/examples/0.7.0/client-flutter/examples/locale/get-countries.md +++ b/docs/examples/0.7.0/client-flutter/examples/locale/get-countries.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = locale.getCountries(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/locale/get-currencies.md b/docs/examples/0.7.0/client-flutter/examples/locale/get-currencies.md index 7846c3c710..fb27e3d957 100644 --- a/docs/examples/0.7.0/client-flutter/examples/locale/get-currencies.md +++ b/docs/examples/0.7.0/client-flutter/examples/locale/get-currencies.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = locale.getCurrencies(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/locale/get-languages.md b/docs/examples/0.7.0/client-flutter/examples/locale/get-languages.md index 4f526383fa..badc806861 100644 --- a/docs/examples/0.7.0/client-flutter/examples/locale/get-languages.md +++ b/docs/examples/0.7.0/client-flutter/examples/locale/get-languages.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = locale.getLanguages(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/locale/get.md b/docs/examples/0.7.0/client-flutter/examples/locale/get.md index 2dbdd47f63..21b1a6cff2 100644 --- a/docs/examples/0.7.0/client-flutter/examples/locale/get.md +++ b/docs/examples/0.7.0/client-flutter/examples/locale/get.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = locale.get(); result @@ -17,4 +16,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/storage/create-file.md b/docs/examples/0.7.0/client-flutter/examples/storage/create-file.md index 9f61be12f4..a49d0b3fd6 100644 --- a/docs/examples/0.7.0/client-flutter/examples/storage/create-file.md +++ b/docs/examples/0.7.0/client-flutter/examples/storage/create-file.md @@ -9,7 +9,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = storage.createFile( file: await MultipartFile.fromFile('./path-to-files/image.jpg', 'image.jpg'), read: [], @@ -22,4 +21,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/storage/delete-file.md b/docs/examples/0.7.0/client-flutter/examples/storage/delete-file.md index 271ed7b2dd..ee9af9fc0e 100644 --- a/docs/examples/0.7.0/client-flutter/examples/storage/delete-file.md +++ b/docs/examples/0.7.0/client-flutter/examples/storage/delete-file.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = storage.deleteFile( fileId: '[FILE_ID]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/storage/get-file-download.md b/docs/examples/0.7.0/client-flutter/examples/storage/get-file-download.md index be3385a61b..2c5de98ee8 100644 --- a/docs/examples/0.7.0/client-flutter/examples/storage/get-file-download.md +++ b/docs/examples/0.7.0/client-flutter/examples/storage/get-file-download.md @@ -8,10 +8,18 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; +} - String result = storage.getFileDownload( +//displaying image +FutureBuilder( + future: storage.getFileDownload( fileId: '[FILE_ID]', - ); - - print(result); // Resource URL string -} \ No newline at end of file + ), //works for both public file and private file, for private files you need to be logged in + builder: (context, snapshot) { + return snapshot.hasData && snapshot.data != null + ? Image.memory( + snapshot.data.data, + ) + : CircularProgressIndicator(); + }, +); diff --git a/docs/examples/0.7.0/client-flutter/examples/storage/get-file-preview.md b/docs/examples/0.7.0/client-flutter/examples/storage/get-file-preview.md index 8bd1a47457..0cf4c9c0d0 100644 --- a/docs/examples/0.7.0/client-flutter/examples/storage/get-file-preview.md +++ b/docs/examples/0.7.0/client-flutter/examples/storage/get-file-preview.md @@ -8,10 +8,18 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; +} - String result = storage.getFilePreview( +//displaying image +FutureBuilder( + future: storage.getFilePreview( fileId: '[FILE_ID]', - ); - - print(result); // Resource URL string -} \ No newline at end of file + ), //works for both public file and private file, for private files you need to be logged in + builder: (context, snapshot) { + return snapshot.hasData && snapshot.data != null + ? Image.memory( + snapshot.data.data, + ) + : CircularProgressIndicator(); + }, +); diff --git a/docs/examples/0.7.0/client-flutter/examples/storage/get-file-view.md b/docs/examples/0.7.0/client-flutter/examples/storage/get-file-view.md index 5803fd409f..9b53265ee7 100644 --- a/docs/examples/0.7.0/client-flutter/examples/storage/get-file-view.md +++ b/docs/examples/0.7.0/client-flutter/examples/storage/get-file-view.md @@ -8,10 +8,18 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; +} - String result = storage.getFileView( +//displaying image +FutureBuilder( + future: storage.getFileView( fileId: '[FILE_ID]', - ); - - print(result); // Resource URL string -} \ No newline at end of file + ), //works for both public file and private file, for private files you need to be logged in + builder: (context, snapshot) { + return snapshot.hasData && snapshot.data != null + ? Image.memory( + snapshot.data.data, + ) + : CircularProgressIndicator(); + }, +); diff --git a/docs/examples/0.7.0/client-flutter/examples/storage/get-file.md b/docs/examples/0.7.0/client-flutter/examples/storage/get-file.md index feca667fa9..2f734c6bdc 100644 --- a/docs/examples/0.7.0/client-flutter/examples/storage/get-file.md +++ b/docs/examples/0.7.0/client-flutter/examples/storage/get-file.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = storage.getFile( fileId: '[FILE_ID]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/storage/list-files.md b/docs/examples/0.7.0/client-flutter/examples/storage/list-files.md index 1963ec694d..663d416198 100644 --- a/docs/examples/0.7.0/client-flutter/examples/storage/list-files.md +++ b/docs/examples/0.7.0/client-flutter/examples/storage/list-files.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = storage.listFiles( ); @@ -18,4 +17,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/storage/update-file.md b/docs/examples/0.7.0/client-flutter/examples/storage/update-file.md index a5ecbfe987..bc71901245 100644 --- a/docs/examples/0.7.0/client-flutter/examples/storage/update-file.md +++ b/docs/examples/0.7.0/client-flutter/examples/storage/update-file.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = storage.updateFile( fileId: '[FILE_ID]', read: [], @@ -21,4 +20,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/teams/create-membership.md b/docs/examples/0.7.0/client-flutter/examples/teams/create-membership.md index e5e82de7b4..ef5931ea66 100644 --- a/docs/examples/0.7.0/client-flutter/examples/teams/create-membership.md +++ b/docs/examples/0.7.0/client-flutter/examples/teams/create-membership.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = teams.createMembership( teamId: '[TEAM_ID]', email: 'email@example.com', @@ -22,4 +21,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/teams/create.md b/docs/examples/0.7.0/client-flutter/examples/teams/create.md index d11958ae6d..90dea2fb1a 100644 --- a/docs/examples/0.7.0/client-flutter/examples/teams/create.md +++ b/docs/examples/0.7.0/client-flutter/examples/teams/create.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = teams.create( name: '[NAME]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/teams/delete-membership.md b/docs/examples/0.7.0/client-flutter/examples/teams/delete-membership.md index 3f57b840fe..6f26421a55 100644 --- a/docs/examples/0.7.0/client-flutter/examples/teams/delete-membership.md +++ b/docs/examples/0.7.0/client-flutter/examples/teams/delete-membership.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = teams.deleteMembership( teamId: '[TEAM_ID]', inviteId: '[INVITE_ID]', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/teams/delete.md b/docs/examples/0.7.0/client-flutter/examples/teams/delete.md index 9fb488afec..e55c62b2e3 100644 --- a/docs/examples/0.7.0/client-flutter/examples/teams/delete.md +++ b/docs/examples/0.7.0/client-flutter/examples/teams/delete.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = teams.delete( teamId: '[TEAM_ID]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/teams/get-memberships.md b/docs/examples/0.7.0/client-flutter/examples/teams/get-memberships.md index 4edadfa2b4..3116ca86ad 100644 --- a/docs/examples/0.7.0/client-flutter/examples/teams/get-memberships.md +++ b/docs/examples/0.7.0/client-flutter/examples/teams/get-memberships.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = teams.getMemberships( teamId: '[TEAM_ID]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/teams/get.md b/docs/examples/0.7.0/client-flutter/examples/teams/get.md index 083565f7a6..25eb2453fc 100644 --- a/docs/examples/0.7.0/client-flutter/examples/teams/get.md +++ b/docs/examples/0.7.0/client-flutter/examples/teams/get.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = teams.get( teamId: '[TEAM_ID]', ); @@ -19,4 +18,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/teams/list.md b/docs/examples/0.7.0/client-flutter/examples/teams/list.md index 665020e928..8657f80fd3 100644 --- a/docs/examples/0.7.0/client-flutter/examples/teams/list.md +++ b/docs/examples/0.7.0/client-flutter/examples/teams/list.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = teams.list( ); @@ -18,4 +17,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/teams/update-membership-status.md b/docs/examples/0.7.0/client-flutter/examples/teams/update-membership-status.md index 616f64e148..c596c904e1 100644 --- a/docs/examples/0.7.0/client-flutter/examples/teams/update-membership-status.md +++ b/docs/examples/0.7.0/client-flutter/examples/teams/update-membership-status.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = teams.updateMembershipStatus( teamId: '[TEAM_ID]', inviteId: '[INVITE_ID]', @@ -22,4 +21,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/client-flutter/examples/teams/update.md b/docs/examples/0.7.0/client-flutter/examples/teams/update.md index 915fb57d38..838639be9b 100644 --- a/docs/examples/0.7.0/client-flutter/examples/teams/update.md +++ b/docs/examples/0.7.0/client-flutter/examples/teams/update.md @@ -8,7 +8,6 @@ void main() { // Init SDK .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint .setProject('5df5acd0d48c2') // Your project ID ; - Future result = teams.update( teamId: '[TEAM_ID]', name: '[NAME]', @@ -20,4 +19,4 @@ void main() { // Init SDK }).catchError((error) { print(error.response); }); -} \ No newline at end of file +} diff --git a/docs/examples/0.7.0/server-dart/examples/avatars/get-browser.md b/docs/examples/0.7.0/server-dart/examples/avatars/get-browser.md index 87d2062fc4..c924ae43c8 100644 --- a/docs/examples/0.7.0/server-dart/examples/avatars/get-browser.md +++ b/docs/examples/0.7.0/server-dart/examples/avatars/get-browser.md @@ -10,9 +10,14 @@ void main() { // Init SDK .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key ; - String result = avatars.getBrowser( + Future result = avatars.getBrowser( code: 'aa', ); - print(result); // Resource URL string + result + .then((response) { + print(response); + }).catchError((error) { + print(error.response); + }); } \ No newline at end of file diff --git a/docs/examples/0.7.0/server-dart/examples/avatars/get-credit-card.md b/docs/examples/0.7.0/server-dart/examples/avatars/get-credit-card.md index 8fe5f1d5d8..5d01d690dd 100644 --- a/docs/examples/0.7.0/server-dart/examples/avatars/get-credit-card.md +++ b/docs/examples/0.7.0/server-dart/examples/avatars/get-credit-card.md @@ -10,9 +10,14 @@ void main() { // Init SDK .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key ; - String result = avatars.getCreditCard( + Future result = avatars.getCreditCard( code: 'amex', ); - print(result); // Resource URL string + result + .then((response) { + print(response); + }).catchError((error) { + print(error.response); + }); } \ No newline at end of file diff --git a/docs/examples/0.7.0/server-dart/examples/avatars/get-favicon.md b/docs/examples/0.7.0/server-dart/examples/avatars/get-favicon.md index 6a249dc70f..3308f5c59a 100644 --- a/docs/examples/0.7.0/server-dart/examples/avatars/get-favicon.md +++ b/docs/examples/0.7.0/server-dart/examples/avatars/get-favicon.md @@ -10,9 +10,14 @@ void main() { // Init SDK .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key ; - String result = avatars.getFavicon( + Future result = avatars.getFavicon( url: 'https://example.com', ); - print(result); // Resource URL string + result + .then((response) { + print(response); + }).catchError((error) { + print(error.response); + }); } \ No newline at end of file diff --git a/docs/examples/0.7.0/server-dart/examples/avatars/get-flag.md b/docs/examples/0.7.0/server-dart/examples/avatars/get-flag.md index f997b668da..5da4aaf219 100644 --- a/docs/examples/0.7.0/server-dart/examples/avatars/get-flag.md +++ b/docs/examples/0.7.0/server-dart/examples/avatars/get-flag.md @@ -10,9 +10,14 @@ void main() { // Init SDK .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key ; - String result = avatars.getFlag( + Future result = avatars.getFlag( code: 'af', ); - print(result); // Resource URL string + result + .then((response) { + print(response); + }).catchError((error) { + print(error.response); + }); } \ No newline at end of file diff --git a/docs/examples/0.7.0/server-dart/examples/avatars/get-image.md b/docs/examples/0.7.0/server-dart/examples/avatars/get-image.md index 9f31d8f159..196c6dedb5 100644 --- a/docs/examples/0.7.0/server-dart/examples/avatars/get-image.md +++ b/docs/examples/0.7.0/server-dart/examples/avatars/get-image.md @@ -10,9 +10,14 @@ void main() { // Init SDK .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key ; - String result = avatars.getImage( + Future result = avatars.getImage( url: 'https://example.com', ); - print(result); // Resource URL string + result + .then((response) { + print(response); + }).catchError((error) { + print(error.response); + }); } \ No newline at end of file diff --git a/docs/examples/0.7.0/server-dart/examples/avatars/get-initials.md b/docs/examples/0.7.0/server-dart/examples/avatars/get-initials.md index 73788d2170..c40a54b712 100644 --- a/docs/examples/0.7.0/server-dart/examples/avatars/get-initials.md +++ b/docs/examples/0.7.0/server-dart/examples/avatars/get-initials.md @@ -10,8 +10,13 @@ void main() { // Init SDK .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key ; - String result = avatars.getInitials( + Future result = avatars.getInitials( ); - print(result); // Resource URL string + result + .then((response) { + print(response); + }).catchError((error) { + print(error.response); + }); } \ No newline at end of file diff --git a/docs/examples/0.7.0/server-dart/examples/avatars/get-q-r.md b/docs/examples/0.7.0/server-dart/examples/avatars/get-q-r.md index eb8b46c743..bef31b345f 100644 --- a/docs/examples/0.7.0/server-dart/examples/avatars/get-q-r.md +++ b/docs/examples/0.7.0/server-dart/examples/avatars/get-q-r.md @@ -10,9 +10,14 @@ void main() { // Init SDK .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key ; - String result = avatars.getQR( + Future result = avatars.getQR( text: '[TEXT]', ); - print(result); // Resource URL string + result + .then((response) { + print(response); + }).catchError((error) { + print(error.response); + }); } \ No newline at end of file diff --git a/docs/examples/0.7.0/server-dart/examples/storage/get-file-download.md b/docs/examples/0.7.0/server-dart/examples/storage/get-file-download.md index 2eceaab1f5..1601fccd94 100644 --- a/docs/examples/0.7.0/server-dart/examples/storage/get-file-download.md +++ b/docs/examples/0.7.0/server-dart/examples/storage/get-file-download.md @@ -10,9 +10,14 @@ void main() { // Init SDK .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key ; - String result = storage.getFileDownload( + Future result = storage.getFileDownload( fileId: '[FILE_ID]', ); - print(result); // Resource URL string + result + .then((response) { + print(response); + }).catchError((error) { + print(error.response); + }); } \ No newline at end of file diff --git a/docs/examples/0.7.0/server-dart/examples/storage/get-file-preview.md b/docs/examples/0.7.0/server-dart/examples/storage/get-file-preview.md index 2b564d81b7..2c88ef408e 100644 --- a/docs/examples/0.7.0/server-dart/examples/storage/get-file-preview.md +++ b/docs/examples/0.7.0/server-dart/examples/storage/get-file-preview.md @@ -10,9 +10,14 @@ void main() { // Init SDK .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key ; - String result = storage.getFilePreview( + Future result = storage.getFilePreview( fileId: '[FILE_ID]', ); - print(result); // Resource URL string + result + .then((response) { + print(response); + }).catchError((error) { + print(error.response); + }); } \ No newline at end of file diff --git a/docs/examples/0.7.0/server-dart/examples/storage/get-file-view.md b/docs/examples/0.7.0/server-dart/examples/storage/get-file-view.md index 030fb40f38..27fa91bb05 100644 --- a/docs/examples/0.7.0/server-dart/examples/storage/get-file-view.md +++ b/docs/examples/0.7.0/server-dart/examples/storage/get-file-view.md @@ -10,9 +10,14 @@ void main() { // Init SDK .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key ; - String result = storage.getFileView( + Future result = storage.getFileView( fileId: '[FILE_ID]', ); - print(result); // Resource URL string + result + .then((response) { + print(response); + }).catchError((error) { + print(error.response); + }); } \ No newline at end of file diff --git a/docs/sdks/dart/CHANGELOG.md b/docs/sdks/dart/CHANGELOG.md index e8d0ca1f73..4cdd477aba 100644 --- a/docs/sdks/dart/CHANGELOG.md +++ b/docs/sdks/dart/CHANGELOG.md @@ -1,3 +1,17 @@ +## 0.3.1 + +- Minor fixes for custom exceptions + +## 0.3.0 + +- Improved code quality +- Added a custom Appwrite exception +- Enabled access to private storage file + +## 0.2.0 + +- Upgraded to work with Appwrite 0.7 + ## 0.1.0 - First release \ No newline at end of file diff --git a/docs/sdks/flutter/CHANGELOG.md b/docs/sdks/flutter/CHANGELOG.md index 0e853c7ebe..8798963fc8 100644 --- a/docs/sdks/flutter/CHANGELOG.md +++ b/docs/sdks/flutter/CHANGELOG.md @@ -1,3 +1,17 @@ +## 0.4.0-dev.2 + +- Minor fixes for custom exceptions + +## 0.4.0-dev.1 + +- Improved code quality +- Enabled access to private storage file +- Added easier integration for preview images and the Image widget + +## 0.3.0 + +- Upgraded to work with Appwrite 0.7 + ## 0.3.0-dev.2 - Fix for an error when using a self-signed certificate for Web diff --git a/tests/e2e/General/HTTPTest.php b/tests/e2e/General/HTTPTest.php index 570bf63d94..7cbc74bda9 100644 --- a/tests/e2e/General/HTTPTest.php +++ b/tests/e2e/General/HTTPTest.php @@ -26,7 +26,7 @@ class HTTPTest extends Scope $this->assertEquals(204, $response['headers']['status-code']); $this->assertEquals('Appwrite', $response['headers']['server']); $this->assertEquals('GET, POST, PUT, PATCH, DELETE', $response['headers']['access-control-allow-methods']); - $this->assertEquals('Origin, Cookie, Set-Cookie, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Request-Headers, Accept, X-Appwrite-Project, X-Appwrite-Key, X-Appwrite-Locale, X-Appwrite-Mode, X-Appwrite-JWT, X-SDK-Version, Cache-Control, Expires, Pragma, X-Fallback-Cookies', $response['headers']['access-control-allow-headers']); + $this->assertEquals('Origin, Cookie, Set-Cookie, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Request-Headers, Accept, X-Appwrite-Project, X-Appwrite-Key, X-Appwrite-Locale, X-Appwrite-Mode, X-Appwrite-JWT, X-Appwrite-Response-Format, X-SDK-Version, Cache-Control, Expires, Pragma, X-Fallback-Cookies', $response['headers']['access-control-allow-headers']); $this->assertEquals('X-Fallback-Cookies', $response['headers']['access-control-expose-headers']); $this->assertEquals('http://localhost', $response['headers']['access-control-allow-origin']); $this->assertEquals('true', $response['headers']['access-control-allow-credentials']); diff --git a/tests/e2e/Scopes/ProjectCustom.php b/tests/e2e/Scopes/ProjectCustom.php index e1059f6afa..0596aee09f 100644 --- a/tests/e2e/Scopes/ProjectCustom.php +++ b/tests/e2e/Scopes/ProjectCustom.php @@ -117,6 +117,7 @@ trait ProjectCustom 'storage.files.update', 'storage.files.delete', 'users.create', + 'users.update.prefs', 'users.update.status', 'users.delete', 'users.sessions.delete', diff --git a/tests/e2e/Services/Webhooks/WebhooksCustomServerTest.php b/tests/e2e/Services/Webhooks/WebhooksCustomServerTest.php index 360dee2cb3..d2d5549134 100644 --- a/tests/e2e/Services/Webhooks/WebhooksCustomServerTest.php +++ b/tests/e2e/Services/Webhooks/WebhooksCustomServerTest.php @@ -186,10 +186,43 @@ class WebhooksCustomServerTest extends Scope */ return ['userId' => $user['body']['$id'], 'name' => $user['body']['name'], 'email' => $user['body']['email']]; } - - /** + + /** * @depends testCreateUser */ + public function testUpdateUserPrefs(array $data):array + { + /** + * Test for SUCCESS + */ + $user = $this->client->call(Client::METHOD_PATCH, '/users/' . $data['userId'] . '/prefs', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'prefs' => ['a' => 'b'] + ]); + + $this->assertEquals($user['headers']['status-code'], 200); + $this->assertEquals($user['body']['a'], 'b'); + + $webhook = $this->getLastRequest(); + + $this->assertEquals($webhook['method'], 'POST'); + $this->assertEquals($webhook['headers']['Content-Type'], 'application/json'); + $this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io'); + $this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Event'], 'users.update.prefs'); + $this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], 'not-yet-implemented'); + $this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']); + $this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']); + $this->assertEquals(empty($webhook['headers']['X-Appwrite-Webhook-User-Id'] ?? ''), ('server' === $this->getSide())); + $this->assertEquals($webhook['data']['a'], 'b'); + + return $data; + } + + /** + * @depends testUpdateUserPrefs + */ public function testUpdateUserStatus(array $data):array { /** @@ -221,7 +254,7 @@ class WebhooksCustomServerTest extends Scope $this->assertEquals($webhook['data']['status'], 2); $this->assertEquals($webhook['data']['email'], $data['email']); $this->assertEquals($webhook['data']['emailVerification'], false); - $this->assertEquals($webhook['data']['prefs'], []); + $this->assertEquals($webhook['data']['prefs']['a'], 'b'); return $data; } @@ -257,8 +290,8 @@ class WebhooksCustomServerTest extends Scope $this->assertEquals($webhook['data']['status'], 2); $this->assertEquals($webhook['data']['email'], $data['email']); $this->assertEquals($webhook['data']['emailVerification'], false); - $this->assertEquals($webhook['data']['prefs'], []); + $this->assertEquals($webhook['data']['prefs']['a'], 'b'); return $data; } -} \ No newline at end of file +}