Merge pull request #230 from GetStream/nash/migrate-to-enum

[Flutter-SDK] Migrate to push enum
This commit is contained in:
Salvatore Giordano
2021-01-22 15:08:52 +01:00
committed by GitHub
3 changed files with 31 additions and 7 deletions
+22 -2
View File
@@ -46,6 +46,26 @@ const String KEY_TOKEN = 'KEY_TOKEN';
/// The key used to save the apiKey to sharedPreferences
const String KEY_API_KEY = 'KEY_API_KEY';
/// Provider used to send push notifications.
enum PushProvider {
/// Send notifications using Google's Firebase Cloud Messaging
firebase,
/// Send notifications using Apple's Push Notification service
apn
}
extension on PushProvider {
/// Returns the string notion for [PushProvider].
String get name {
if (this == PushProvider.apn) {
return 'apn';
} else {
return 'firebase';
}
}
}
/// The official Dart client for Stream Chat,
/// a service for building chat applications.
/// This library can be used on any Dart project and on both mobile and web apps with Flutter.
@@ -1002,10 +1022,10 @@ class Client {
}
/// Add a device for Push Notifications.
Future<EmptyResponse> addDevice(String id, String pushProvider) async {
Future<EmptyResponse> addDevice(String id, PushProvider pushProvider) async {
final response = await post('/devices', data: {
'id': id,
'push_provider': pushProvider,
'push_provider': pushProvider.name,
});
return decode<EmptyResponse>(response.data, EmptyResponse.fromJson);
}
@@ -266,13 +266,17 @@ void main() {
when(mockDio.post<String>('/devices', data: {
'id': 'test-id',
'push_provider': 'test',
'push_provider': 'firebase',
})).thenAnswer((_) async => Response(data: '{}', statusCode: 200));
await client.addDevice('test-id', 'test');
await client.addDevice('test-id', PushProvider.firebase);
verify(mockDio.post<String>('/devices',
data: {'id': 'test-id', 'push_provider': 'test'})).called(1);
verify(
mockDio.post<String>(
'/devices',
data: {'id': 'test-id', 'push_provider': 'firebase'},
),
).called(1);
});
test('getDevices', () async {
@@ -56,7 +56,7 @@ void initNotifications(Client client) {
if (connector.token.value != null) {
client.addDevice(
connector.token.value,
Platform.isAndroid ? 'firebase' : 'apn',
Platform.isAndroid ? PushProvider.firebase : PushProvider.apn,
);
}
});