import 'package:dio/dio.dart'; import '../../errors/marianumconnect_error.dart'; import '../../marianumconnect_api.dart'; import '../../marianumconnect_endpoint.dart'; import 'get_capabilities_response.dart'; /// Fetches the current user's mobile capability flags from /// `GET /api/mobile/v1/me/capabilities`. Goes through the shared dio singleton /// so the bearer token is attached automatically. class GetCapabilities { final Dio _dio; GetCapabilities({Dio? dio}) : _dio = dio ?? MarianumConnectApi.dio(); Future run() async { try { final response = await _dio.get>( MarianumConnectEndpoint.resolve('me/capabilities'), ); return CapabilitiesResponse.fromJson(response.data!); } on DioException catch (e) { throw mapMarianumConnectError(e); } } }