import 'package:dio/dio.dart'; import '../../auth/token_storage.dart'; import '../../marianumconnect_query.dart'; /// Revokes the stored MC bearer token both server-side and locally. Best-effort /// — a network error still clears the local token so the user isn't stuck with /// an unusable session. class AuthLogout extends MarianumConnectQuery { final MarianumConnectTokenStorage _tokenStorage; AuthLogout({ MarianumConnectTokenStorage tokenStorage = const MarianumConnectTokenStorage(), super.dio, }) : _tokenStorage = tokenStorage; Future run() async { try { await dio.post(endpoint('auth/logout')); } on DioException catch (_) { // ignore — local clear below still happens } finally { await _tokenStorage.clear(); } } }