send<T> method

Future<ApiResult<T>> send<T>(
  1. ApiRequest<T> request
)

Execute any ApiRequest (except upload — use UploadNotifier for that). Always returns an ApiResult — never throws.

Implementation

Future<ApiResult<T>> send<T>(ApiRequest<T> request) async {
  return switch (request) {
    GetRequest<T> r => _get(r),
    PostRequest<T> r => _mutate(r, 'POST', r.body),
    PutRequest<T> r => _mutate(r, 'PUT', r.body),
    PatchRequest<T> r => _mutate(r, 'PATCH', r.body),
    DeleteRequest<T> r => _mutate(r, 'DELETE', r.body),
    _ =>
      throw ArgumentError('Unsupported request type: ${request.runtimeType}'),
  };
}