From 72e20750bf78dace3c6fbd1539c7d6c2c860b2e3 Mon Sep 17 00:00:00 2001 From: Steven Nguyen <1477010+stnguyen90@users.noreply.github.com> Date: Sat, 23 Mar 2024 00:10:53 +0000 Subject: [PATCH] fix(messaging): fix msg91 params --- CHANGELOG.md | 4 +++ README.md | 2 +- .../messaging/create-msg91provider.md | 2 +- .../messaging/update-msg91provider.md | 2 +- lib/dart_appwrite.dart | 1 + lib/id.dart | 29 ++++++++++++++++--- lib/services/messaging.dart | 8 ++--- lib/src/client_browser.dart | 2 +- lib/src/client_io.dart | 4 +-- pubspec.yaml | 2 +- test/id_test.dart | 4 +-- 11 files changed, 43 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95c32a97..a8d3f6d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 11.0.2 + +* Fixed MSG91 missing template ID + ## 11.0.1 * Fixed parameters using enum types diff --git a/README.md b/README.md index 16b0a4bc..940f9b27 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Add this to your package's `pubspec.yaml` file: ```yml dependencies: - dart_appwrite: ^11.0.1 + dart_appwrite: ^11.0.2 ``` You can install packages from the command line: diff --git a/docs/examples/messaging/create-msg91provider.md b/docs/examples/messaging/create-msg91provider.md index 95c508fa..696d132a 100644 --- a/docs/examples/messaging/create-msg91provider.md +++ b/docs/examples/messaging/create-msg91provider.md @@ -10,7 +10,7 @@ Messaging messaging = Messaging(client); Provider result = await messaging.createMsg91Provider( providerId: '', name: '', - from: '+12065550100', // (optional) + templateId: '', // (optional) senderId: '', // (optional) authKey: '', // (optional) enabled: false, // (optional) diff --git a/docs/examples/messaging/update-msg91provider.md b/docs/examples/messaging/update-msg91provider.md index 6966b15e..7b1c32d8 100644 --- a/docs/examples/messaging/update-msg91provider.md +++ b/docs/examples/messaging/update-msg91provider.md @@ -11,7 +11,7 @@ Provider result = await messaging.updateMsg91Provider( providerId: '', name: '', // (optional) enabled: false, // (optional) + templateId: '', // (optional) senderId: '', // (optional) authKey: '', // (optional) - from: '', // (optional) ); diff --git a/lib/dart_appwrite.dart b/lib/dart_appwrite.dart index 7e9498a1..79604965 100644 --- a/lib/dart_appwrite.dart +++ b/lib/dart_appwrite.dart @@ -6,6 +6,7 @@ library dart_appwrite; import 'dart:async'; +import 'dart:math'; import 'dart:typed_data'; import 'dart:convert'; diff --git a/lib/id.dart b/lib/id.dart index ae9028ef..bd955411 100644 --- a/lib/id.dart +++ b/lib/id.dart @@ -4,13 +4,34 @@ part of dart_appwrite; class ID { ID._(); - /// Have Appwrite generate a unique ID for you. - static String unique() { - return 'unique()'; + // Generate an hex ID based on timestamp + // Recreated from https://www.php.net/manual/en/function.uniqid.php + static String _hexTimestamp() { + final now = DateTime.now(); + final sec = (now.millisecondsSinceEpoch / 1000).floor(); + final usec = now.microsecondsSinceEpoch - (sec * 1000000); + return sec.toRadixString(16) + + usec.toRadixString(16).padLeft(5, '0'); + } + + // Generate a unique ID with padding to have a longer ID + static String unique({int padding = 7}) { + String id = _hexTimestamp(); + + if (padding > 0) { + StringBuffer sb = StringBuffer(); + for (var i = 0; i < padding; i++) { + sb.write(Random().nextInt(16).toRadixString(16)); + } + + id += sb.toString(); + } + + return id; } /// Uses [id] as the ID for the resource. static String custom(String id) { return id; } -} \ No newline at end of file +} diff --git a/lib/services/messaging.dart b/lib/services/messaging.dart index e7f2e9b8..0343a606 100644 --- a/lib/services/messaging.dart +++ b/lib/services/messaging.dart @@ -522,14 +522,14 @@ class Messaging extends Service { /// Create Msg91 provider /// /// Create a new MSG91 provider. - Future createMsg91Provider({required String providerId, required String name, String? from, String? senderId, String? authKey, bool? enabled}) async { + Future createMsg91Provider({required String providerId, required String name, String? templateId, String? senderId, String? authKey, bool? enabled}) async { final String apiPath = '/messaging/providers/msg91'; final Map apiParams = { 'providerId': providerId, 'name': name, -'from': from, +'templateId': templateId, 'senderId': senderId, 'authKey': authKey, 'enabled': enabled, @@ -550,16 +550,16 @@ class Messaging extends Service { /// Update Msg91 provider /// /// Update a MSG91 provider by its unique ID. - Future updateMsg91Provider({required String providerId, String? name, bool? enabled, String? senderId, String? authKey, String? from}) async { + Future updateMsg91Provider({required String providerId, String? name, bool? enabled, String? templateId, String? senderId, String? authKey}) async { final String apiPath = '/messaging/providers/msg91/{providerId}'.replaceAll('{providerId}', providerId); final Map apiParams = { 'name': name, 'enabled': enabled, +'templateId': templateId, 'senderId': senderId, 'authKey': authKey, -'from': from, }; diff --git a/lib/src/client_browser.dart b/lib/src/client_browser.dart index f1bb7571..185747f5 100644 --- a/lib/src/client_browser.dart +++ b/lib/src/client_browser.dart @@ -33,7 +33,7 @@ class ClientBrowser extends ClientBase with ClientMixin { 'x-sdk-name': 'Dart', 'x-sdk-platform': 'server', 'x-sdk-language': 'dart', - 'x-sdk-version': '11.0.1', + 'x-sdk-version': '11.0.2', 'X-Appwrite-Response-Format' : '1.5.0', }; diff --git a/lib/src/client_io.dart b/lib/src/client_io.dart index b99e7a28..6cc3faae 100644 --- a/lib/src/client_io.dart +++ b/lib/src/client_io.dart @@ -42,8 +42,8 @@ class ClientIO extends ClientBase with ClientMixin { 'x-sdk-name': 'Dart', 'x-sdk-platform': 'server', 'x-sdk-language': 'dart', - 'x-sdk-version': '11.0.1', - 'user-agent' : 'AppwriteDartSDK/11.0.1 (${Platform.operatingSystem}; ${Platform.operatingSystemVersion})', + 'x-sdk-version': '11.0.2', + 'user-agent' : 'AppwriteDartSDK/11.0.2 (${Platform.operatingSystem}; ${Platform.operatingSystemVersion})', 'X-Appwrite-Response-Format' : '1.5.0', }; diff --git a/pubspec.yaml b/pubspec.yaml index c1103508..df900748 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: dart_appwrite -version: 11.0.1 +version: 11.0.2 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-dart diff --git a/test/id_test.dart b/test/id_test.dart index 9327beda..7e890199 100644 --- a/test/id_test.dart +++ b/test/id_test.dart @@ -3,8 +3,8 @@ import 'package:test/test.dart'; void main() { group('unique()', () { - test('returns unique()', () { - expect(ID.unique(), 'unique()'); + test('returns unique ID', () { + expect((ID.unique()).length, 20); }); });