Files
workavia-mail-front/lib/features/quotas/data/network/quotas_api.dart
T
dab246 a2875ea921 TF-2064 Handle limit storage to show warning banner
(cherry picked from commit 3e36cebd5cbe880f9832c62463e71979e15e1741)
2023-08-18 21:29:50 +07:00

35 lines
1.2 KiB
Dart

import 'package:jmap_dart_client/http/http_client.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/jmap_request.dart';
import 'package:jmap_dart_client/jmap/quotas/get/get_quota_method.dart';
import 'package:jmap_dart_client/jmap/quotas/get/get_quota_response.dart';
import 'package:jmap_dart_client/jmap/quotas/quota.dart';
import 'package:tmail_ui_user/features/quotas/domain/exceptions/quotas_exception.dart';
class QuotasAPI {
final HttpClient _httpClient;
QuotasAPI(this._httpClient);
Future<List<Quota>> getQuotas(AccountId accountId) async {
final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation());
final getQuotaMethod = GetQuotaMethod(accountId);
final getQuotaInvocation = requestBuilder.invocation(getQuotaMethod);
final response = await (requestBuilder
..usings(getQuotaMethod.requiredCapabilities))
.build()
.execute();
final getQuotaResponse = response.parse<GetQuotaResponse>(
getQuotaInvocation.methodCallId,
GetQuotaResponse.deserialize,
);
if (getQuotaResponse?.list.isNotEmpty == true) {
return getQuotaResponse!.list;
} else {
throw NotFoundQuotasException();
}
}
}