request<T> method
Future<T>
request<T>(
- Endpoint endpoint, {
- Map<
String, dynamic> ? queryParams, - Map<
String, String> ? pathParams, - dynamic body,
override
Executes a request for a given endpoint.
Implementation
@override
Future<T> request<T>(
Endpoint endpoint, {
Map<String, dynamic>? queryParams,
Map<String, String>? pathParams,
dynamic body,
}) async {
// Record the request
requests.add(MockRequest(
endpointId: endpoint.id,
queryParams: queryParams,
pathParams: pathParams,
body: body,
timestamp: DateTime.now(),
));
// Simulate latency if set
if (latency != null) {
await Future.delayed(latency!);
}
// Check for mock error
if (_mockErrors.containsKey(endpoint.id)) {
throw _mockErrors[endpoint.id]!;
}
// Check for mock response
if (_mockResponses.containsKey(endpoint.id)) {
final response = _mockResponses[endpoint.id];
return endpoint.parser != null
? endpoint.parser!(response) as T
: response as T;
}
throw StateError('No mock response set for endpoint: ${endpoint.id}. '
'Call mockResponse("${endpoint.id}", yourData) first.');
}