migrated timetable integration from WebUntis to the MarianumConnect API, implementing a Dio-based client with bearer token authentication, background session validation, and auto-refresh logic.

This commit is contained in:
MineTec committed 2026-05-23 17:32:42 +02:00
1 parent 2858f910c9
commit 93b9929f8f
106 files changed
+2739 -2624

No files matched your search

@@ -0,0 +1,30 @@
import 'package:dio/dio.dart';
import 'auth/auth_interceptor.dart';
/// Singleton dio instance for the Marianum-Connect mobile API. Wired with the
/// bearer auth interceptor at startup; the base URL is resolved per request
/// through [MarianumConnectEndpoint] so settings changes take effect without
/// recreating the client.
class MarianumConnectApi {
static const Duration _connectTimeout = Duration(seconds: 10);
static const Duration _receiveTimeout = Duration(seconds: 20);
static final Dio _instance = _build();
static Dio dio() => _instance;
static Dio _build() {
final dio = Dio(
BaseOptions(
connectTimeout: _connectTimeout,
sendTimeout: _connectTimeout,
receiveTimeout: _receiveTimeout,
responseType: ResponseType.json,
contentType: 'application/json',
),
);
dio.interceptors.add(MarianumConnectAuthInterceptor());
return dio;
}
}