45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| // 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 'package:wyatt_architecture/wyatt_architecture.dart';
 | |
| import 'package:wyatt_crud_bloc/src/core/mixins/operation.dart';
 | |
| import 'package:wyatt_crud_bloc/src/domain/repositories/crud_repository.dart';
 | |
| import 'package:wyatt_crud_bloc/src/domain/usecases/usecases.dart';
 | |
| import 'package:wyatt_type_utils/wyatt_type_utils.dart';
 | |
| 
 | |
| /// {@template stream}
 | |
| /// A use case that streams the object models.
 | |
| /// {@endtemplate}
 | |
| class Stream<Model>
 | |
|     extends Usecase<StreamParameters, StreamResult<List<Model?>>>
 | |
|     with ReadOperation<StreamParameters, StreamResult<List<Model?>>> {
 | |
|   /// {@macro stream}
 | |
|   const Stream(this.crudRepository);
 | |
| 
 | |
|   final CrudRepository<Model> crudRepository;
 | |
| 
 | |
|   @override
 | |
|   FutureOrResult<StreamResult<List<Model?>>> execute(
 | |
|     StreamParameters? params,
 | |
|   ) async =>
 | |
|       Ok(
 | |
|         crudRepository.stream(
 | |
|           id: params!.id,
 | |
|           conditions: params.conditions,
 | |
|         ),
 | |
|       );
 | |
| }
 |