diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/data/data.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/data/data.dart
index 36e6f4d5..c7204473 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/data/data.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/data/data.dart
@@ -14,4 +14,4 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-export 'repositories/notification_repository_impl.dart';
+export 'repositories/cloud_messaging_repository_impl.dart';
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/data/repositories/notification_repository_impl.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/data/repositories/cloud_messaging_repository_impl.dart
similarity index 66%
rename from packages/wyatt_cloud_messaging_bloc_base/lib/src/data/repositories/notification_repository_impl.dart
rename to packages/wyatt_cloud_messaging_bloc_base/lib/src/data/repositories/cloud_messaging_repository_impl.dart
index ddcbdbaa..31267357 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/data/repositories/notification_repository_impl.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/data/repositories/cloud_messaging_repository_impl.dart
@@ -16,27 +16,20 @@
import 'package:wyatt_architecture/wyatt_architecture.dart';
import 'package:wyatt_cloud_messaging_bloc_base/src/core/exceptions/notification_exeption.dart';
-import 'package:wyatt_cloud_messaging_bloc_base/src/domain/data_sources/remote/notification_remote_data_source.dart';
+import 'package:wyatt_cloud_messaging_bloc_base/src/domain/data_sources/remote/cloud_messaging_remote_data_source.dart';
import 'package:wyatt_cloud_messaging_bloc_base/src/domain/entities/remote_notifications.dart';
-import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/notification_repository.dart';
+import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart';
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
-class NotificationRepositoryImpl extends NotificationRepository {
- final NotificationRemoteDataSource _notificationRemoteDataSource;
+class CloudMessagingRepositoryImpl extends CloudMessagingRepository {
+ final CloudMessagingRemoteDataSource _notificationRemoteDataSource;
- NotificationRepositoryImpl({
- required NotificationRemoteDataSource notificationRemoteDataSource,
+ CloudMessagingRepositoryImpl({
+ required CloudMessagingRemoteDataSource notificationRemoteDataSource,
}) : _notificationRemoteDataSource = notificationRemoteDataSource;
- @override
- FutureOrResult register() => Result.tryCatchAsync(
- _notificationRemoteDataSource.register,
- (error) => error is AppException
- ? error
- : NotificationException(error.toString()),
- );
@override
- FutureOrResult getToken() => Result.tryCatchAsync(
+ FutureOrResult getToken() => Result.tryCatchAsync(
_notificationRemoteDataSource.getToken,
(error) => error is AppException
? error
@@ -69,29 +62,37 @@ class NotificationRepositoryImpl extends NotificationRepository {
);
@override
- FutureOrResult> onNotificationAccepted() =>
+ FutureOrResult> onNotification() =>
Result.tryCatchAsync(
- _notificationRemoteDataSource.onNotificationBackgroundAccepted,
+ _notificationRemoteDataSource.onNotificationBackground,
(error) => error is AppException
? error
: NotificationException(error.toString()),
);
@override
- FutureOrResult>
- onNotificationBackgroundAccepted() => Result.tryCatchAsync(
- _notificationRemoteDataSource.onNotificationBackgroundAccepted,
- (error) => error is AppException
- ? error
- : NotificationException(error.toString()),
- );
+ FutureOrResult> onNotificationBackground() =>
+ Result.tryCatchAsync(
+ _notificationRemoteDataSource.onNotificationBackground,
+ (error) => error is AppException
+ ? error
+ : NotificationException(error.toString()),
+ );
@override
- FutureOrResult>
- onNotificationForegroundAccepted() => Result.tryCatchAsync(
- _notificationRemoteDataSource.onNotificationForegroundAccepted,
- (error) => error is AppException
- ? error
- : NotificationException(error.toString()),
- );
+ FutureOrResult> onNotificationForeground() =>
+ Result.tryCatchAsync(
+ _notificationRemoteDataSource.onNotificationForeground,
+ (error) => error is AppException
+ ? error
+ : NotificationException(error.toString()),
+ );
+
+ @override
+ FutureOrResult init() => Result.tryCatchAsync(
+ _notificationRemoteDataSource.init,
+ (error) => error is AppException
+ ? error
+ : NotificationException(error.toString()),
+ );
}
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/data_sources/data_sources.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/data_sources/data_sources.dart
new file mode 100644
index 00000000..27b331ee
--- /dev/null
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/data_sources/data_sources.dart
@@ -0,0 +1,17 @@
+// Copyright (C) 2023 WYATT GROUP
+// Please see the AUTHORS file for details.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+export './remote/cloud_messaging_remote_data_source.dart';
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/data_sources/remote/notification_remote_data_source.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/data_sources/remote/cloud_messaging_remote_data_source.dart
similarity index 75%
rename from packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/data_sources/remote/notification_remote_data_source.dart
rename to packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/data_sources/remote/cloud_messaging_remote_data_source.dart
index 92d9fa89..ff1d37c4 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/data_sources/remote/notification_remote_data_source.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/data_sources/remote/cloud_messaging_remote_data_source.dart
@@ -17,18 +17,18 @@
import 'package:wyatt_architecture/wyatt_architecture.dart';
import 'package:wyatt_cloud_messaging_bloc_base/src/domain/entities/remote_notifications.dart';
-abstract class NotificationRemoteDataSource extends BaseRepository {
- Future register();
+abstract class CloudMessagingRemoteDataSource extends BaseRepository {
+ Future init() async {}
- Future> onNotificationAccepted();
+ Future> onNotification();
- Future> onNotificationBackgroundAccepted();
+ Future> onNotificationBackground();
- Future> onNotificationForegroundAccepted();
+ Future> onNotificationForeground();
Future requestPermissions();
- Future getToken();
+ Future getToken();
Future subscribeToTopic(String topic);
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/domain.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/domain.dart
index 0ab2750e..2cb02b79 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/domain.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/domain.dart
@@ -14,6 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
+export 'data_sources/data_sources.dart';
export 'entities/entities.dart';
export 'repositories/repositories.dart';
export 'usecases/usecases.dart';
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/entities/remote_notifications.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/entities/remote_notifications.dart
index 79c2424c..ce3b23a8 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/entities/remote_notifications.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/entities/remote_notifications.dart
@@ -18,14 +18,12 @@ import 'package:wyatt_architecture/wyatt_architecture.dart';
class RemoteNotification extends Entity {
const RemoteNotification({
- this.senderId,
- this.messageId,
+ this.title,
+ this.body,
this.data,
- this.sentTime,
});
- final String? senderId;
- final String? messageId;
+ final String? title;
+ final String? body;
final Map? data;
- final DateTime? sentTime;
}
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/repositories/notification_repository.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/repositories/cloud_messaging_repository.dart
similarity index 83%
rename from packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/repositories/notification_repository.dart
rename to packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/repositories/cloud_messaging_repository.dart
index ced478f7..a53cd578 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/repositories/notification_repository.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/repositories/cloud_messaging_repository.dart
@@ -19,18 +19,18 @@ import 'dart:async';
import 'package:wyatt_architecture/wyatt_architecture.dart';
import 'package:wyatt_cloud_messaging_bloc_base/src/domain/entities/remote_notifications.dart';
-abstract class NotificationRepository extends BaseRepository {
- FutureOrResult register();
+abstract class CloudMessagingRepository extends BaseRepository {
+ FutureOrResult init();
- FutureOrResult> onNotificationAccepted();
+ FutureOrResult> onNotification();
- FutureOrResult> onNotificationBackgroundAccepted();
+ FutureOrResult> onNotificationBackground();
- FutureOrResult> onNotificationForegroundAccepted();
+ FutureOrResult> onNotificationForeground();
FutureOrResult requestPermissions();
- FutureOrResult getToken();
+ FutureOrResult getToken();
FutureOrResult subscribeToTopic(String topic);
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/repositories/repositories.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/repositories/repositories.dart
index 12accae5..3238da21 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/repositories/repositories.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/repositories/repositories.dart
@@ -14,4 +14,4 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-export 'notification_repository.dart';
+export 'cloud_messaging_repository.dart';
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/get_cloud_messaging_token_use_case.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/get_cloud_messaging_token_use_case.dart
index f5db1b53..f951c154 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/get_cloud_messaging_token_use_case.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/get_cloud_messaging_token_use_case.dart
@@ -15,16 +15,16 @@
// along with this program. If not, see .
import 'package:wyatt_architecture/wyatt_architecture.dart';
-import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/notification_repository.dart';
+import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart';
-class GetCloudMessagingTokenUseCase extends AsyncUseCase {
- final NotificationRepository _notificationRepository;
+class GetCloudMessagingTokenUseCase extends AsyncUseCase {
+ final CloudMessagingRepository _notificationRepository;
GetCloudMessagingTokenUseCase({
- required NotificationRepository notificationRepository,
+ required CloudMessagingRepository notificationRepository,
}) : _notificationRepository = notificationRepository;
@override
- FutureOrResult execute(void params) =>
+ FutureOrResult execute(void params) =>
_notificationRepository.getToken();
}
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/init_cloud_messaging_use_case.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/init_cloud_messaging_use_case.dart
index f18c8351..6d1f9394 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/init_cloud_messaging_use_case.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/init_cloud_messaging_use_case.dart
@@ -15,15 +15,15 @@
// along with this program. If not, see .
import 'package:wyatt_architecture/wyatt_architecture.dart';
-import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/notification_repository.dart';
+import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart';
class InitCloudmessagingUseCase extends AsyncUseCase {
- final NotificationRepository _notificationRepository;
+ final CloudMessagingRepository _notificationRepository;
InitCloudmessagingUseCase({
- required NotificationRepository notificationRepository,
+ required CloudMessagingRepository notificationRepository,
}) : _notificationRepository = notificationRepository;
@override
FutureOrResult execute(NoParam? params) =>
- _notificationRepository.register();
+ _notificationRepository.init();
}
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/listen_notification_use_case.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/listen_notification_use_case.dart
index 46e90028..02e475d9 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/listen_notification_use_case.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/listen_notification_use_case.dart
@@ -20,33 +20,33 @@ import 'package:rxdart/rxdart.dart';
import 'package:wyatt_architecture/wyatt_architecture.dart';
import 'package:wyatt_cloud_messaging_bloc_base/src/core/exceptions/notification_exeption.dart';
import 'package:wyatt_cloud_messaging_bloc_base/src/domain/entities/remote_notifications.dart';
-import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/notification_repository.dart';
+import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart';
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
class ListenNotification extends StreamUseCase {
- final NotificationRepository _notificationRepository;
+ final CloudMessagingRepository _notificationRepository;
- ListenNotification({required NotificationRepository notificationRepository})
+ ListenNotification({required CloudMessagingRepository notificationRepository})
: _notificationRepository = notificationRepository;
@override
FutureOrResult> execute(NoParam? params) async {
Stream? notificationStream;
final notificationStreamResponse =
- await _notificationRepository.onNotificationAccepted();
+ await _notificationRepository.onNotification();
if (notificationStreamResponse.isOk) {
notificationStream = notificationStreamResponse.ok;
} else if (notificationStreamResponse.isErr) {
final notificationBackgroundStreamResponse =
- await _notificationRepository.onNotificationBackgroundAccepted();
+ await _notificationRepository.onNotificationBackground();
if (notificationBackgroundStreamResponse.isErr) {
return Err(notificationBackgroundStreamResponse.err!);
}
final notificationForegroundStreamResponse =
- await _notificationRepository.onNotificationForegroundAccepted();
+ await _notificationRepository.onNotificationForeground();
if (notificationForegroundStreamResponse.isErr) {
return Err(notificationBackgroundStreamResponse.err!);
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/request_cloud_messaging_permission_use_case.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/request_cloud_messaging_permission_use_case.dart
index 274113fa..2e712cc9 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/request_cloud_messaging_permission_use_case.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/request_cloud_messaging_permission_use_case.dart
@@ -15,16 +15,16 @@
// along with this program. If not, see .
import 'package:wyatt_architecture/wyatt_architecture.dart';
-import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/notification_repository.dart';
+import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart';
class RequestCloudMessagingPermissionUseCase extends AsyncUseCase {
- final NotificationRepository _notificationRepository;
+ final CloudMessagingRepository _notificationRepository;
RequestCloudMessagingPermissionUseCase({
- required NotificationRepository notificationRepository,
+ required CloudMessagingRepository notificationRepository,
}) : _notificationRepository = notificationRepository;
@override
FutureOrResult execute(void params) =>
- _notificationRepository.register();
+ _notificationRepository.requestPermissions();
}
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/subscribe.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/subscribe.dart
index bd30209e..b5ce21b4 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/subscribe.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/subscribe.dart
@@ -17,12 +17,12 @@
import 'dart:async';
import 'package:wyatt_architecture/wyatt_architecture.dart';
-import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/notification_repository.dart';
+import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart';
class Subscribe extends AsyncUseCase {
- final NotificationRepository _notificationRepository;
+ final CloudMessagingRepository _notificationRepository;
- Subscribe({required NotificationRepository notificationRepository})
+ Subscribe({required CloudMessagingRepository notificationRepository})
: _notificationRepository = notificationRepository;
@override
diff --git a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/unsubscribe.dart b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/unsubscribe.dart
index e2d714cd..3d552caa 100644
--- a/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/unsubscribe.dart
+++ b/packages/wyatt_cloud_messaging_bloc_base/lib/src/domain/usecases/unsubscribe.dart
@@ -17,12 +17,12 @@
import 'dart:async';
import 'package:wyatt_architecture/wyatt_architecture.dart';
-import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/notification_repository.dart';
+import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart';
class Unsubscribe extends AsyncUseCase {
- final NotificationRepository _notificationRepository;
+ final CloudMessagingRepository _notificationRepository;
- Unsubscribe({required NotificationRepository notificationRepository})
+ Unsubscribe({required CloudMessagingRepository notificationRepository})
: _notificationRepository = notificationRepository;
@override