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:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user