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