mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-10-31 01:54:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:appflowy_backend/dispatch/dispatch.dart';
 | |
| import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart';
 | |
| import 'package:appflowy_backend/protobuf/flowy-user/reminder.pb.dart';
 | |
| import 'package:appflowy_result/appflowy_result.dart';
 | |
| 
 | |
| /// Interface for a Reminder Service that handles
 | |
| /// communication to the backend
 | |
| ///
 | |
| abstract class IReminderService {
 | |
|   Future<FlowyResult<List<ReminderPB>, FlowyError>> fetchReminders();
 | |
| 
 | |
|   Future<FlowyResult<void, FlowyError>> removeReminder({
 | |
|     required String reminderId,
 | |
|   });
 | |
| 
 | |
|   Future<FlowyResult<void, FlowyError>> addReminder({
 | |
|     required ReminderPB reminder,
 | |
|   });
 | |
| 
 | |
|   Future<FlowyResult<void, FlowyError>> updateReminder({
 | |
|     required ReminderPB reminder,
 | |
|   });
 | |
| }
 | |
| 
 | |
| class ReminderService implements IReminderService {
 | |
|   const ReminderService();
 | |
| 
 | |
|   @override
 | |
|   Future<FlowyResult<void, FlowyError>> addReminder({
 | |
|     required ReminderPB reminder,
 | |
|   }) async {
 | |
|     final unitOrFailure = await UserEventCreateReminder(reminder).send();
 | |
| 
 | |
|     return unitOrFailure;
 | |
|   }
 | |
| 
 | |
|   @override
 | |
|   Future<FlowyResult<void, FlowyError>> updateReminder({
 | |
|     required ReminderPB reminder,
 | |
|   }) async {
 | |
|     final unitOrFailure = await UserEventUpdateReminder(reminder).send();
 | |
| 
 | |
|     return unitOrFailure;
 | |
|   }
 | |
| 
 | |
|   @override
 | |
|   Future<FlowyResult<List<ReminderPB>, FlowyError>> fetchReminders() async {
 | |
|     final resultOrFailure = await UserEventGetAllReminders().send();
 | |
| 
 | |
|     return resultOrFailure.fold(
 | |
|       (s) => FlowyResult.success(s.items),
 | |
|       (e) => FlowyResult.failure(e),
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   @override
 | |
|   Future<FlowyResult<void, FlowyError>> removeReminder({
 | |
|     required String reminderId,
 | |
|   }) async {
 | |
|     final request = ReminderIdentifierPB(id: reminderId);
 | |
|     final unitOrFailure = await UserEventRemoveReminder(request).send();
 | |
| 
 | |
|     return unitOrFailure;
 | |
|   }
 | |
| }
 | 
