diff --git a/CHANGELOG.md b/CHANGELOG.md index 35b85ad3..b58772a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 25.0.0 + +* Breaking: `avatars.getScreenshot` `theme` parameter now uses the `BrowserTheme` enum +* Breaking: Removed generic type parameters from `presences` service methods +* Added: `BrowserTheme` enum +* Updated: `Presence` model is now concrete and adds a `metadata` field + ## 24.1.1 * Fixed: Removed `Advisor` service and `Insight`, `InsightCTA`, `InsightList`, `Report`, `ReportList` models (admin-only endpoints, not intended for client SDKs) diff --git a/README.md b/README.md index 6cfe247b..2762ac59 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Add this to your package's `pubspec.yaml` file: ```yml dependencies: - appwrite: ^24.2.0 + appwrite: ^25.0.0 ``` You can install packages from the command line: diff --git a/docs/examples/avatars/get-screenshot.md b/docs/examples/avatars/get-screenshot.md index 6695d05a..7de27d7b 100644 --- a/docs/examples/avatars/get-screenshot.md +++ b/docs/examples/avatars/get-screenshot.md @@ -18,11 +18,11 @@ Uint8List bytes = await avatars.getScreenshot( viewportWidth: 1920, // optional viewportHeight: 1080, // optional scale: 2, // optional - theme: enums.Theme.dark, // optional + theme: enums.BrowserTheme.dark, // optional userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15', // optional fullpage: true, // optional locale: 'en-US', // optional - timezone: enums.Timezone.americaNewYork, // optional + timezone: enums.Timezone.africaAbidjan, // optional latitude: 37.7749, // optional longitude: -122.4194, // optional accuracy: 100, // optional @@ -49,11 +49,11 @@ FutureBuilder( viewportWidth:1920 , // optional viewportHeight:1080 , // optional scale:2 , // optional - theme: enums.Theme.dark, // optional + theme: enums.BrowserTheme.dark, // optional userAgent:'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15' , // optional fullpage:true , // optional locale:'en-US' , // optional - timezone: enums.Timezone.americaNewYork, // optional + timezone: enums.Timezone.africaAbidjan, // optional latitude:37.7749 , // optional longitude:-122.4194 , // optional accuracy:100 , // optional diff --git a/lib/enums.dart b/lib/enums.dart index 0063dff9..f9b21727 100644 --- a/lib/enums.dart +++ b/lib/enums.dart @@ -7,7 +7,7 @@ part 'src/enums/o_auth_provider.dart'; part 'src/enums/browser.dart'; part 'src/enums/credit_card.dart'; part 'src/enums/flag.dart'; -part 'src/enums/theme.dart'; +part 'src/enums/browser_theme.dart'; part 'src/enums/timezone.dart'; part 'src/enums/browser_permission.dart'; part 'src/enums/image_format.dart'; diff --git a/lib/services/avatars.dart b/lib/services/avatars.dart index 856714da..c04d2918 100644 --- a/lib/services/avatars.dart +++ b/lib/services/avatars.dart @@ -205,7 +205,7 @@ class Avatars extends Service { int? viewportWidth, int? viewportHeight, double? scale, - enums.Theme? theme, + enums.BrowserTheme? theme, String? userAgent, bool? fullpage, String? locale, diff --git a/lib/src/client_browser.dart b/lib/src/client_browser.dart index 9d20bba8..3160c1c8 100644 --- a/lib/src/client_browser.dart +++ b/lib/src/client_browser.dart @@ -40,7 +40,7 @@ class ClientBrowser extends ClientBase with ClientMixin { 'x-sdk-name': 'Flutter', 'x-sdk-platform': 'client', 'x-sdk-language': 'flutter', - 'x-sdk-version': '24.2.0', + 'x-sdk-version': '25.0.0', 'X-Appwrite-Response-Format': '1.9.5', }; diff --git a/lib/src/client_io.dart b/lib/src/client_io.dart index 4d32c10c..75a51288 100644 --- a/lib/src/client_io.dart +++ b/lib/src/client_io.dart @@ -58,7 +58,7 @@ class ClientIO extends ClientBase with ClientMixin { 'x-sdk-name': 'Flutter', 'x-sdk-platform': 'client', 'x-sdk-language': 'flutter', - 'x-sdk-version': '24.2.0', + 'x-sdk-version': '25.0.0', 'X-Appwrite-Response-Format': '1.9.5', }; diff --git a/lib/src/enums/theme.dart b/lib/src/enums/browser_theme.dart similarity index 67% rename from lib/src/enums/theme.dart rename to lib/src/enums/browser_theme.dart index 979320f1..1e059c2c 100644 --- a/lib/src/enums/theme.dart +++ b/lib/src/enums/browser_theme.dart @@ -1,10 +1,10 @@ part of '../../enums.dart'; -enum Theme { +enum BrowserTheme { light(value: 'light'), dark(value: 'dark'); - const Theme({required this.value}); + const BrowserTheme({required this.value}); final String value; diff --git a/lib/src/models/document.dart b/lib/src/models/document.dart index ecadacfb..be08d599 100644 --- a/lib/src/models/document.dart +++ b/lib/src/models/document.dart @@ -45,7 +45,7 @@ class Document implements Model { $createdAt: map['\$createdAt'].toString(), $updatedAt: map['\$updatedAt'].toString(), $permissions: List.from(map['\$permissions'] ?? []), - data: Map.from(map["data"] ?? {}), + data: map["data"] ?? map, ); } diff --git a/lib/src/models/presence.dart b/lib/src/models/presence.dart index 6b59be6f..d31911de 100644 --- a/lib/src/models/presence.dart +++ b/lib/src/models/presence.dart @@ -26,7 +26,8 @@ class Presence implements Model { /// Presence expiry date in ISO 8601 format. final String? expiresAt; - final Map metadata; + /// Presence metadata. + final Map? metadata; Presence({ required this.$id, @@ -37,7 +38,7 @@ class Presence implements Model { this.status, required this.source, this.expiresAt, - required this.metadata, + this.metadata, }); factory Presence.fromMap(Map map) { @@ -50,7 +51,7 @@ class Presence implements Model { status: map['status']?.toString(), source: map['source'].toString(), expiresAt: map['expiresAt']?.toString(), - metadata: Map.from(map["metadata"] ?? {}), + metadata: map['metadata'], ); } @@ -68,7 +69,4 @@ class Presence implements Model { "metadata": metadata, }; } - - T convertTo(T Function(Map) fromJson) => - fromJson(metadata); } diff --git a/lib/src/models/presence_list.dart b/lib/src/models/presence_list.dart index ddd87e31..3d010b1c 100644 --- a/lib/src/models/presence_list.dart +++ b/lib/src/models/presence_list.dart @@ -28,7 +28,4 @@ class PresenceList implements Model { "presences": presences.map((p) => p.toMap()).toList(), }; } - - List convertTo(T Function(Map) fromJson) => - presences.map((d) => d.convertTo(fromJson)).toList(); } diff --git a/lib/src/models/row.dart b/lib/src/models/row.dart index 7d311490..a825eab0 100644 --- a/lib/src/models/row.dart +++ b/lib/src/models/row.dart @@ -45,7 +45,7 @@ class Row implements Model { $createdAt: map['\$createdAt'].toString(), $updatedAt: map['\$updatedAt'].toString(), $permissions: List.from(map['\$permissions'] ?? []), - data: Map.from(map["data"] ?? {}), + data: map["data"] ?? map, ); } diff --git a/pubspec.yaml b/pubspec.yaml index 776d6e45..01f35d1c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: appwrite -version: 24.2.0 +version: 25.0.0 description: Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API homepage: https://appwrite.io repository: https://github.com/appwrite/sdk-for-flutter diff --git a/test/src/models/presence_test.dart b/test/src/models/presence_test.dart index 713ba013..ef2ebe31 100644 --- a/test/src/models/presence_test.dart +++ b/test/src/models/presence_test.dart @@ -11,7 +11,6 @@ void main() { $permissions: [], userId: '674af8f3e12a5f9ac0be', source: 'HTTP', - metadata: {}, ); final map = model.toMap();