bug fixes
This commit is contained in:
@@ -498,6 +498,35 @@ class ApiService {
|
||||
}
|
||||
}
|
||||
|
||||
Future<ZonesResponse?> getAllZones({
|
||||
int page = 1,
|
||||
int pageSize = 500,
|
||||
}) async {
|
||||
const path = "$baseUrl/zone/available2";
|
||||
|
||||
final queryParams = {
|
||||
'readAll': 'true',
|
||||
'page': page,
|
||||
'pageSize': pageSize,
|
||||
};
|
||||
|
||||
try {
|
||||
final response = await _dio.get(
|
||||
path,
|
||||
queryParameters: queryParams,
|
||||
options: await _getAuthOptions(),
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
return ZonesResponse.fromJson(response.data);
|
||||
}
|
||||
return null;
|
||||
} catch (e) {
|
||||
print("ERROR: getZones failed: $e");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Future<TariffsResponse?> getAvailableTariffs({required int scooterId}) async {
|
||||
final url = "$baseUrl/scooterplan/$scooterId/available";
|
||||
|
||||
|
||||
@@ -10,60 +10,60 @@ class ZoneRepositoryImpl extends ZoneRepository {
|
||||
ZoneRepositoryImpl(this._apiService);
|
||||
|
||||
@override
|
||||
Future<List<Zone>> getZones(List<double> area,
|
||||
int page,
|
||||
int pageSize,) async {
|
||||
|
||||
Future<List<Zone>> getZones(List<double> area, int page, int pageSize) async {
|
||||
final List<Point> list = [];
|
||||
final List<Point> list2 = [];
|
||||
|
||||
/*list.add(Point(55.182372,30.203347));
|
||||
list.add(Point(55.173746,30.200257));
|
||||
list.add(Point(55.172153,30.212531));
|
||||
list.add(Point(55.179946,30.215964));
|
||||
|
||||
list2.add(Point(55.178304,30.227380));
|
||||
list2.add(Point(55.178059,30.229654));
|
||||
list2.add(Point(55.191339,30.234718));
|
||||
list2.add(Point(55.194352,30.234890));
|
||||
list2.add(Point(55.194377,30.231972));
|
||||
list2.add(Point(55.192123,30.232744));
|
||||
|
||||
final zone = Zone(id: 123,
|
||||
title: "Zone 01",
|
||||
description: "description",
|
||||
type: "Finish",
|
||||
isActive: true,
|
||||
shapeType: "polygon",
|
||||
points: list,
|
||||
speedLimit: "speedLimit");
|
||||
|
||||
final zone2 = Zone(id: 124,
|
||||
title: "Zone 02",
|
||||
description: "description",
|
||||
type: "NotDrive",
|
||||
isActive: true,
|
||||
shapeType: "polygon",
|
||||
points: list2,
|
||||
speedLimit: "speedLimit");
|
||||
*/
|
||||
|
||||
final responce = await _apiService.getZones(
|
||||
area: area,
|
||||
page: page,
|
||||
pageSize: pageSize,
|
||||
);
|
||||
|
||||
final List<Zone>? zones = responce?.zones;
|
||||
// zones?.add(zone);
|
||||
// zones?.add(zone2);
|
||||
|
||||
print("Scooters: ${zones?.first.title}");
|
||||
|
||||
if (responce != null) {
|
||||
return zones ?? List.empty();
|
||||
if (responce == null) {
|
||||
throw Exception(
|
||||
'Failed to load zones for area: empty response from server',
|
||||
);
|
||||
}
|
||||
|
||||
return List.empty();
|
||||
final zones = responce.zones;
|
||||
|
||||
print("Zones: ${zones.length}");
|
||||
|
||||
return zones;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<Zone>> getAllZones(int page, int pageSize) async {
|
||||
final List<Point> list = [];
|
||||
final List<Point> list2 = [];
|
||||
|
||||
final responce = await _apiService.getAllZones(
|
||||
page: page,
|
||||
pageSize: pageSize,
|
||||
);
|
||||
|
||||
// apiService.getAllZones ловит свои ошибки (сеть/401/5xx) и в этом
|
||||
// случае возвращает null. Раньше это тихо превращалось в "зон нет" —
|
||||
// из-за чего сбой запроса выглядел как легитимный пустой ответ и
|
||||
// (в связке с кешем на уровне MapBloc) навсегда "прятал" зоны на
|
||||
// время сессии. Бросаем исключение, чтобы вызывающий код (usecase/bloc)
|
||||
// мог отличить реальный сбой от честного "зон действительно нет"
|
||||
// и, при необходимости, повторить запрос.
|
||||
if (responce == null) {
|
||||
throw Exception('Failed to load zones: empty response from server');
|
||||
}
|
||||
|
||||
final zones = responce.zones;
|
||||
|
||||
print(zones.map((z) => '${z.type}:${z.id}'));
|
||||
|
||||
for (final z in zones) {
|
||||
print("Zone ${z.type}:${z.id} geometry.length=${z.geometry.length}");
|
||||
}
|
||||
|
||||
print("Zones: ${zones.length}");
|
||||
|
||||
return zones;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user