fix(crud)!: use FutureOrResult extension (close #42) #49
| @ -30,7 +30,7 @@ class CrudRepositoryImpl<Model extends ObjectModel> | ||||
|   }) : _crudDataSource = crudDataSource; | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<void> create(Model object, {String? id}) => | ||||
|   FutureOrResult<void> create(Model object, {String? id}) => | ||||
|       Result.tryCatchAsync<void, AppException, AppException>( | ||||
|         () async { | ||||
|           await _crudDataSource.create(object, id: id); | ||||
| @ -39,21 +39,21 @@ class CrudRepositoryImpl<Model extends ObjectModel> | ||||
|       ); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<Model?> get(String id) => | ||||
|   FutureOrResult<Model?> get(String id) => | ||||
|       Result.tryCatchAsync<Model?, AppException, AppException>( | ||||
|         () async => _crudDataSource.get(id), | ||||
|         (error) => error, | ||||
|       ); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<List<Model?>> getAll() => | ||||
|   FutureOrResult<List<Model?>> getAll() => | ||||
|       Result.tryCatchAsync<List<Model?>, AppException, AppException>( | ||||
|         () async => _crudDataSource.getAll(), | ||||
|         (error) => error, | ||||
|       ); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<void> update( | ||||
|   FutureOrResult<void> update( | ||||
|     String id, { | ||||
|     Model? object, | ||||
|     Map<String, dynamic>? raw, | ||||
| @ -64,28 +64,28 @@ class CrudRepositoryImpl<Model extends ObjectModel> | ||||
|       ); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<void> updateAll(Map<String, Object?> raw) => | ||||
|   FutureOrResult<void> updateAll(Map<String, Object?> raw) => | ||||
|       Result.tryCatchAsync<void, AppException, AppException>( | ||||
|         () async => _crudDataSource.updateAll(raw), | ||||
|         (error) => error, | ||||
|       ); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<void> delete(String id) => | ||||
|   FutureOrResult<void> delete(String id) => | ||||
|       Result.tryCatchAsync<void, AppException, AppException>( | ||||
|         () async => _crudDataSource.delete(id), | ||||
|         (error) => error, | ||||
|       ); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<void> deleteAll() => | ||||
|   FutureOrResult<void> deleteAll() => | ||||
|       Result.tryCatchAsync<void, AppException, AppException>( | ||||
|         () async => _crudDataSource.deleteAll(), | ||||
|         (error) => error, | ||||
|       ); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<List<Model?>> query(List<QueryInterface> conditions) => | ||||
|   FutureOrResult<List<Model?>> query(List<QueryInterface> conditions) => | ||||
|       Result.tryCatchAsync<List<Model?>, AppException, AppException>( | ||||
|         () async => _crudDataSource.query(conditions), | ||||
|         (error) => error, | ||||
|  | ||||
| @ -20,18 +20,18 @@ import 'package:wyatt_crud_bloc/src/domain/entities/query.dart'; | ||||
| 
 | ||||
| abstract class CrudRepository<Model extends ObjectModel> | ||||
|     extends BaseRepository { | ||||
|   FutureResult<void> create(Model object, {String? id}); | ||||
|   FutureResult<Model?> get(String id); | ||||
|   FutureResult<List<Model?>> getAll(); | ||||
|   FutureResult<void> update( | ||||
|   FutureOrResult<void> create(Model object, {String? id}); | ||||
|   FutureOrResult<Model?> get(String id); | ||||
|   FutureOrResult<List<Model?>> getAll(); | ||||
|   FutureOrResult<void> update( | ||||
|     String id, { | ||||
|     Model? object, | ||||
|     Map<String, dynamic>? raw, | ||||
|   }); | ||||
|   FutureResult<void> updateAll(Map<String, Object?> raw); | ||||
|   FutureResult<void> delete(String id); | ||||
|   FutureResult<void> deleteAll(); | ||||
|   FutureResult<List<Model?>> query(List<QueryInterface> conditions); | ||||
|   FutureOrResult<void> updateAll(Map<String, Object?> raw); | ||||
|   FutureOrResult<void> delete(String id); | ||||
|   FutureOrResult<void> deleteAll(); | ||||
|   FutureOrResult<List<Model?>> query(List<QueryInterface> conditions); | ||||
|   StreamResult<List<Model?>> stream({ | ||||
|     String? id, | ||||
|     List<QueryInterface>? conditions, | ||||
|  | ||||
| @ -15,15 +15,24 @@ | ||||
| // 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'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/entities/object_model.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/repositories/crud_repository.dart'; | ||||
| 
 | ||||
| class Create<Model extends ObjectModel> extends UseCase<Model, void> { | ||||
| class Create<Model extends ObjectModel> extends AsyncUseCase<Model, void> { | ||||
|   final CrudRepository<Model> _crudRepository; | ||||
| 
 | ||||
|   Create(this._crudRepository); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<void> call(Model params) => _crudRepository.create(params); | ||||
|   FutureOr<void> onStart(Model? params) { | ||||
|     if(params == null){ | ||||
|       throw ClientException('$Model cannot be null.'); | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   @override | ||||
|   FutureOrResult<void> call(Model? params) => _crudRepository.create(params!); | ||||
| } | ||||
|  | ||||
| @ -14,15 +14,24 @@ | ||||
| // 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'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/entities/object_model.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/repositories/crud_repository.dart'; | ||||
| 
 | ||||
| class Delete<Model extends ObjectModel> extends UseCase<String, void> { | ||||
| class Delete<Model extends ObjectModel> extends AsyncUseCase<String, void> { | ||||
|   final CrudRepository<Model> _crudRepository; | ||||
| 
 | ||||
|   Delete(this._crudRepository); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<void> call(String params) => _crudRepository.delete(params); | ||||
|   FutureOr<void> onStart(String? params) { | ||||
|     if(params == null){ | ||||
|       throw ClientException('Id cannot be null.'); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   FutureOrResult<void> call(String? params) => _crudRepository.delete(params!); | ||||
| } | ||||
|  | ||||
| @ -18,11 +18,11 @@ import 'package:wyatt_architecture/wyatt_architecture.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/entities/object_model.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/repositories/crud_repository.dart'; | ||||
| 
 | ||||
| class DeleteAll<Model extends ObjectModel> extends UseCase<void, void> { | ||||
| class DeleteAll<Model extends ObjectModel> extends AsyncUseCase<void, void> { | ||||
|   final CrudRepository<Model> _crudRepository; | ||||
| 
 | ||||
|   DeleteAll(this._crudRepository); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<void> call(void params) => _crudRepository.deleteAll(); | ||||
|   FutureOrResult<void> call(void params) => _crudRepository.deleteAll(); | ||||
| } | ||||
|  | ||||
| @ -14,15 +14,24 @@ | ||||
| // 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'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/entities/object_model.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/repositories/crud_repository.dart'; | ||||
| 
 | ||||
| class Get<Model extends ObjectModel> extends UseCase<String, Model?> { | ||||
| class Get<Model extends ObjectModel> extends AsyncUseCase<String, Model?> { | ||||
|   final CrudRepository<Model> _crudRepository; | ||||
| 
 | ||||
|   Get(this._crudRepository); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<Model?> call(String params) => _crudRepository.get(params); | ||||
|   FutureOr<void> onStart(String? params) { | ||||
|     if(params == null){ | ||||
|       throw ClientException('Id cannot be null.'); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   FutureOrResult<Model?> call(String? params) => _crudRepository.get(params!); | ||||
| } | ||||
|  | ||||
| @ -18,11 +18,12 @@ import 'package:wyatt_architecture/wyatt_architecture.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/entities/object_model.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/repositories/crud_repository.dart'; | ||||
| 
 | ||||
| class GetAll<Model extends ObjectModel> extends UseCase<void, List<Model?>> { | ||||
| class GetAll<Model extends ObjectModel> | ||||
|     extends AsyncUseCase<void, List<Model?>> { | ||||
|   final CrudRepository<Model> _crudRepository; | ||||
| 
 | ||||
|   GetAll(this._crudRepository); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<List<Model?>> call(void params) => _crudRepository.getAll(); | ||||
|   FutureOrResult<List<Model?>> call(void params) => _crudRepository.getAll(); | ||||
| } | ||||
|  | ||||
| @ -14,18 +14,27 @@ | ||||
| // 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'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/entities/object_model.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/entities/query.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/repositories/crud_repository.dart'; | ||||
| 
 | ||||
| class Query<Model extends ObjectModel> | ||||
|     extends UseCase<List<QueryInterface>, List<Model?>> { | ||||
|     extends AsyncUseCase<List<QueryInterface>, List<Model?>> { | ||||
|   final CrudRepository<Model> _crudRepository; | ||||
| 
 | ||||
|   Query(this._crudRepository); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<List<Model?>> call(List<QueryInterface> params) => | ||||
|       _crudRepository.query(params); | ||||
|   FutureOr<void> onStart(List<QueryInterface>? params) { | ||||
|     if(params == null){ | ||||
|       throw ClientException('List of conditions cannot be null.'); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   FutureOrResult<List<Model?>> call(List<QueryInterface>? params) => | ||||
|       _crudRepository.query(params!); | ||||
| } | ||||
|  | ||||
| @ -14,11 +14,7 @@ | ||||
| // You should have received a copy of the GNU General Public License | ||||
| // along with this program. If not, see <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| // TODO(hpcl): add streamed usecase in wyatt_architecture | ||||
| 
 | ||||
| // import 'package:wyatt_architecture/wyatt_architecture.dart'; | ||||
| // import 'package:wyatt_crud_bloc/src/domain/repositories/crud_repository.dart'; | ||||
| // import 'package:wyatt_crud_bloc/src/domain/usecases/params/stream_parameters.dart'; | ||||
| 
 | ||||
| // class Stream<Model extends ObjectModel> extends UseCase<StreamParameters, List<Model?>> { | ||||
| //   final CrudRepository<Model> _crudRepository; | ||||
| @ -29,3 +25,20 @@ | ||||
| //   StreamResult<List<Model?>> call(StreamParameters params) => | ||||
| //       _crudRepository.stream(id: params.id, conditions: params.conditions); | ||||
| // } | ||||
| 
 | ||||
| // class StreamQuery<Model extends ObjectModel> | ||||
| //     extends StreamUseCase<StreamParameters, List<Model?>> { | ||||
| //   final CrudRepository<Model> _crudRepository; | ||||
| 
 | ||||
| //   StreamQuery(this._crudRepository); | ||||
| 
 | ||||
| //   @override | ||||
| //   FutureOr<void> onStart(StreamParameters? params) { | ||||
| //     if(params == null){ | ||||
| //       throw ClientException('Stream parameters cannot be null.'); | ||||
| //     } | ||||
| //   } | ||||
|    | ||||
| //   @override | ||||
| //   FutureOrResult<Stream<List<Model?>>> call(StreamParameters? params) => _crudRepository.stream(); | ||||
| // } | ||||
| @ -14,21 +14,30 @@ | ||||
| // 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'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/entities/object_model.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/repositories/crud_repository.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/usecases/params/update_parameters.dart'; | ||||
| 
 | ||||
| class Update<Model extends ObjectModel> | ||||
|     extends UseCase<UpdateParameters<Model>, void> { | ||||
|     extends AsyncUseCase<UpdateParameters<Model>, void> { | ||||
|   final CrudRepository<Model> _crudRepository; | ||||
| 
 | ||||
|   Update(this._crudRepository); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<void> call(UpdateParameters<Model> params) => | ||||
|   FutureOr<void> onStart(UpdateParameters<Model>? params) { | ||||
|     if(params == null){ | ||||
|       throw ClientException('Update parameters cannot be null.'); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   FutureOrResult<void> call(UpdateParameters<Model>? params) => | ||||
|       _crudRepository.update( | ||||
|         params.id, | ||||
|         params!.id, | ||||
|         object: params.object, | ||||
|         raw: params.raw, | ||||
|       ); | ||||
|  | ||||
| @ -14,17 +14,26 @@ | ||||
| // 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'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/entities/object_model.dart'; | ||||
| import 'package:wyatt_crud_bloc/src/domain/repositories/crud_repository.dart'; | ||||
| 
 | ||||
| class UpdateAll<Model extends ObjectModel> | ||||
|     extends UseCase<Map<String, Object?>, void> { | ||||
|     extends AsyncUseCase<Map<String, Object?>, void> { | ||||
|   final CrudRepository<Model> _crudRepository; | ||||
| 
 | ||||
|   UpdateAll(this._crudRepository); | ||||
| 
 | ||||
|   @override | ||||
|   FutureResult<void> call(Map<String, Object?> params) => | ||||
|       _crudRepository.updateAll(params); | ||||
|   FutureOr<void> onStart(Map<String, Object?>? params) { | ||||
|     if(params == null){ | ||||
|       throw ClientException('Data cannot be null.'); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   FutureOrResult<void> call(Map<String, Object?>? params) => | ||||
|       _crudRepository.updateAll(params!); | ||||
| } | ||||
|  | ||||
| @ -21,6 +21,6 @@ export 'get.dart'; | ||||
| export 'get_all.dart'; | ||||
| export 'params/params.dart'; | ||||
| export 'query.dart'; | ||||
| export 'stream.dart'; | ||||
| export 'stream_query.dart'; | ||||
| export 'update.dart'; | ||||
| export 'update_all.dart'; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user