diff --git a/CHANGELOG.md b/CHANGELOG.md
index 07c5103..15e9360 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+## 0.1.0-alpha.15
+- Úprava nakládání s chybami v `_getRequest`
+- `fail` je chyba
## 0.1.0-alpha.14
- Oprava `ziskejBurzu`, kvůli špatnému parsování
## 0.1.0-alpha.13
diff --git a/lib/src/canteen.dart b/lib/src/canteen.dart
index eb0af4a..4b10ce9 100644
--- a/lib/src/canteen.dart
+++ b/lib/src/canteen.dart
@@ -156,9 +156,15 @@ class Canteen {
? "; " + cookies["remember-me"]! + ";"
: ";"),
});
- if (r.statusCode != 200 || r.body.contains("fail")) {
+ if (r.statusCode != 200 ||
+ r.body.contains("fail") ||
+ r.body.contains("Chyba")) {
return Future.error("Chyba: ${r.body}");
}
+ if (r.body.contains("přihlášení uživatele")) {
+ prihlasen = false;
+ return Future.error("Uživatel není přihlášen");
+ }
if (r.headers.containsKey("set-cookie")) {
_parseCookies(r.headers["set-cookie"]!);
}
@@ -249,11 +255,12 @@ class Canteen {
return Future.error("Uživatel není přihlášen");
}
den ??= DateTime.now();
- var res = await _getRequest(
- "/faces/secured/main.jsp?day=${den.year}-${(den.month < 10) ? "0" + den.month.toString() : den.month}-${(den.day < 10) ? "0" + den.day.toString() : den.day}&terminal=false&printer=false&keyboard=false");
- if (res.contains("
iCanteen - přihlášení uživatele")) {
- prihlasen = false;
- return Future.error("Uživatel není přihlášen");
+ String res;
+ try {
+ res = await _getRequest(
+ "/faces/secured/main.jsp?day=${den.year}-${(den.month < 10) ? "0" + den.month.toString() : den.month}-${(den.day < 10) ? "0" + den.day.toString() : den.day}&terminal=false&printer=false&keyboard=false");
+ } catch (e) {
+ return Future.error(e);
}
var obedDen = DateTime.parse(RegExp(r'(?<=day-).+?(?=")', dotAll: true)
.firstMatch(res)!
@@ -343,14 +350,11 @@ class Canteen {
return Future.error(
"Jídlo nelze objednat nebo nemá adresu pro objednání");
}
- var res =
- await _getRequest("/faces/secured/" + j.orderUrl!); // provést operaci
- if (res.contains("Chyba")) {
- return Future.error("Při požadavku došlo k chybě");
- }
- if (res.contains("přihlášení uživatele")) {
- prihlasen = false;
- return Future.error("Uživatel není přihlášen");
+
+ try {
+ await _getRequest("/faces/secured/" + j.orderUrl!); // provést operaci
+ } catch (e) {
+ return Future.error(e);
}
var novy = (await jidelnicekDen(den: j.den))
@@ -378,12 +382,10 @@ class Canteen {
return Future.error(
"Jídlo nelze uložit do burzy nebo nemá adresu pro uložení");
}
- var res =
- await _getRequest("/faces/secured/" + j.burzaUrl!); // provést operaci
- if (res.contains("Chyba")) return Future.error("Chyba při vykonávání");
- if (res.contains("přihlášení uživatele")) {
- prihlasen = false;
- return Future.error("Uživatel není přihlášen");
+ try {
+ await _getRequest("/faces/secured/" + j.burzaUrl!); // provést operaci
+ } catch (e) {
+ return Future.error(e);
}
var novy = (await jidelnicekDen(den: j.den))
@@ -403,15 +405,17 @@ class Canteen {
Future> ziskatBurzu() async {
if (!prihlasen) return Future.error("Uživatel není přihlášen");
List burza = [];
- var r = await _getRequest("/faces/secured/burza.jsp");
- if (r.contains("Chyba")) return Future.error("Při požadavku došlo k chybě");
- if (r.contains("přihlášení uživatele")) {
- prihlasen = false;
- return Future.error("Uživatel není přihlášen");
+
+ String res;
+ try {
+ res = await _getRequest("/faces/secured/burza.jsp");
+ } catch (e) {
+ return Future.error(e);
}
+
var dostupnaJidla =
RegExp(r'(?<=).+?(?=<\/tr>)', dotAll: true)
- .allMatches(r); // vyfiltrujeme jednotlivá jídla
+ .allMatches(res); // vyfiltrujeme jednotlivá jídla
if (dostupnaJidla.isNotEmpty) {
for (var burzaMatch in dostupnaJidla) {
var bu = burzaMatch.group(0)!;
@@ -455,8 +459,11 @@ class Canteen {
/// - [bool], `true`, pokud bylo jídlo úspěšně objednáno z burzy, jinak `false`
Future objednatZBurzy(Burza b) async {
if (!prihlasen) return Future.error("Uživatel není přihlášen");
- var res = await _getRequest("/faces/secured/" + b.url!); // TODO: SPRAVIT
- if (res.contains("Chyba")) return false;
+ try {
+ await _getRequest("/faces/secured/" + b.url!); // TODO: SPRAVIT
+ } catch (e) {
+ return false;
+ }
return true;
}
}