import '../core/api/client.dart'; import '../core/api/endpoints.dart'; class DiskApi { final ApiClient _api; DiskApi(this._api); Future> getProviders() async { final resp = await _api.get(Endpoints.diskProviders); final list = resp.data['providers'] as List? ?? []; return list.map((e) => e as String).toList(); } Future> getStatus() async { final resp = await _api.get(Endpoints.diskStatus); return resp.data as Map? ?? {}; } Future connect(String provider, String code) async { try { await _api.post(Endpoints.diskConnect, data: { 'provider': provider, 'code': code, }); return true; } catch (_) { return false; } } Future disconnect(String provider) async { try { await _api.post(Endpoints.diskDisconnect, data: { 'provider': provider, }); return true; } catch (_) { return false; } } Future getOAuthUrl(String provider) async { try { final resp = await _api.get(Endpoints.diskOAuthUrl(provider)); return resp.data['url'] as String?; } catch (_) { return null; } } }