send<T> method
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}'),
};
}