invokeRequest<T> function
void
invokeRequest<T>(
- ZipRequest<
T> zipRequest, - Success<
T> internalSuccess, - Failure internalFailure,
- Completed internalCompleted,
Invokes a request method with internal callbacks and user parameters merged. Internal callbacks take precedence over user parameters.
Implementation
void invokeRequest<T>(
ZipRequest<T> zipRequest,
Success<T> internalSuccess,
Failure internalFailure,
Completed internalCompleted,
) {
// If params are provided, use Function.apply
if (zipRequest.params != null) {
// Merge user parameters with internal callbacks
final namedArgs = <Symbol, dynamic>{
#success: internalSuccess,
#failure: internalFailure,
#completed: internalCompleted,
};
// Add user parameters (internal callbacks take precedence)
zipRequest.params!.forEach((key, value) {
// Only add if not already present (callbacks have priority)
if (!namedArgs.containsKey(key)) {
namedArgs[key] = value;
}
});
// Invoke the request method
Function.apply(zipRequest.request, [], namedArgs);
} else {
// No params, invoke as a closure with named parameters
// Use Function.apply for consistent behavior
Function.apply(zipRequest.request, [], {
#success: internalSuccess,
#failure: internalFailure,
#completed: internalCompleted,
});
}
}