From 5f279560352c3d3c7caee515360ccbfc8d2af547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Wed, 10 Sep 2025 20:23:14 +0200 Subject: [PATCH] fix webuntis auth retry not working correctly --- lib/api/webuntis/webuntisApi.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/api/webuntis/webuntisApi.dart b/lib/api/webuntis/webuntisApi.dart index bf3e2e1..6b48e01 100644 --- a/lib/api/webuntis/webuntisApi.dart +++ b/lib/api/webuntis/webuntisApi.dart @@ -19,7 +19,7 @@ abstract class WebuntisApi extends ApiRequest { WebuntisApi(this.method, this.genericParam, {this.authenticatedResponse = true}); - Future query(WebuntisApi untis) async { + Future query(WebuntisApi untis, {bool retry = false}) async { var query = '{"id":"ID","method":"$method","params":${untis._body()},"jsonrpc":"2.0"}'; var sessionId = '0'; @@ -32,8 +32,9 @@ abstract class WebuntisApi extends ApiRequest { dynamic jsonData = jsonDecode(data.body); if(jsonData['error'] != null) { if(jsonData['error']['code'] == -8520) { + if(retry) throw WebuntisError('Authentication was tried (probably session timeout), but was not successful!', 1); await Authenticate.createSession(); - this.query(untis); + return await this.query(untis, retry: true); } else { throw WebuntisError(jsonData['error']['message'], jsonData['error']['code']); }