52 lines
1.2 KiB
Dart
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;
|
|
}
|
|
}
|
|
}
|