Files

52 lines
1.2 KiB
Dart

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