bug fixes
This commit is contained in:
30
lib/domain/usecase/get_all_zones_usecase.dart
Normal file
30
lib/domain/usecase/get_all_zones_usecase.dart
Normal file
@@ -0,0 +1,30 @@
|
||||
import '../entities/zone.dart';
|
||||
import '../repositories/zone_repository.dart';
|
||||
|
||||
class GetAllZonesUsecase {
|
||||
final ZoneRepository repository;
|
||||
|
||||
GetAllZonesUsecase(this.repository);
|
||||
|
||||
static const int _pageSize = 100;
|
||||
|
||||
Future<List<Zone>> call() async {
|
||||
final List<Zone> allZones = [];
|
||||
int page = 0;
|
||||
|
||||
while (true) {
|
||||
final zones = await repository.getAllZones(page, _pageSize);
|
||||
|
||||
if (zones == null || zones.isEmpty) break;
|
||||
|
||||
allZones.addAll(zones);
|
||||
|
||||
// если пришло меньше, чем размер страницы — это последняя страница
|
||||
if (zones.length < _pageSize) break;
|
||||
|
||||
page++;
|
||||
}
|
||||
|
||||
return allZones;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user