send method
Implementation
Future<FittorResponse> send(FittorRequest request) async {
var processedRequest = request;
// Apply request interceptors
for (final interceptor in _interceptors) {
processedRequest = await interceptor.onRequest(processedRequest);
}
try {
var response = await performRequest(processedRequest);
// Apply response interceptors
for (final interceptor in _interceptors) {
response = await interceptor.onResponse(response);
}
return response;
} catch (error, stackTrace) {
// Apply error interceptors
dynamic processedError = error;
for (final interceptor in _interceptors) {
processedError = await interceptor.onError(processedError, stackTrace);
}
if (processedError is Exception) {
throw processedError;
} else {
rethrow;
}
}
}