feat/architecture/make_usecases_more_modular_and_adaptable #39
| @ -0,0 +1,44 @@ | ||||
| // Copyright (C) 2022 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 <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| import 'dart:async'; | ||||
| 
 | ||||
| import 'package:wyatt_architecture/wyatt_architecture.dart'; | ||||
| 
 | ||||
| /// Usecase observers | ||||
| mixin Observer<Parameters, ReturnType> { | ||||
|   /// Called before usecase is runned. | ||||
|   /// Usefull to check the preconditions | ||||
|   FutureOr<void> onStart(Parameters? params) {} | ||||
| 
 | ||||
|   /// Called when error occures during main scenario | ||||
|   /// Usefull to run alternative scenario | ||||
|   FutureOr<void> onError(AppException? error) {} | ||||
| } | ||||
| 
 | ||||
| /// Specific observer for classic usecase | ||||
| mixin AsyncObserver<ReturnType> { | ||||
|   FutureOr<void> onComplete(ReturnType? data) {} | ||||
| } | ||||
| 
 | ||||
| /// Specific observer for stream case usecase | ||||
| mixin StreamObserver<ReturnType> { | ||||
|   /// Replaces the data event handler of this subscription. | ||||
|   void onDone() {} | ||||
| 
 | ||||
|   ///  Replaces the done event handler of this subscription. | ||||
|   void onData(ReturnType? data) {} | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user