diff --git a/app/lib/bloc/list_person.dart b/app/lib/bloc/list_person.dart index f3bb4968..5e985b19 100644 --- a/app/lib/bloc/list_person.dart +++ b/app/lib/bloc/list_person.dart @@ -1,8 +1,9 @@ import 'package:bloc/bloc.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; +import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/entity/person.dart'; -import 'package:nc_photos/entity/person/data_source.dart'; +import 'package:nc_photos/use_case/list_person.dart'; abstract class ListPersonBlocEvent { const ListPersonBlocEvent(); @@ -68,10 +69,14 @@ class ListPersonBlocFailure extends ListPersonBlocState { /// List all people recognized in an account class ListPersonBloc extends Bloc { - ListPersonBloc() : super(ListPersonBlocInit()) { + ListPersonBloc(this._c) + : assert(require(_c)), + assert(ListPerson.require(_c)), + super(ListPersonBlocInit()) { on(_onEvent); } + static bool require(DiContainer c) => true; Future _onEvent( ListPersonBlocEvent event, Emitter emit) async { @@ -92,10 +97,10 @@ class ListPersonBloc extends Bloc { } } - Future> _query(ListPersonBlocQuery ev) { - const personRepo = PersonRepo(PersonRemoteDataSource()); - return personRepo.list(ev.account); - } + Future> _query(ListPersonBlocQuery ev) => + ListPerson(_c)(ev.account); - static final _log = Logger("bloc.list_personListPersonBloc"); + final DiContainer _c; + + static final _log = Logger("bloc.list_person.ListPersonBloc"); } diff --git a/app/lib/use_case/list_person.dart b/app/lib/use_case/list_person.dart new file mode 100644 index 00000000..ce3f011b --- /dev/null +++ b/app/lib/use_case/list_person.dart @@ -0,0 +1,14 @@ +import 'package:nc_photos/account.dart'; +import 'package:nc_photos/di_container.dart'; +import 'package:nc_photos/entity/person.dart'; + +class ListPerson { + ListPerson(this._c) : assert(require(_c)); + + static bool require(DiContainer c) => DiContainer.has(c, DiType.personRepo); + + /// List all persons + Future> call(Account account) => _c.personRepo.list(account); + + final DiContainer _c; +}