27 lines
849 B
Dart
27 lines
849 B
Dart
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<CapabilitiesResponse> run() async {
|
|
try {
|
|
final response = await _dio.get<Map<String, dynamic>>(
|
|
MarianumConnectEndpoint.resolve('me/capabilities'),
|
|
);
|
|
return CapabilitiesResponse.fromJson(response.data!);
|
|
} on DioException catch (e) {
|
|
throw mapMarianumConnectError(e);
|
|
}
|
|
}
|
|
}
|